When there are more than the standard number of points in the stroke,
or if the stroke is orthogonal, just modify the end points,
while leaving the intermediate points unchanged.
When there are more than the standard number of points in the stroke,
scale and rotate the intermediate points so that the link's shape stays
approximately the same.
When there are more than the standard number of points in the stroke,
linearly interpolate the intermediate points along the X and Y dimensions
between the ports.
Add a listener for JGoViewEvents, such as clicking on objects
or in the background, or a link having been drawn by the user,
or property changes on this JGoView.
Adjusts the columns of nodes within the unfixedLayer to simultaneously reduce the
number of link crossings and the number of "bends" between the unfixedLayer and its
adjacent layers between the unfixedLayer and its adjacent layers.
A special hint modifier used before a change occurs when passing all of
the previous state information as part of a regular document event would
be impractical.
Computes the array of barycenters (average) columns for the nodes in the
unfixedLayer based on the columns of predecessors (direction < 0),
successors (direction > 0), or both predecessors and successors (direction == 0).
Computation of the bounding rectangle for this area
includes all visible child objects plus the region of the
painted background and border, as returned by computeBorder().
For objects that require a second pass to complete the copying,
this method is called after the first pass of copying all of the objects
in JGoDocument.copyFromCollection.
This method creates a single handle for a resizable object,
associates it with the selected object, and initializes its
appearance by setting its pen and brush.
Assigns every node in the input network an index number,
such that nodes in the same layer will be labeled with
consecutive indices in left to right order.
Assigns every node in the input network an index number,
such that nodes in the same layer will be labeled with
consecutive indices in left to right order.
Perform the default drop operation to copy a JGoObjectSimpleCollection into
this view's document, as a result of a DropTargetListener.drop(DropTargetEvent).
The default behavior on single click is to start editing in-place if
the document isModifiable is true, if isEditable is true,
and if isEditOnSingleClick is true.
The default behavior on double click is to start editing in-place if
the document isModifiable is true, if isEditable is true,
and if isEditOnSingleClick is false.
This DropTargetListener method handles drag-and-drop operations
that originated in other windows or that are internal and
may be returning to this control.
Modify the given rectangle representing an object's bounding rectangle
to account for any additional drawing region caused by the thickness of
the pen.
Modify the given rectangle representing an object's bounding rectangle
to account for any additional drawing region caused by the thickness of
the pen.
The foredate method should be called by state changing methods before
actually making any changes, when the following update method call is unable
to provide the previous property value(s) in a convenient manner.
If this object's geometry has changed, notify the "parent",
namely the JGoLabeledLink, that one of its "children", namely
this JGoLinkLabel, has been changed.
Return the amount that the current value will increase or decrease
when the user clicks on the scroll bar between the "thumb" or
"slider" and the "up"/"down" buttons.
Return the spot at which the Label should be positioned relative
to the object returned by getCollapsedObject() when this subgraph
is in a collapsed state, or if there is no collapsed object,
relative to the hidden child nodes.
Return the MouseEvent associated with the ongoing doMouseDown,
doMouseMove, doMouseUp, doMouseClick, doMouseDblClick, or
doUncapturedMouseMove methods.
Compute the point along the edge of an ellipse that is closest to a given point
on a straight line from that point to the center of that ellipse specified by the
given bounds.
Compute the point along the sides of this object's bounding rectangle
that is closest to a given point on a straight line from that point to
another given point.
Retrieve all of the JGoObject nodes and links from the
JGoNetworkNodes and JGoNetworkLinks
that are in this network, by adding them to the given selection.
For events describing an object that has changed (i.e., the hint is
CHANGED), the original value of the property described by the sub-hint/flags
may be available as an Object, depending on the sub-hint and property type.
For events describing an object that has changed (i.e., the hint is
CHANGED), the original value of the property described by the sub-hint/flags
may be available as an integer, depending on the sub-hint and property type.
If this JGoText object is resizable and if the font size is
only dependent on the height of the bounding rectangle, we need to
recalculate based on new height and whether there are multiple
lines of text.
Assigns every node in the input network a column number,
such that nodes in the same layer will be labeled with
increasing indices in left to right order.
Assigns every node in the input network an index number,
such that nodes in the same layer will be labeled with
consecutive indices in left to right order.
Return whether this object, when moved, drags the first parent area
whose DragsNode property is false, or the top-level object if no such
parent is found.
Gets whether a user's drag of objects in this view actually
moves the objects continuously, rather than dragging around an
outline or an image of the selected objects.
JGoDocumentChangedEdit is an UndoableEdit that remembers the document
it is associated with, the kind of change it represents, and the
before and after state (usually a property value) for that kind of
change.
This interface is implemented by an object that listens for changes
to a JGoDocument and to any changes to the JGoObjects contained within
that JGoDocument.
Constructs a ForceDirectedAutoLayout for the passed in document, and network,
that will run for a maximum of Nmax_iterations when performLayout() is called.
This class is a PropertyEditor, primarily intended for use by java
development environments, so that these environments can provide provide
better editors for the integer "GridStyle" property of the JGoView
bean.
Any JGoObject that implements this interface will automatically
get a unique integer PartID identifier when the object is added
to a JGoDocument whose MaintainsPartID property is true.
This class is a PropertyEditor, primarily intended for use by java
development environments, so that these environments can provide provide
better editors for the integer "InternalMouseActions" property of the JGoView
bean.
This class is a PropertyEditor, primarily intended for use by java
development environments, so that these environments can provide provide
better editors for the integer "Orientation" property of the JGoPalette
bean.
This class provides explicit information about the JGoOverview bean, primarily
for use by java development environments, so that these environments can
provide provide more complete design-time editors for the methods,
properties, and events of this bean.
This class provides explicit information about the JGoPalette bean, primarily
for use by java development environments, so that these environments can
provide provide more complete design-time editors for the methods,
properties, and events of this bean.
This class is a PropertyEditor, primarily intended for use by java
development environments, so that these environments can provide provide
better editors for the integer "SnapeMove" and "SnapResize" properties of
the JGoView bean.
A node class that can contain and display a subgraph of other nodes
and links, and that permits links to cross levels across the
subgraph boundary, and that displays its own background color and
border, and a label, and can be collapsed to just display a collapsed
object and a label.
This class is an extension of UndoManager that also keeps track
of JGoDocumentEvents and produces JGoDocumentChangedEdits that get
added to CompoundEdits that this undo manager manages.
This class provides explicit information about the JGoView bean, primarily
for use by java development environments, so that these environments can
provide provide more complete design-time editors for the methods,
properties, and events of this bean.
The default crossing reduction option, create a JGoLayeredDigraphAutoLayout with
LD_AGGRESSIVE_FALSE to use the faster, less agressive crossing reduction algorithm.
Converts the input network into a proper digraph; i.e., artificial nodes and links
are introduced into the network such that ever link is between nodes in adjacent
layers.
This method returns true if adding a link from a to b would result in a cycle or loop of links, regardless of link direction, going through the node a.
Computes the array of median columns for the nodes in the
unfixedLayer based on the columns of predecessors (direction < 0),
successors (direction > 0), or both predecessors and successors (direction == 0).
Assigns every node in the input network an index number,
such that nodes in the same layer will be labeled with
consecutive indices in left to right order.
When the AutoResize property changes, make sure the label's
Multiline, Wrapping and Clipping properties are true when isAutoResize()
is false, and vice-versa.
When the AutoResize property changes, make sure the label's
Multiline, Wrapping and Clipping properties are true when isAutoResize()
is false, and vice-versa.
Find the first object containing specified point (x,y position) from the
collection, in a backwards (reverse) search of the objects in this collection.
portFromPos - location of the port at the from node of the link; allows the crossing matrix to correctly calculate the crossings for nodes with multiple ports
portToPos - location of the port at the to node of the link; allows the crossing matrix to correctly calculate the crossings for nodes with multiple ports
Called at the end of printing and before any new printing operation;
allows printBegin to reinitialize its
precalculated values for the next printing operation.
This override of UndoManager.redo makes sure any ongoing changes
are thrown away and then calls super.redo such that isRedoing()
is true so that any changes that happen because of
the undo operation are ignored by this document listener.
Change the Parent of an object to be the common subgraph that
contains two given objects, or if there is no such subgraph,
add the object to the given layer as a top-level object.
Change whether the resizing the text depends on both the width and
the height, rather than just the height to determine the font size
to use in displaying the string.
Change the spot of the Label relative to the object returned by
getCollapsedObject() when this subgraph is collapsed, or if there
is no collapsed object, relative to the hidden child nodes.
Change how curvy a cubic link will be between two ports with NoSpot,
or how rounded the corners of an orthogonal link will be (if isRoundedCorners() is true).
Change whether the user's dragging the end selection handle points
of a link will cause the link to be removed from the document and
an entirely new link created by the view, or whether the link will
be retained in the document and only its port is modified.
Change whether a scroll bar show remain visible but disabled,
or if it should be hidden, when it is no longer needed due
to the document being small enough to be seen in its entirety
by the view (for that horizontal or vertical direction).
Control whether a newly allocated resize handle should always
appear the same size, regardless of the view's scale, or whether the
resize handle should be scaled along with all the other objects.
If the text background is transparent and the text is not resizable,
control whether gainedSelection() makes the background opaque and
whether lostSelection() makes the background transparent again.
This value determines whether items in the palette will be layout out
in a single row if a horizontal layout, or a single column if a
horizontal layout.
Set whether or not the text background is filled with the
background color before drawing the text (opaque), or
if only the text is drawn without hiding what's underneath
the text (transparent).
This predicate is called by the default document listener implementation
to decide whether the event is worth recording for the purposes of
undo and redo.
Modify this network by splitting it up into separate subnetworks,
each of which has all of its nodes connected to each other,
perhaps indirectly and in mixed directions,
but not to any nodes in any other subnetworks.
This override of UndoManager.undo makes sure any ongoing changes
are bundled up into a transaction and then calls super.undo such
that isUndoing() is true so that any changes that happen because of
the undo operation are ignored by this document listener.