Layout Service Example
Introduction
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.
Description
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.
Usage
Refer to this example if you need:
- How to create a manipulate shapes positions
programmatically
- How to create a custom layout provider that can be invoked
through a specific action
Copyright
(c) 2000,2005 IBM Corporation and others. All Rights
Reserved.