resizable ImageFigures. The ImageFigures use the IconKit to share images.
Images are currently stored by saving a reference to their
image file. The file names are relative to the user.dir
property.
CH.ifa.draw.util.Geom: geometrical utilities.
class RectLocators: useful locators for rectangle locations.
class RectTrackers: useful trackers to manipulate rectangle locations.
Major rewrite of Connections.
connectivity support is implemented based on an ObserverFigure
interface.
ConnectionTool supports the creation and manipulation of
connections (splitting/joining segments). ConnectionTool
takes a prototype of the connection to be created.
eliminated AnchorFigure. Its only purpose was to add
ConnectionHandles.
Connection support moved from the standard to the framework package
ConnectionTrackHandle changed to ChangeConnectionStartHandle and
ChangeConnectionEndHandle. These two handles enable to change
the start/end point of a connection.
ConnectionHandle takes the prototype of the connection to be
created as parameter.
ConnectionFigure.canConnect(Figure source, Figure target)
to constrain the connection between figures.
See the PertDependency for an example for how to use this.
fixed naming inconsistencies in all signatures.
anchor was changed to start
target was changed to end
eliminated Figure.connectionStartPoint, connectionEndPoint
the new connection infrastructure made them obsolete.
Figure is now an interface and no longer an abstract class.
AbstractFigure provides default implementations for the
Figure interface. If you defined your own figures you have to change the base class
from Figure to AbstractFigure.
eliminated: CH.ifa.draw.applet.AppletIconKit and
CH.ifa.draw.application.StandaloneIconKit
The functionality of these subclasses is now part of
the DrawingEditor interface
IconKit
simplified the addition of new custom icons for tool buttons
Applet and Applications load their icons
by overriding registerPreLoadedImages (see PertApplet).
Icons are now identified by their file name without the
.gif suffix.
Example:
kit.registerImages(tracker, kit.icon("TEXT"));
extended to support the deferred loading of images and to share images.
added FigureContainer.forceUpdate() such that a figure
can force a repair of its image immediatly.
added transient variable modifier were appropriate
DrawingView: added support for additional background and
foreground layers. A layer implements the Painter interface.
Replaced ScribbleFigure with a more general PolyLineFigure. A PolyLineFigure
has an optional LineDecoration at its start and end.
packaging
moved Animatable from standard to util
moved BouncingDrawing, Animator, AnimationDecorator from standard to
javadraw
changed Transformer to Tracker and Transformer.transform() to Tracker.track()
Version 3.8
added Drawing.orphan() to fix grouping bugs related to connectivity
added Drawing.replace().
added FigureDeletedEvent, FigureChangedEvent. Deliver more
specific update notifications.
Version 3.6
add Figure.decompose(), Figure.isMoveable() (to fix connection and grouping bugs)
Figure subclasses now have to implement basicDisplayBox instead of
displayBox. DisplayBox is a template method that factors the
common displaybox logic.
applet package: provides base infrastructure for applets
Common applets now derive from JavaDrawApplet
application package: provides base infrastructure for applications
Common applications now derive from JavaDrawApplet
Version 3.4
make reverse iterator package private
introduced an Animatable interface
remove animation methods out of basic Drawing
GroupFigure propagate setAttribute to figures
make locators, transformers sharable, don't have to override constructors
CommandMenu return false if not handled by a command
Merged DrawWindow & Draw
Figure.handles() is now an abstract method
nuked the HandleKit stuff
Name Changes
DrawApplet -> Draw
package framework -> fw
DrawingReader/DrawingWriter -> Reader/Writer
DrawWindow -> Draw
cloneFigure -> clone
readWith/writeWith -> read/write
New
PertFigure
Selectiontools support selections with a rubberband