de.cau.cs.kieler.kiml.graphiti
Class GraphitiDiagramLayoutManager

java.lang.Object
  extended by de.cau.cs.kieler.kiml.ui.layout.DiagramLayoutManager
      extended by de.cau.cs.kieler.kiml.graphiti.GraphitiDiagramLayoutManager

public class GraphitiDiagramLayoutManager
extends DiagramLayoutManager

Generic layout manager implementation for Graphiti diagrams.

Rating red

Field Summary
 
Fields inherited from class de.cau.cs.kieler.kiml.ui.layout.DiagramLayoutManager
MAX_PROGRESS_LEVELS
 
Constructor Summary
GraphitiDiagramLayoutManager()
           
 
Method Summary
protected  void applyLayout()
          Applies the transferred layout to the original diagram.
 KNode buildLayoutGraph(IWorkbenchPart workbenchPart, EditPart editPart, boolean layoutAncestors)
          Builds a KGraph instance for the given editor or edit part.
 IGraphicalFrameworkBridge getBridge()
          Returns the graphical framework bridge for this layout manager.
protected  ICachedLayout getCachedLayout()
          Returns the cached layout for the last layout run.
 EditPart getEditPart(KNode knode)
          Returns the edit part associated with the given layout node.
 ILayoutConfig getLayoutConfig(EditPart editPart)
          Returns a layout configuration for the given edit part.
 KNode getLayoutGraph()
          Returns the last built layout graph.
protected  boolean supports(EditPart editPart)
          Determines whether this layout manager is able to perform layout for the given edit part.
protected  boolean supports(IWorkbenchPart workbenchPart)
          Determines whether this layout manager is able to perform layout for the given editor.
protected  void transferLayout(boolean cacheLayout)
          Transfers all layout data from the last created KGraph instance to the original diagram.
 
Methods inherited from class de.cau.cs.kieler.kiml.ui.layout.DiagramLayoutManager
applyAndZoom, applyAnimatedLayout, calcAnimationTime, getExternalConfig, getLayoutNode, getPriority, getProgressMonitor, layout, layout, layout, setLayoutConfig, setPriority
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GraphitiDiagramLayoutManager

public GraphitiDiagramLayoutManager()
Method Detail

supports

protected boolean supports(IWorkbenchPart workbenchPart)
Determines whether this layout manager is able to perform layout for the given editor.

Specified by:
supports in class DiagramLayoutManager
Parameters:
workbenchPart - a workbench part
Returns:
true if this layout manager supports the editor part

supports

protected boolean supports(EditPart editPart)
Determines whether this layout manager is able to perform layout for the given edit part.

Specified by:
supports in class DiagramLayoutManager
Parameters:
editPart - an edit part
Returns:
true if this layout manager supports the edit part

getBridge

public IGraphicalFrameworkBridge getBridge()
Returns the graphical framework bridge for this layout manager.

Specified by:
getBridge in class DiagramLayoutManager
Returns:
a framework bridge that is suitable for diagrams that are managed by this layout manager

getLayoutConfig

public ILayoutConfig getLayoutConfig(EditPart editPart)
Returns a layout configuration for the given edit part. If editPart is null, a generic layout configuration is created.

Specified by:
getLayoutConfig in class DiagramLayoutManager
Parameters:
editPart - an edit part
Returns:
a layout configuration for the edit part, or a generic configuration

buildLayoutGraph

public KNode buildLayoutGraph(IWorkbenchPart workbenchPart,
                              EditPart editPart,
                              boolean layoutAncestors)
Builds a KGraph instance for the given editor or edit part. The resulting layout graph should reflect the structure of edit parts in the original diagram.

Specified by:
buildLayoutGraph in class DiagramLayoutManager
Parameters:
workbenchPart - the workbench part for which layout is performed, or null
editPart - the parent edit part for which layout is performed, or null if the whole diagram shall be layouted
layoutAncestors - if true, layout is not only performed for the selected edit part, but also for its ancestors
Returns:
a layout graph instance

transferLayout

protected void transferLayout(boolean cacheLayout)
Transfers all layout data from the last created KGraph instance to the original diagram. The diagram is not modified yet, but all required preparations are performed.

Specified by:
transferLayout in class DiagramLayoutManager
Parameters:
cacheLayout - if true, the layout result is cached for the underlying model

applyLayout

protected void applyLayout()
Applies the transferred layout to the original diagram. This final step is where the actual change to the diagram is done.

Specified by:
applyLayout in class DiagramLayoutManager

getLayoutGraph

public KNode getLayoutGraph()
Returns the last built layout graph.

Specified by:
getLayoutGraph in class DiagramLayoutManager
Returns:
the last built layout graph

getCachedLayout

protected ICachedLayout getCachedLayout()
Returns the cached layout for the last layout run.

Specified by:
getCachedLayout in class DiagramLayoutManager
Returns:
the last cached layout

getEditPart

public EditPart getEditPart(KNode knode)
Returns the edit part associated with the given layout node. This is only valid after #buildLayoutGraph(IEditorPart, EditPart, boolean) was called.

Overrides:
getEditPart in class DiagramLayoutManager
Parameters:
knode - a node from the layout graph
Returns:
the corresponding edit part, or null