JHotDraw 7: Release Notes

Release Notes for JHotDraw 7

Important: JHotDraw 7 is currently in a premature state. Review the framework before you start using it. Don't blame yourself when something isn't working as expected – the problem ist most likely due to the issues in the framework. All constructive feedback is highly appreciated.

The API is not stable yet: Expect major incompatible changes in the org.jhotdraw.app package in upcoming releases. Expect many minor incompatible changes in all other packages.

Note: This version requires J2SE 5.

JHotDraw 7 is a major departure from previous versions of JHotDraw – only the cornerstones of the original architecture remain. The API and almost every part of the implementation have been reworked to take advantage of the Java 2 SE 5.0 platform.

JHotDraw 7 is not backwards compatible with previous versions of the JHotDraw framework.

Summary of major changes:

Architectural changes:

Functionality changes:

Release Notes for JHotDraw Version 6

Pending. This release has not yet been made.

Release Notes for JHotDraw Version 5.2

Note: This version requires Swing/JFC 1.1

The purpose of this release is to:


Release Notes JHotDraw Version 5.1

Changes for this release:

Release Notes JHotDraw 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. org.jhotdraw.applet.DrawApplet andorg.jhotdraw.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 fromorg.jhotdraw.standard to org.jhotdraw.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