Release Notes Version 5.2

Note: This version requires Swing/JFC 1.1

The purpose of this release is to:


Release Notes Version 5.1

Changes for this release:

Release Notes Version 5.0

Note:This version requires JDK 1.1.

The purpose of this release is to:

JDK1.1 features

Event Model

All event handling related classes use the JDK1.1 event model.This required to change some method signatures to refer to morespecific events. Returning a boolean to indicate the consumptionof an event was removed.

Serialization

This version supports to use of serialization to make adrawing persistent. CH.ifa.draw.applet.DrawApplet andCH.ifa.draw.application.DrawApplicationsupport both the oldstorable and the serializable format. Support for thestorable formatwill be removed in the next version.

Serialization is used in the default implementation of Figure.clone().

StandardDrawingView supports serialization.

Resource Access

Thanks to 1.1 the access to resources could be drastically simplified.All the resources are now accessed relative to classes.The images directory with standard images is therefore part of thepackage hierarchy.

IconKit could be decoupled from DrawingEditor and was moved fromCH.ifa.draw.standard to CH.ifa.draw.util.Refer to the sample applications for how toload and access resources like images.

Various UI Features

Packaging

The packaging was changed to separate the framework interfacesfrom default implementations.

The framework package defines the coreinterfaces and leaves default implementations to the standard package.All key abstractions of the framework are now defined as interfaces.Ward Cunningham has suggested this some time ago and it ended upto be natural and logic evolution.

The implementation of the framework interfaces comes in two flavors.Abstract classes like AbstractFigure, provide default implementationbut still need to be subclassed. Standard classeslike StandardDrawing implement aframework interface and can be used as is.

The framework package was renamed to "framework" the old "fw"was due to a temprorary bug in the used IDE:

A figures package was forked of the standard package. This packageprovides a kit of standard figures and their related handle andtool classes.

There is a new package contrib that contains classes contributedby others.

Connectivity

Connectors were introduced to define connections between figures.A figure can have one or more connectors. A figure creates aconnector for a specific location connectorAt(int x, int y).A connector knows how to findthe connection point. A connection figure keeps track of aconnector for its start and end point.

Figure.chop() is no longer needed and was removed. Its functionalityis subsumed by Connectors.

A set of standard connectors is provided in the standard and figurepackages.

Connectors are optionally visible and Figure has a method connectorVisibility to turn their visibility on and off. This is used by the ConnectionToolto highlight connection points when the mouse moves over a figure.

TextFigures can be attached to other figures. The ConnectedTextToolsupports to create a connected TextFigure. Try it out in JavaDraw.The text figureis connected to the Figure that is clicked when thetool is active. To position a connected TextFigure figures can overridethe method connectedTextLocator to return a locator.

Various Changes

Samples

Converting