de.cau.cs.kieler.kiml.ui.layout
Class GmfDiagramLayoutManager

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

public class GmfDiagramLayoutManager
extends DiagramLayoutManager

Diagram layout manager that is able to generically layout diagrams generated by GMF. The internal KGraph graph structure is built from the structure of edit parts in the diagram. The new layout is applied to the diagram using GmfLayoutEditPolicy, which creates a GmfLayoutCommand to directly manipulate data in the GMF notation model, where layout information is stored persistently.

Rating proposed yellow
(2009-12-11) msp

Field Summary
 
Fields inherited from class de.cau.cs.kieler.kiml.ui.layout.DiagramLayoutManager
MAX_PROGRESS_LEVELS
 
Constructor Summary
GmfDiagramLayoutManager()
           
 
Method Summary
protected  void applyLayout()
          Applies the transferred layout to the original diagram.
protected  KNode buildLayoutGraph(IEditorPart editorPart, EditPart editPart, boolean layoutAncestors)
          Builds a KGraph instance for the given editor or edit part.
protected  CachedLayout getCachedLayout()
          Returns the cached layout for the last layout run.
protected  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(IEditorPart editorPart)
          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
cacheLayout, calcAnimationTime, doLayout, layout, layout, registerManager
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GmfDiagramLayoutManager

public GmfDiagramLayoutManager()
Method Detail

supports

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

Specified by:
supports in class DiagramLayoutManager
Parameters:
editorPart - an editor 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

buildLayoutGraph

protected KNode buildLayoutGraph(IEditorPart editorPart,
                                 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:
editorPart - the editor for which layout is performed, or null if the diagram is not part of an editor
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

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

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

getCachedLayout

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

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