Hets - the Heterogeneous Tool Set

Copyright(c) Thiemo Wiedemeyer, T. Mossakowski, Uni Bremen 2002-2008
LicenseGPLv2 or higher, see LICENSE.txt
Maintainerraider@informatik.uni-bremen.de
Stabilityprovisional
Portabilitynon-portable (relies on Logic via DevGraph)
Safe HaskellNone

GUI.GraphAbstraction

Contents

Description

Interface for graph viewing and abstraction.

Synopsis

Types

type NodeId = Int

Node id type

type NodeValue = (String, NodeId)

Node value

type EdgeValue = (String, EdgeId, Maybe (LEdge DGLinkLab))

Edge value

type GraphInfo = IORef AbstractionGraph

IORef for main datastructure

Creation and display

initGraph

Arguments

:: IO GraphInfo

The graph

Creates the empty AbstractionGraph

makeGraph

Arguments

:: GraphInfo

The graph

-> String

Title

-> Maybe (IO ())

FileOpen menu

-> Maybe (IO ())

FileSave menu

-> Maybe (IO ())

FileSaveAs menu

-> IO Bool

FileClose menu

-> Maybe (IO ())

FileExit menu

-> [GlobalMenu]

Edit menu

-> [(DGNodeType, DaVinciNodeTypeParms NodeValue)]

Node types

-> [(DGEdgeType, DaVinciArcTypeParms EdgeValue)]

Edge types

-> String

Compressed edge color

-> IO ()

Expand menu action

-> IO () 

Creates the uDrawGraph graph

redisplay

Arguments

:: GraphInfo

The graph

-> IO () 

Node interface

isHiddenNode

Arguments

:: GraphInfo

The graph

-> NodeId

ID of the node

-> IO Bool

Is hidden

Checks whether a node is hidden or not

focusNode

Arguments

:: GraphInfo

The graph

-> NodeId

ID of the node

-> IO () 

Focus a node

Edge interface

hideSetOfEdgeTypes

Arguments

:: GraphInfo

The graph

-> [DGEdgeType]

IDs of the edgetypes to hide

-> IO () 

Hides a set of edgetypes (type ids)

isHiddenEdge

Arguments

:: GraphInfo

The graph

-> EdgeId

ID of the edge

-> IO Bool

Is edge hidden

Checks whether an edge is hidden or not

Conversion and update of graph

applyChanges

Arguments

:: GraphInfo

The graph

-> [DGChange]

List of changes

-> [NodeId]

IDs of the nodes to hide

-> [EdgeId]

IDs of the edges to hide

-> [(NodeId, NodeId, DGEdgeType, Bool)]

A list of new edges

-> IO () 

Apply changes to the uDrawGraph graph

convert

Arguments

:: DGraph

The development graph

-> [DGChange]

List of changes

Converts a DGraph to a list of changes

Direct manipulation of uDrawGraph

layoutImproveAll

Arguments

:: GraphInfo

The graph

-> IO () 

Improve the layout of a graph like calling "Layout->Improve All"

showTemporaryMessage

Arguments

:: GraphInfo

The graph

-> String

message to be displayed

-> IO () 

Display a message in a uDrawGraph window controlled by AbstractGraphView

deactivateGraphWindow

Arguments

:: GraphInfo

The graph

-> IO () 

Deactivate the input of all uDrawGraph windows; Warning: every deactivate event must be paired an activate event

activateGraphWindow

Arguments

:: GraphInfo

The graph

-> IO () 

Activate the input of a uDrawGraph display

closeGraphWindow

Arguments

:: GraphInfo

The graph

-> IO () 

Closes the Window