|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectilog.views.graphlayout.IlvGraphLayout
ilog.views.graphlayout.random.IlvRandomLayout
public class IlvRandomLayout
The main class for the Random Layout algorithm.
This is the simplest layout algorithm. The nodes are moved at
randomly computed positions inside a user-defined region which
can be specified using the method IlvGraphLayout.setLayoutRegion(IlvRect).
Sample drawing produced by the Random Layout algorithm:

See the corresponding chapter of the User's Manual for details on the algorithm, the types of graphs for which this algorithm can be used, the features and limitations, code samples, and so on.
Note that the initial position of the nodes (at the moment you start the
layout) does not affect the resulting layout. However, nodes specified as
fixed are not moved if you call the method IlvGraphLayout.setPreserveFixedNodes(boolean)
with a true argument.
| Field Summary | |
|---|---|
static int |
NO_RESHAPE_STYLE
No links reshape option. |
static int |
STRAIGHT_LINE_STYLE
Straight-line links shape option. |
| Fields inherited from class ilog.views.graphlayout.IlvGraphLayout |
|---|
INVERSE_VIEW_COORDINATES, MANAGER_COORDINATES, VIEW_COORDINATES |
| Constructor Summary | |
|---|---|
IlvRandomLayout()
Creates a new instance of the Random Layout algorithm. |
|
IlvRandomLayout(IlvRandomLayout source)
Creates a new layout instance by copying an existing one. |
|
| Method Summary | |
|---|---|
int |
checkAppropriateLink(Object link)
Checks whether the input link is appropriate for this layout. |
IlvGraphLayout |
copy()
Copies the layout instance. |
void |
copyParameters(IlvGraphLayout source)
Copies the parameters from a given layout instance. |
protected IlvGraphLayoutGrapherProperty |
createLayoutGrapherProperty(String name,
boolean withDefaults)
Returns a new instance of IlvRandomLayoutGrapherProperty
that stores the parameter settings of this layout class. |
int |
getLinkStyle()
Returns the current option for the style of the shape of the links. |
IlvGraphicVector |
getMovingNodes()
Returns the vector of nodes being moved by the graph layout algorithm. |
protected void |
init()
Initializes instance variables. |
protected void |
layout(boolean redraw)
Computes the layout using the Random Layout algorithm. |
void |
setLinkStyle(int style)
Sets the style of the shape of the links. |
boolean |
supportsAllowedTime()
Indicates that this layout class can stop the layout computation when the user-defined allowed time is exceeded. |
boolean |
supportsLayoutRegion()
Indicates that this layout class can control the size of the drawing of the graph to fit (exactly or approximately) a user-defined region (a rectangle) or a user-defined manager view. |
boolean |
supportsPercentageComplete()
Indicates that this layout class can estimate the percentage of completion during the run of the layout. |
boolean |
supportsPreserveFixedNodes()
Indicates that this layout class allows the user to specify fixed nodes. |
boolean |
supportsRandomGenerator()
Indicates that this layout class uses randomly generated numbers that can be initialized with a user-defined seed value. |
boolean |
supportsSaveParametersToNamedProperties()
Indicates that this layout class can transfer the layout parameters to named properties. |
boolean |
supportsStopImmediately()
Indicates that this layout class can interrupt the current run of the layout immediately in a controlled way. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int STRAIGHT_LINE_STYLE
setLinkStyle(int), the links are given
a straight-line shape.
public static final int NO_RESHAPE_STYLE
setLinkStyle(int), the links are not reshaped.
| Constructor Detail |
|---|
public IlvRandomLayout()
IlvGraphLayout.attach(IlvGrapher).
IlvGraphLayout.attach(IlvGraphModel).
IlvGraphLayout.performLayout().
IlvGraphLayout.attach(ilog.views.IlvGrapher),
IlvGraphLayout.attach(ilog.views.graphlayout.IlvGraphModel),
IlvGraphLayout.performLayout(),
IlvGrapherAdapter.addLayer(ilog.views.IlvManagerLayer),
IlvGrapherAdapter.setFilter(ilog.views.graphlayout.IlvLayoutGraphicFilter)public IlvRandomLayout(IlvRandomLayout source)
copy() method.
Any subclass should provide a copy constructor.
The parameters of the source layout are copied using
the method copyParameters(ilog.views.graphlayout.IlvGraphLayout).
source - The layout instance that is copied.| Method Detail |
|---|
protected void init()
You should not call this method directly. The method is called internally by the constructor without arguments and by the copy constructor. The method must be overridden by subclasses that need to initialize additional instance variables.
init in class IlvGraphLayoutpublic IlvGraphLayout copy()
This method copies the layout instance by calling the copy constructor.
When performing a recursive layout on a nested graph,
this method is used by IlvLayoutProvider to
"clone" the layout instance of a parent graph.
Note that the parameters which are specific to a node or a link are not copied. The other parameters, including the layout region specification and the link clip and link connection box interfaces, are also copied.
If a method of the type supportsXXX is associated with a
parameter, the parameter is copied only if the corresponding method
returns true.
copy in class IlvGraphLayoutcopyParameters(ilog.views.graphlayout.IlvGraphLayout)public void copyParameters(IlvGraphLayout source)
Note that the parameters which are specific to a node or a link are not copied. The other parameters, including the layout region specification and the customization interfaces, are also copied.
If a method of the type supportsXXX is associated with a
parameter, the parameter is copied only if the corresponding method
returns true.
copyParameters in class IlvGraphLayoutsource - The layout instance from which the parameters are copied.copy()
protected void layout(boolean redraw)
throws IlvGraphLayoutException
IlvGraphLayout.performLayout().
layout in class IlvGraphLayoutredraw - If true, the attached graph model will be asked
to redraw the graph after layout.
When the layout algorithm moves the nodes and reshapes the links, it is
required to pass the value of the redraw argument to the
methods IlvGraphModel.moveNode(java.lang.Object, float, float, boolean) and
IlvGraphModel.reshapeLink(java.lang.Object, ilog.views.IlvPoint, ilog.views.IlvPoint[], int, int, ilog.views.IlvPoint, boolean).
IlvInappropriateLinkException - if the grapher contains links
that cannot be reshaped to a straight line and the link style is
STRAIGHT_LINE_STYLE.
(For details, see IlvInappropriateLinkException).
IlvGraphLayoutException - If an unusual situation occurs.
WARNING: this method can throw one of the subclasses of
IlvGraphLayoutException. Specifically, it can throw an
IlvInappropriateGraphException. It can also throw an
IlvInappropriateLinkException when inappropriate types
of links and/or link connectors are used in an IlvGrapher.
For details, refer to the documentation of these exception classes.IlvGraphLayout.performLayout()public final boolean supportsPreserveFixedNodes()
IlvGraphLayout.setPreserveFixedNodes(boolean) is called with a
true argument.
supportsPreserveFixedNodes in class IlvGraphLayouttrue.IlvGraphLayout.setPreserveFixedNodes(boolean),
IlvGraphLayout.isPreserveFixedNodes()public final boolean supportsLayoutRegion()
supportsLayoutRegion in class IlvGraphLayouttrue.IlvGraphLayout.setLayoutRegion(ilog.views.IlvManagerView),
IlvGraphLayout.setLayoutRegion(ilog.views.IlvManagerView, ilog.views.IlvRect),
IlvGraphLayout.setLayoutRegion(ilog.views.IlvRect),
IlvGraphLayout.getSpecLayoutRegion(),
IlvGraphLayout.getCalcLayoutRegion(),
IlvGraphLayoutpublic final boolean supportsPercentageComplete()
supportsPercentageComplete in class IlvGraphLayouttrue.IlvGraphLayout.increasePercentageComplete(int),
IlvGraphLayoutReport.getPercentageComplete(),
IlvJGraphLayoutProgressBarpublic final boolean supportsRandomGenerator()
IlvGraphLayout.setUseSeedValueForRandomGenerator(boolean) with a
true argument.
supportsRandomGenerator in class IlvGraphLayouttrue.IlvGraphLayout.setSeedValueForRandomGenerator(long),
IlvGraphLayout.getSeedValueForRandomGenerator(),
IlvGraphLayout.setUseSeedValueForRandomGenerator(boolean),
IlvGraphLayout.isUseSeedValueForRandomGenerator()public final boolean supportsAllowedTime()
IlvGraphLayoutReport.STOPPED_AND_INVALID in this case.
supportsAllowedTime in class IlvGraphLayouttrue.IlvGraphLayout.setAllowedTime(long),
IlvGraphLayout.getAllowedTime(),
IlvGraphLayoutReport.getCode()public boolean supportsStopImmediately()
IlvGraphLayoutReport.STOPPED_AND_INVALID in this case.
supportsStopImmediately in class IlvGraphLayouttrue.IlvGraphLayout.stopImmediately(),
IlvGraphLayout.isStoppedImmediately(),
IlvGraphLayoutReport.getCode()public boolean supportsSaveParametersToNamedProperties()
.ivl file.
supportsSaveParametersToNamedProperties in class IlvGraphLayouttrue.IlvGrapherAdapter.saveParametersToNamedProperties(IlvGraphLayout, boolean),
IlvGrapherAdapter.loadParametersFromNamedProperties(IlvGraphLayout),
IlvGrapherAdapter.removeParametersFromNamedProperties()public void setLinkStyle(int style)
STRAIGHT_LINE_STYLE (the links are given a straight-line
shape) and
NO_RESHAPE_STYLE (no reshape is performed on the links).
This feature can be useful if the graph contains links that have
intermediate points and are not straight-line links; for instance,
IlvPolylineLinkImage links with
intermediate points.
Note that when the graph attached to the layout is of type
IlvGrapher, the effect of the link reshaping depends
on the type of the links and the connectors installed at the node.
For all link styles, we recommend using links of type
IlvPolylineLinkImage and either no link
connector or any link connector except
IlvFreeLinkConnector.
Other link or connector types may cause
an IlvInappropriateLinkException during layout. You can use the
method IlvGraphLayoutUtil.EnsureAppropriateLinks(ilog.views.graphlayout.IlvGraphModel, ilog.views.graphlayout.IlvLayoutProvider) before layout
or when the exception is caught to convert all links and link connectors
to an appropriate type.
The default value is STRAIGHT_LINE_STYLE.
getLinkStyle()public int getLinkStyle()
setLinkStyle(int)public int checkAppropriateLink(Object link)
IlvGraphLayout.checkAppropriateLinks().
checkAppropriateLink in class IlvGraphLayoutlink - The link to be checked.
IlvGraphLayout.checkAppropriateLinks()public IlvGraphicVector getMovingNodes()
IlvGrapherAdapter
in order to optimize for speed.
getMovingNodes in class IlvGraphLayout
protected IlvGraphLayoutGrapherProperty createLayoutGrapherProperty(String name,
boolean withDefaults)
IlvRandomLayoutGrapherProperty
that stores the parameter settings of this layout class.
The method is used by
IlvGrapherAdapter.saveParametersToNamedProperties(IlvGraphLayout,
boolean) to create a named property that contains parameter settings of
this layout instance.
createLayoutGrapherProperty in class IlvGraphLayoutIlvGraphLayoutGrapherProperty,
IlvGrapherAdapter.saveParametersToNamedProperties(IlvGraphLayout, boolean),
IlvGrapherAdapter.loadParametersFromNamedProperties(IlvGraphLayout),
IlvGrapherAdapter.removeParametersFromNamedProperties()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||