This guide describes the Layout Service example in the SDK. This example demonstrates a how to create a custom provider for the Layout Service which can be invoked from with-in a diagram editor.
This plug-in is named org.eclipse.gmf.examples.runtime.diagram.layout.
The purpose of the
plug-in is provide an action that
invokes a custom layout. In this case the custom
layout is called a 'Square' layout which will calculate a square
area based on the number of shapes and arrange the shapes in a grid
with-in the calculated square.
The algorithm for this custom layout is defined inside a provider
called 'SquareLayoutProvider'. To register this provider,
an extension for the org.eclipse.gmf.runtime.diagram.ui.layoutProviders
extension point must be added to the plugin.xml file.
i.e.
<extension
point="org.eclipse.gmf.runtime.diagram.ui.layoutProviders">
<layoutProvider
class="org.eclipse.gmf.examples.runtime.diagram.layout.provider.SquareLayoutProvider">
<Priority
name="Medium">
</Priority>
</layoutProvider>
</extension>
If we examine the 'SquareLayoutProvider' java class, in the
provides() routine, it is merely checking to see if the nodes on
the diagram can be laid-out according to the algorithm and also
verifying that the layout type being passed through the ILayoutNodesOperation is of type
'SQUARE_LAYOUT'. This
check is necessary because we only want to invoke this layout when
our specific action is called, not when a default arrange action is
invoked.
The layoutNodes(?) routine is where the actual computation
takes place. It returns
a 'Runnable' that performs the
execution of the layout.
Refer to this example if you need:
Copyright (c) 2000,2005 IBM Corporation and others. All Rights Reserved.