Skip to content
Snippets Groups Projects
Commit 4fbfafa7 authored by nobody's avatar nobody
Browse files

This commit was manufactured by cvs2svn to create tag

'directory_rename'.
parent 33d52ded
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 1108 deletions
<html>
<head>
<title>JHotDraw Applet</title>
</head>
<body>
<h1>JavaDraw Applet</h1>
<b><a href="CH/ifa/draw/samples/javadraw/JavaDrawAppletHelp.html">Description</a></b>
<hr>
<!--"CONVERTED_APPLET"-->
<!-- HTML CONVERTER -->
<SCRIPT LANGUAGE="JavaScript"><!--
var _info = navigator.userAgent;
var _ns = false;
var _ns6 = false;
var _ie = (_info.indexOf("MSIE") > 0 && _info.indexOf("Win") > 0 && _info.indexOf("Windows 3.1") < 0);
//--></SCRIPT>
<COMMENT>
<SCRIPT LANGUAGE="JavaScript1.1"><!--
var _ns = (navigator.appName.indexOf("Netscape") >= 0 && ((_info.indexOf("Win") > 0 && _info.indexOf("Win16") < 0 && java.lang.System.getProperty("os.version").indexOf("3.5") < 0) || (_info.indexOf("Sun") > 0) || (_info.indexOf("Linux") > 0) || (_info.indexOf("AIX") > 0) || (_info.indexOf("OS/2") > 0) || (_info.indexOf("IRIX") > 0)));
var _ns6 = ((_ns == true) && (_info.indexOf("Mozilla/5") >= 0));
//--></SCRIPT>
</COMMENT>
<SCRIPT LANGUAGE="JavaScript"><!--
if (_ie == true) document.writeln('<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" WIDTH = 560 HEIGHT = 370 codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4-windows-i586.cab#Version=1,4,0,0"><NOEMBED><XMP>');
else if (_ns == true && _ns6 == false) document.writeln('<EMBED
type="application/x-java-applet;version=1.4"
CODE = "CH.ifa.draw.samples.javadraw.JavaDrawApplet.class"
ARCHIVE = "jhotdraw.jar"
WIDTH = 560
HEIGHT = 370
DRAWINGS ="Demo Pert"
Demo ="drawings/demo.draw"
Pert ="drawings/pert.draw"
scriptable=false
pluginspage="http://java.sun.com/products/plugin/index.html#download"><NOEMBED><XMP>');
//--></SCRIPT>
<APPLET CODE = "CH.ifa.draw.samples.javadraw.JavaDrawApplet.class" ARCHIVE = "jhotdraw.jar" WIDTH = 560 HEIGHT = 370></XMP>
<PARAM NAME = CODE VALUE = "CH.ifa.draw.samples.javadraw.JavaDrawApplet.class" >
<PARAM NAME = ARCHIVE VALUE = "jhotdraw.jar" >
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.4">
<PARAM NAME="scriptable" VALUE="false">
<PARAM NAME = DRAWINGS VALUE ="Demo Pert">
<PARAM NAME = Demo VALUE ="drawings/demo.draw">
<PARAM NAME = Pert VALUE ="drawings/pert.draw">
</APPLET>
</NOEMBED>
</EMBED>
</OBJECT>
<!--
<APPLET CODE = "CH.ifa.draw.samples.javadraw.JavaDrawApplet.class" ARCHIVE = "jhotdraw.jar" WIDTH = 560 HEIGHT = 370>
<PARAM NAME = DRAWINGS VALUE ="Demo Pert">
<PARAM NAME = Demo VALUE ="drawings/demo.draw">
<PARAM NAME = Pert VALUE ="drawings/pert.draw">
</APPLET>
-->
<!--"END_CONVERTED_APPLET"-->
</body>
</html>
<html>
<head>
<title>JavaDraw Viewer</title>
</head>
<h1>JavaDraw Viewer</h1>
<hr>
<body>
<!--"CONVERTED_APPLET"-->
<!-- HTML CONVERTER -->
<SCRIPT LANGUAGE="JavaScript"><!--
var _info = navigator.userAgent;
var _ns = false;
var _ns6 = false;
var _ie = (_info.indexOf("MSIE") > 0 && _info.indexOf("Win") > 0 && _info.indexOf("Windows 3.1") < 0);
//--></SCRIPT>
<COMMENT>
<SCRIPT LANGUAGE="JavaScript1.1"><!--
var _ns = (navigator.appName.indexOf("Netscape") >= 0 && ((_info.indexOf("Win") > 0 && _info.indexOf("Win16") < 0 && java.lang.System.getProperty("os.version").indexOf("3.5") < 0) || (_info.indexOf("Sun") > 0) || (_info.indexOf("Linux") > 0) || (_info.indexOf("AIX") > 0) || (_info.indexOf("OS/2") > 0) || (_info.indexOf("IRIX") > 0)));
var _ns6 = ((_ns == true) && (_info.indexOf("Mozilla/5") >= 0));
//--></SCRIPT>
</COMMENT>
<SCRIPT LANGUAGE="JavaScript"><!--
if (_ie == true) document.writeln('<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" WIDTH = 460 HEIGHT = 350 codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4-windows-i586.cab#Version=1,4,0,0"><NOEMBED><XMP>');
else if (_ns == true && _ns6 == false) document.writeln('<EMBED
type="application/x-java-applet;version=1.4"
CODE = "CH.ifa.draw.samples.javadraw.JavaDrawViewer.class"
ARCHIVE = "jhotdraw.jar"
WIDTH = 460
HEIGHT = 350
Drawing ="drawings/demo.draw"
scriptable=false
pluginspage="http://java.sun.com/products/plugin/index.html#download"><NOEMBED><XMP>');
//--></SCRIPT>
<APPLET CODE = "CH.ifa.draw.samples.javadraw.JavaDrawViewer.class" ARCHIVE = "jhotdraw.jar" WIDTH = 460 HEIGHT = 350></XMP>
<PARAM NAME = CODE VALUE = "CH.ifa.draw.samples.javadraw.JavaDrawViewer.class" >
<PARAM NAME = ARCHIVE VALUE = "jhotdraw.jar" >
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.4">
<PARAM NAME="scriptable" VALUE="false">
<PARAM NAME = Drawing VALUE ="drawings/demo.draw">
</APPLET>
</NOEMBED>
</EMBED>
</OBJECT>
<!--
<APPLET CODE = "CH.ifa.draw.samples.javadraw.JavaDrawViewer.class" ARCHIVE = "jhotdraw.jar" WIDTH = 460 HEIGHT = 350>
<PARAM NAME = Drawing VALUE ="drawings/demo.draw">
</APPLET>
-->
<!--"END_CONVERTED_APPLET"-->
</body>
</html>
<html>
<head>
<title>Nothing Applet</title>
</head>
<body>
<!--"CONVERTED_APPLET"-->
<!-- HTML CONVERTER -->
<SCRIPT LANGUAGE="JavaScript"><!--
var _info = navigator.userAgent;
var _ns = false;
var _ns6 = false;
var _ie = (_info.indexOf("MSIE") > 0 && _info.indexOf("Win") > 0 && _info.indexOf("Windows 3.1") < 0);
//--></SCRIPT>
<COMMENT>
<SCRIPT LANGUAGE="JavaScript1.1"><!--
var _ns = (navigator.appName.indexOf("Netscape") >= 0 && ((_info.indexOf("Win") > 0 && _info.indexOf("Win16") < 0 && java.lang.System.getProperty("os.version").indexOf("3.5") < 0) || (_info.indexOf("Sun") > 0) || (_info.indexOf("Linux") > 0) || (_info.indexOf("AIX") > 0) || (_info.indexOf("OS/2") > 0) || (_info.indexOf("IRIX") > 0)));
var _ns6 = ((_ns == true) && (_info.indexOf("Mozilla/5") >= 0));
//--></SCRIPT>
</COMMENT>
<SCRIPT LANGUAGE="JavaScript"><!--
if (_ie == true) document.writeln('<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" WIDTH = 560 HEIGHT = 370 codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4-windows-i586.cab#Version=1,4,0,0"><NOEMBED><XMP>');
else if (_ns == true && _ns6 == false) document.writeln('<EMBED
type="application/x-java-applet;version=1.4"
CODE = "CH.ifa.draw.samples.nothing.NothingApplet.class"
ARCHIVE = "jhotdraw.jar"
WIDTH = 560
HEIGHT = 370
DRAWINGS ="Nothing"
Nothing ="drawings/nothing.draw"
scriptable=false
pluginspage="http://java.sun.com/products/plugin/index.html#download"><NOEMBED><XMP>');
//--></SCRIPT>
<APPLET CODE = "CH.ifa.draw.samples.nothing.NothingApplet.class" ARCHIVE = "jhotdraw.jar" WIDTH = 560 HEIGHT = 370></XMP>
<PARAM NAME = CODE VALUE = "CH.ifa.draw.samples.nothing.NothingApplet.class" >
<PARAM NAME = ARCHIVE VALUE = "jhotdraw.jar" >
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.4">
<PARAM NAME="scriptable" VALUE="false">
<PARAM NAME = DRAWINGS VALUE ="Nothing">
<PARAM NAME = Nothing VALUE ="drawings/nothing.draw">
</APPLET>
</NOEMBED>
</EMBED>
</OBJECT>
<!--
<APPLET CODE = "CH.ifa.draw.samples.nothing.NothingApplet.class" ARCHIVE = "jhotdraw.jar" WIDTH = 560 HEIGHT = 370>
<PARAM NAME = DRAWINGS VALUE ="Nothing">
<PARAM NAME = Nothing VALUE ="drawings/nothing.draw">
</APPLET>
-->
<!--"END_CONVERTED_APPLET"-->
</body>
</html>
<html>
<head>
<title>Draw Applet</title>
</head>
<h1>PERT Applet</h1>
<b><a href="CH/ifa/draw/samples/pert/PertAppletHelp.html">Description</a></b>
<hr>
<body>
<!--"CONVERTED_APPLET"-->
<!-- HTML CONVERTER -->
<SCRIPT LANGUAGE="JavaScript"><!--
var _info = navigator.userAgent;
var _ns = false;
var _ns6 = false;
var _ie = (_info.indexOf("MSIE") > 0 && _info.indexOf("Win") > 0 && _info.indexOf("Windows 3.1") < 0);
//--></SCRIPT>
<COMMENT>
<SCRIPT LANGUAGE="JavaScript1.1"><!--
var _ns = (navigator.appName.indexOf("Netscape") >= 0 && ((_info.indexOf("Win") > 0 && _info.indexOf("Win16") < 0 && java.lang.System.getProperty("os.version").indexOf("3.5") < 0) || (_info.indexOf("Sun") > 0) || (_info.indexOf("Linux") > 0) || (_info.indexOf("AIX") > 0) || (_info.indexOf("OS/2") > 0) || (_info.indexOf("IRIX") > 0)));
var _ns6 = ((_ns == true) && (_info.indexOf("Mozilla/5") >= 0));
//--></SCRIPT>
</COMMENT>
<SCRIPT LANGUAGE="JavaScript"><!--
if (_ie == true) document.writeln('<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" WIDTH = 550 HEIGHT = 340 codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4-windows-i586.cab#Version=1,4,0,0"><NOEMBED><XMP>');
else if (_ns == true && _ns6 == false) document.writeln('<EMBED
type="application/x-java-applet;version=1.4"
CODE = "CH.ifa.draw.samples.pert.PertApplet.class"
ARCHIVE = "jhotdraw.jar"
WIDTH = 550
HEIGHT = 340
DRAWINGS ="SAMPLE"
SAMPLE ="drawings/pert.draw"
scriptable=false
pluginspage="http://java.sun.com/products/plugin/index.html#download"><NOEMBED><XMP>');
//--></SCRIPT>
<APPLET CODE = "CH.ifa.draw.samples.pert.PertApplet.class" ARCHIVE = "jhotdraw.jar" WIDTH = 550 HEIGHT = 340></XMP>
<PARAM NAME = CODE VALUE = "CH.ifa.draw.samples.pert.PertApplet.class" >
<PARAM NAME = ARCHIVE VALUE = "jhotdraw.jar" >
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.4">
<PARAM NAME="scriptable" VALUE="false">
<PARAM NAME = DRAWINGS VALUE ="SAMPLE">
<PARAM NAME = SAMPLE VALUE ="drawings/pert.draw">
</APPLET>
</NOEMBED>
</EMBED>
</OBJECT>
<!--
<APPLET CODE = "CH.ifa.draw.samples.pert.PertApplet.class" ARCHIVE = "jhotdraw.jar" WIDTH = 550 HEIGHT = 340>
<PARAM NAME = DRAWINGS VALUE ="SAMPLE">
<PARAM NAME = SAMPLE VALUE ="drawings/pert.draw">
</APPLET>
-->
<!--"END_CONVERTED_APPLET"-->
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>JHotDraw 5.4</title>
</head>
<body>
<h1>JHotDraw 5.4</h1>
<hr><p>
<b>Preface: This is a beta release [JHotDraw5.4b1]<p>
This beta release contains the latest CVS snapshot and should be considered as progress
in work. It has not been extensively tested but is aimed to give developers access to a
more recent version of JHotDraw that 5.3.<p>
The release includes numereous new features among them: undo/redo support, enhanced MDI support,
many new figures (TextArea and figures with HTML support), zooming, minimap preview,
bug fixes,...<p>
Moreover, it contains a skeleton test suite which has been generated using JUnitDoclet.
The tests are compilable but not functional. Anyway, the excuse for not writing tests
because there weren't any is now not valid anymore ;-) Anyone contributing tests and filling the
test suite with life is welcome!<p>
Finally, developers who require a more stable release or are not willing to bear with some
bugs and exceptions should not use this beta release. Anyone else gets a preview of
the new functionality and compatibility. Any comments are welcome but (timely) response
cannot be guaranteed.
</b>
<p>
<hr>This document gives an overview of the JHotDraw distribution, describes
how to install it, and offers links for getting started. Please refer to
the <a href="doc/ReleaseNotes.html"> release notes</a> for more information
about the 5.4 release.
<h3>Contents</h3>
<pre>JHotDraw<br>
drawings sample drawings<br>
documentation documentation for JHotDraw<br>
javadoc javadoc generated documentation<br>
pattlets pattern summary slides. They are referred<br>
to from the javadoc documentation.<br><br>
CH the JHotDraw class files<br>
ifa<br>
draw<br>
images image resources<br>
util common utilities that are independent of<br>
JHotDraw<br>
framework JHotDraw framework<br>
standard standard implementations of the JHotDraw<br>
framework abstractions<br>
figures a set of figures and their support classes<br>
applet standard UI for JHotDraw applets<br>
application standard UI for JHotDraw applications<br>
contrib a package with contributions to JHotDraw<br>
samples<br>
nothing Nothing sample<br>
javadraw JHotDraw sample<br>
pert PERT sample<br>
net A simple node and connections editor<br><br>
sources the java source files mirror the<br>
hierarchy of the class files<br><br></pre>
<h3>Installation</h3>
The distribution includes no development environment specificconfiguration
or makefiles.
<p>To run the applets doesn't require any further installation steps.Refer
to the <a href="doc/samples.html">samples</a> to view the sample applets.</p>
<p>To run the sample applications you should include the JHotDraw directory
in your CLASSPATH. <b>Note</b> using a relative path to refer to JHotDraw
can result in class loading errors. You run into this problem when the application's
working directory is changed with a file dialog.</p>
<h3>Getting Started</h3>
To get started check out the <a href="doc/samples.html">samples</a> and the
<a href="doc/documentation.html">documentation</a> delivered with JHotDraw.
<h3>Legal</h3>
These release is distributed under <a href="lgpl-license.html">LGPL</a>.<br>
<br>
The original version of JHotDraw is copyright 1996, 1997 by IFA Informatik
and <a href="mailto:erich_gamma@acm.org">Erich Gamma</a>.
<p>It is hereby granted that this software can be used, copied, modified,
anddistributed without fee provided that this copyright noticeappears in
all copies.</p>
<hr><br>
<br>
</body>
</html>
dest.dir=..
\ No newline at end of file
Manifest-Version: 1.0
Created-By: Ant 1.4
Name: CH/ifa/draw/applet/
Sealed: true
Specification-Title: JHotDraw Default Applet
Specification-Version: 5.4
Specification-Vendor: http://www.jhotdraw.org
Implementation-Title: CH.ifa.draw.applet
Implementation-Version: 5.4
Implementation-Vendor: http://www.jhotdraw.org
Name: CH/ifa/draw/application/
Sealed: true
Specification-Title: JHotDraw Default Application
Specification-Version: 5.4
Specification-Vendor: http://www.jhotdraw.org
Implementation-Title: CH.ifa.draw.application
Implementation-Version: 5.4
Implementation-Vendor: http://www.jhotdraw.org
Name: CH/ifa/draw/contrib/
Sealed: true
Specification-Title: JHotDraw Contributions
Specification-Version: 5.4
Specification-Vendor: http://www.jhotdraw.org
Implementation-Title: CH.ifa.draw.contrib
Implementation-Version: 5.4
Implementation-Vendor: http://www.jhotdraw.org
Name: CH/ifa/draw/figures/
Sealed: true
Specification-Title: JHotDraw Figures
Specification-Version: 5.4
Specification-Vendor: http://www.jhotdraw.org
Implementation-Title: CH.ifa.draw.figures
Implementation-Version: 5.4
Implementation-Vendor: http://www.jhotdraw.org
Name: CH/ifa/draw/framework/
Sealed: true
Specification-Title: JHotDraw Core Framework
Specification-Version: 5.4
Specification-Vendor: http://www.jhotdraw.org
Implementation-Title: CH.ifa.draw.framework
Implementation-Version: 5.4
Implementation-Vendor: http://www.jhotdraw.org
Name: CH/ifa/draw/standard/
Sealed: true
Specification-Title: JHotDraw Standard Implementation
Specification-Version: 5.4
Specification-Vendor: http://www.jhotdraw.org
Implementation-Title: CH.ifa.draw.standard
Implementation-Version: 5.4
Implementation-Vendor: http://www.jhotdraw.org
Name: CH/ifa/draw/util/
Sealed: true
Specification-Title: JHotDraw Utilities
Specification-Version: 5.4
Specification-Vendor: http://www.jhotdraw.org
Implementation-Title: CH.ifa.draw.util
Implementation-Version: 5.4
Implementation-Vendor: http://www.jhotdraw.org
@echo off
set JHD_DIR=D:\daten\wolfram\jhotdraw
set JDK=C:\Programme\JDK1.2
set OLD_CP=%CLASSPATH%
set CLASSPATH=.
set CLASSPATH=%CLASSPATH%;%JHD_DIR%
javac -d %JHD_DIR% %JHD_DIR%\src\CH\ifa\draw\applet\*.java %JHD_DIR%\src\CH\ifa\draw\application\*.java %JHD_DIR%\src\CH\ifa\draw\contrib\*.java %JHD_DIR%\src\CH\ifa\draw\figures\*.java %JHD_DIR%\src\CH\ifa\draw\framework\*.java %JHD_DIR%\src\CH\ifa\draw\standard\*.java %JHD_DIR%\src\CH\ifa\draw\util\*.java
set SAMPLES=%JHD_DIR%\src\CH\ifa\draw\samples
javac -d %JHD_DIR% %SAMPLES%\javadraw\*.java %SAMPLES%\net\*.java %SAMPLES%\nothing\*.java %SAMPLES%\pert\*.java
set CLASSPATH=%OLD_CP%
#!/bin/bash
# Set up JAVA_HOME and ANT_HOME as environment variables,
# or they will use these hard-coded defaults
export JAVA_HOME=${JAVA_HOME:-/usr/j2sdk/}
export ANT_HOME=${ANT_HOME:-/usr/apache-ant/}
export PATH=$PATH:$ANT_HOME/bin
ant -buildfile build/BUILD.XML "$@"
@echo off
call setenv.bat
%ANT_HOME%\bin\ant -buildfile build\build.xml %1 %2 %3
File deleted
<html>
<head>
<title>Change Log</title>
</head>
<h1>Change Log</h1>
<hr>
<h2>Version 4.0</h1>
<ul>
<li>
added pattlet slides that are referenced from javadoc.
<li>
restricted visibility of the classes provided by CH.ifa.draw.standard.
<li>
generalized the start and end points of PolyLineFigures to a LineDecoration.
<b>Note:</b>this breaks the loading of pre 4.0 drawings.
<li>
LineFigures are now implemented based on PolyLineFigures
<li>
some UI tweaks related to the look of handles.
</ul>
<hr>
<h2>Version 4.0a</h1>
<ul>
<li>
javadoc documentation.
<li>
features
<ul>
<li>
support for cursor keys to move figures
<li>
support for snap to grid: ToggleGridCommand, DrawingView.setGrid();
<li>
alignment commands to align (top, centers, bottoms, left, middle, rights)
AlignmentCommand
<li>
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.
</ul>
<li>
CH.ifa.draw.util.Geom: geometrical utilities.
<li>
class RectLocators: useful locators for rectangle locations.<br>
class RectTrackers: useful trackers to manipulate rectangle locations.
<li>
Major rewrite of Connections.
<ul>
<li>
connectivity support is implemented based on an ObserverFigure
interface.
<li>
ConnectionTool supports the creation and manipulation of
connections (splitting/joining segments). ConnectionTool
takes a prototype of the connection to be created.
<li>
eliminated AnchorFigure. Its only purpose was to add
ConnectionHandles.
<li>
Connection support moved from the standard to the framework package
<li>
ConnectionTrackHandle changed to ChangeConnectionStartHandle and
ChangeConnectionEndHandle. These two handles enable to change
the start/end point of a connection.
<li>
ConnectionHandle takes the prototype of the connection to be
created as parameter.
<li>
ConnectionFigure.canConnect(Figure source, Figure target)
to constrain the connection between figures.
See the PertDependency for an example for how to use this.
<li>
fixed naming inconsistencies in all signatures.
<ul>
<li>
anchor was changed to start
<li>
target was changed to end
</ul>
<li>
eliminated Figure.connectionStartPoint, connectionEndPoint
the new connection infrastructure made them obsolete.
</ul>
<li>
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.
<li>
eliminated: CH.ifa.draw.applet.AppletIconKit and
CH.ifa.draw.application.StandaloneIconKit
The functionality of these subclasses is now part of
the DrawingEditor interface
<li>
IconKit
<ul>
<li>
simplified the addition of new custom icons for tool buttons
<li>
Applet and Applications load their icons
by overriding registerPreLoadedImages (see PertApplet).
<li>
Icons are now identified by their file name without the
.gif suffix.
<li>
Example:
<pre>
kit.registerImages(tracker, kit.icon("TEXT"));
</pre>
<li>
extended to support the deferred loading of images and to share images.
</ul>
<li>
added FigureContainer.forceUpdate() such that a figure
can force a repair of its image immediatly.
<li>
added transient variable modifier were appropriate
<li>
DrawingView: added support for additional background and
foreground layers. A layer implements the Painter interface.
<li>
Replaced ScribbleFigure with a more general PolyLineFigure. A PolyLineFigure
has an optional LineDecoration at its start and end.
<li>
packaging
<ul>
<li>
moved Animatable from standard to util
<li>
moved BouncingDrawing, Animator, AnimationDecorator from standard to
javadraw
<li>
changed Transformer to Tracker and Transformer.transform() to Tracker.track()
</ul>
</ul>
<h2>Version 3.8</h1>
<ul>
<li>
added Drawing.orphan() to fix grouping bugs related to connectivity
<li>
added Drawing.replace().
<li>
added FigureDeletedEvent, FigureChangedEvent. Deliver more
specific update notifications.
</ul>
<h2>Version 3.6</h1>
<ul>
<li>
add Figure.decompose(), Figure.isMoveable() (to fix connection and grouping bugs)
<li>
Figure subclasses now have to implement basicDisplayBox instead of
displayBox. DisplayBox is a template method that factors the
common displaybox logic.
<li>
applet package: provides base infrastructure for applets
Common applets now derive from JavaDrawApplet
<li>
application package: provides base infrastructure for applications
Common applications now derive from JavaDrawApplet
</ul>
<h2>Version 3.4</h1>
<ul>
<li>
make reverse iterator package private
<li>
introduced an Animatable interface
remove animation methods out of basic Drawing
<li>
GroupFigure propagate setAttribute to figures
<li>
make locators, transformers sharable, don't have to override constructors
<li>
CommandMenu return false if not handled by a command
<li>
Merged DrawWindow & Draw
<li>
Figure.handles() is now an abstract method
<li>
nuked the HandleKit stuff
<li>
Name Changes
<ul>
<li>DrawApplet -> Draw
<li>package framework -> fw
<li>DrawingReader/DrawingWriter -> Reader/Writer
<li>DrawWindow -> Draw
<li>cloneFigure -> clone
<li>readWith/writeWith -> read/write
</ul>
<li>
New
<ul>
<li>PertFigure
<li>Selectiontools support selections with a rubberband
<li>DuplicateCommand
<li>FigureAttributes class
</ul>
</ul>
</body>
</html>
<html>
<head>
<title>Class Diagram</title>
</head>
<h1>Class Diagram</h1>
<hr>
<img src=classdiagram.jpg>
</body>
</html>
<html>
<head>
<title>Release Notes Version 5.1</title>
</head>
<body>
<h1>Release Notes Version 5.2</h1>
<b>Note: </b>This version requires Swing/JFC 1.1
<p>The purpose of this release is to:</p>
<ul>
<li>Use Swing/JFC GUI elements instead of AWT (where possible)</li>
<li>Support for special Swing/FC features:</li>
<ul>
<li>Support for Multiple Document Interface (MDI) applications with several
internal frames has been added. CH.ifa.draw.contrib.MDI_DrawApplicationis
the base class which must be subclasses to takeadvantage of managing internal
frames. All examples are now derived from this class.</li>
<li>Support for applications with splitted editor windows by deriving
the drawing application from CH.ifa.draw.contrib.SplitPaneDrawApplication<br>
</li>
<li>Drawing windows have scrollbars</li>
<li>Popup menus are available for additional functionality and control
over graphical figures when using CH.ifa.draw.contrib.CustomSelectionTool</li>
<li>Toolbars can have different tools depending on the context of the
currently selected figure and tool</li>
<li>A new composite figure is available which delegates its graphical
representation and figure attributes to another figure. Moreover, it canbe
configured with an external layout algorithm that contains the logic forhow
to lay out the child elements of the composite figure. The new compositefigure
is CH.ifa.draw.contrib.GraphicalCompositeFigure and can be configuredby a
class implementing CH.ifa.draw.contrib.FigureLayoutStrategy such asCH.ifa.draw.contrib.StandardFigureLayoutStrategy.
</li>
</ul>
<li>New CH.ifa.draw.util.StorageFormats that allow to add new file formats
for storing and restoring drawings (e.g. using XML)<br>
</li>
<li>Build configuration for <a href="http://jakarta.apache.org/ant/">Ant</a>
, which can be used to compile all standard JHotDraw classes, to packagethem
into a jar file and to generate javadoc information. Some instruction how
to compile and build JHotDraw can be found <a href="buildProcess.html">here</a>
.<br>
</li>
<li>Some minor bug fixes<br>
</li>
</ul>
<br>
<h1>Release Notes Version 5.1</h1>
Changes for this release:
<ul>
<li>the delegation based event model is used to track figure changes.The
FigureChangeListener interface supports to observe figure changes.A FigureChangeListener
receives FigureChangeEvents.The old mechanism based on Observer/Observable
and the notion of a containerwas eliminated. A figure now onlyhas listeners.
There is a new support class FigureChangeEventMulticasterto manage the listeners.
Using listeners is more consistent with the AWT/JFCevent handling style.CompositeFigure,
Decorator, ConnectionFigure, and Drawingare now FigureChangeListeners. </li>
<li>StandardDrawing is a CompositeFigure. It is possible to inserta StandardDrawing
as a figure into a drawing. This change does notimpact the framework package.
The Drawing interface is independentof CompositeFigure.</li>
<li>Tools no longer receive the DrawingView as an argument, but storeit
in an instance variable. Existing Tools have to be adapted accordingly.</li>
<li>SelectionTool is more open for customization. The trackers to be used
for thedifferent selection modes can be overridden by the factory methods
createHandleTracker, createDragTracker, createAreaTracker. The MouseTracker
class was merged into AbstractTool and could be eliminated.<br>
The selection tool to be used in an application can be customizedby overridding
createSelectionTool in DrawApplication/DrawApplet.JavaDrawApp illustrates
how to use a customized selection tool thatcan handle double clicks on figures.
</li>
<li>DrawApplication supports keyboard short cuts for the common operations.
</li>
</ul>
<h1>Release Notes Version 5.0</h1>
<b>Note:</b>This version requires JDK 1.1.
<p>The purpose of this release is to:</p>
<ul>
<li>use JDK1.1 features: event model, access to resources, serialization,
scrolling, printing, cursors etc.</li>
<li>improve the packaging structure.</li>
<li>improve the support for connectivity.</li>
<li>implement several minor improvements.</li>
</ul>
<h2>JDK1.1 features</h2>
<h3>Event Model</h3>
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.
<h3>Serialization</h3>
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.
<p>Serialization is used in the default implementation of Figure.clone().</p>
<p>StandardDrawingView supports serialization.</p>
<h3>Resource Access</h3>
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.
<p>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.</p>
<h3>Various UI Features</h3>
<ul>
<li>Tools support to use tool specific cursors.</li>
<li>CH.ifa.draw.application shows the DrawingView by default in a ScrollPane.
There is a new method createContents that can be overridden to customizethe
default arrangement. The default size of the view can be customized byoverriding
getDrawingViewSize().</li>
<li>CH.ifa.draw.application supports to print a drawing.</li>
</ul>
<h2>Packaging</h2>
The packaging was changed to separate the framework interfacesfrom default
implementations.
<p>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.</p>
<p>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.</p>
<p>The framework package was renamed to "framework" the old "fw"was due to
a temprorary bug in the used IDE:</p>
<p>A figures package was forked of the standard package. This packageprovides
a kit of standard figures and their related handle andtool classes.</p>
<p>There is a new package contrib that contains classes contributedby others.
</p>
<h2>Connectivity</h2>
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.
<p>Figure.chop() is no longer needed and was removed. Its functionalityis
subsumed by Connectors.</p>
<p>A set of standard connectors is provided in the standard and figurepackages.
</p>
<ul>
<li>BoxChopConnector: finds a connection point by chopping the connection
at the figure's bounding box.</li>
<li>LocatorConnector: uses a locator to find the connection point.Thisenables
to define connections at specific semantic points ona figure. Referto the
NetApp sample for an example of using them.</li>
<li>ShortestDistanceConnector: finds the connection points based on the
shortest distancebetween figures.</li>
<li>EllipseChopConnector: finds a connection point by chopping the connection
at the ellipse defined by the figure's bounding box.</li>
</ul>
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.
<p>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.</p>
<h2>Various Changes</h2>
<ul>
<li>FigureEnumeration extends Enumeration to enable to iterate overfigures
without having to do a down casted in client code. Itprovides an additional
method nextFigure to get the next Figure.</li>
<li>AbstractFigure was split. AbstractFigure no longer keeps track ofthe
FigureAttributes dictionary. The dictionary is now maintainedin its derived
class AttributeFigure. This change enables tocreate Figure subclasses without
having to use theFigureAttributes implementation.</li>
<li>Trackers are gone. Trackerfunctionality is implemented in the Handles
themselves. In contrastto Locators they did not turn out to be reusable for
different handles.The class BoxHandleKit hides the different Handle implementation
classesfrom the API.</li>
<li>BoxHandleKit provides factory methods to create Handles forcommon locations
on a figure.</li>
<li>DrawingView is now an interface with a standard implementation, i.e.,
StandardDrawingView.</li>
<li>Figure.clone() is implemented in a generic way in AbstractFigure.The
figure is serialized and the clone is created by resurrectingthe serialized
figure.</li>
<li>Image handling was simplified and the preLoadRegisteredImagesis nolonger
necessary.</li>
<li>Commands know whether they are executable ornot. They provide an isExecutable
operation to check their state.</li>
<li>Name changes: ObserverFigure -&gt; ConnectionFigure, LineConnectionFigure
-&gt;LineConnection.</li>
<li>There is support for transparent fill colors for AttributeFigures.</li>
<li>AttributeFigre.draw() is a now a template method that callsdrawBackground()
and drawFrame(). Subclasses should overridethese methods instead of draw().
</li>
<li>The signature of Handle.invokeStep() and Handle.invokeEnd() was changed
to:<pre> public void invokeStep (int x, int y, int anchorX, int anchorY, DrawingView view) {<br> public void invokeEnd (int x, int y, int anchorX, int anchorY, DrawingView view) {<br></pre>
The passed arguments correspond to the current point and the anchor point
of the interaction.<br>
The old signature are still supported but deprecated.</li>
<li>Doug Lea implemented a nice PolygonFigure with its corresponding Handles
and Tools. Check it out in JavaDrawApp.</li>
<li>ElbowHandles support to adjust elbow connections.</li>
</ul>
<h2>Samples</h2>
<ul>
<li>the samples are now located in subpackages of samples.</li>
<li>there are two new samples:
<ul>
<li>Nothing implements a minimal application/appletthat can be used
as the starting point for your own applications.</li>
<li>NetApp is a simple editor with nodes and connections. Itillustrates
LocatorConnectors.</li>
</ul>
</li>
</ul>
<h2>Converting</h2>
<ul>
<li>If you derived classes from Handle, Tool, Locator you have to change
them to inherit from their corresponding Abstract class.</li>
<li>Change your tool classes to no longer return a boolean fromevent handling
methods.</li>
<li>Change the event handling method to use a specific event, typically
a MouseEvent.</li>
<li>Import the figures package if you use figures provided by this version.
</li>
<li>Tools should call editor().toolDone() instead of editor().setDefaultTool.
</li>
<li>Add the serival version stuff to your figure classes.</li>
</ul>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Building JHotDraw</title>
</head>
<body>
<h1>Instructions for Building JHotDraw</h1>
<hr><br>
<br>
A simple <a href="..\build\build.xml">build configuration file</a> for <a href="http://jakarta.apache.org/ant/">
Ant</a> has been included, which can be used to compile all standard JHotDraw
classes, to packagethem into a jar file and to generate javadoc information.
The command tostart the build process could look like (when invoked in the
<code>&lt;JHOTDRAW_DIR&gt;</code>\build directory)<br>
<br>
<code>java -classpath "%CLASSPATH%;&lt;ANT_DIR&gt;\lib\ant.jar;&lt;ANT_DIR&gt;\lib\jaxp.jar;&lt;ANT_DIR&gt;\lib\parser.jar"
-Djava.home="&lt;JAVA_DIR&gt;" -Dant.home="&lt;ANT_DIR&gt;" org.apache.tools.ant.Main
all -Ddest.dir="&lt;JHOTDRAW_DIR&gt;" -buildfile build.xml</code><br>
<br>
where <code>&lt;JHOTDRAW_DIR&gt;</code> is the directory path to the JHotDraw
package,<code>&lt;ANT_DIR&gt;</code> is the directory path to the Ant installation,
<code>&lt;JAVA_DIR&gt;</code>is the directory path to the Java installation..
Apart of calling <code>org.apache.tools.ant.Main</code> with the parameter
<code>all</code> you can specify one of the following building targets:<br>
<ul>
<li><code>clean</code> - to delete all class files first</li>
<li><code>main</code> - to compile, copy resources and build the jar file</li>
<li><code>jar</code> - to build the jar file<br>
</li>
<li><code>compile</code> - to compile only</li>
<li><code>javadoc</code> - to generate javadoc</li>
<li><code>all</code> - to clean, compile and javadoc</li>
</ul>
Furthermore, Ant can be generate debug code when the switch <code>-Djavac.debug=on</code>
is provided.<br>
</body>
</html>
Change log
==========
JHotDraw 5.2 changes (29.6.2001 by MrFloppy)
- SelectionFigure is now an interface. The default implementation CH.ifa.draw.standard.StandardSelectionFigure
- A FigureSelectionListener interface has been introduced in CH.ifa.draw.framework. An DrawingEditor
is now a FigureSelectionListener and the signature for all selectionChanged() methods has been
changed to figureSelectionChanged().
- CH.ifa.draw.util.Command is now an interface. A AbstractCommand can be found in CH.ifa.draw.standard.
- All commands used to have a fView field. This has been moved to CH.ifa.draw.standard.AbstactCommand
- A CH.ifa.draw.standard.StandardDrawingView has now a paintComponents() method instead of a paint()
and update() method. This allows the CH.ifa.draw.util.FloatingTextField to be a javax.swing.JTextField
instead of a java.awt.TextField.
- CH.ifa.draw.figures.AbstractLineDecorator has been missing
- DrawApplet, DrawApplication and derived classes are now programmed towards the DrawingView interface
instead of using StandardDrawingView. That leads to occasional cast when some additional StandardDrawingView
functionality is required in some specialized cases. Applications that were derived from DrawApplication
and used to override the createContents() methods should now return a DrawingView as well
\ No newline at end of file
JHotDraw/doc/classdiagram.jpg

17.4 KiB

<html>
<head>
<title>JHotDraw Documentation</title>
</head>
<body>
<h1>Documentation Overview</h1>
<hr>
<ul>
<li>A description of the JHotDraw <a href="packages.html">package organization</a>
.</li>
<li>The javadoc generated <a href="../javadoc/index.html">package index</a>
.</li>
<li>An overview of the <a href="samples.html">samples</a> delivered with
JHotDraw</li>
<li>A short instruction of how to <a href="buildProcess.html">compile</a>
JHotDrawusing Ant with the build configuration provided<br>
</li>
<li>A <a href="classdiagram.html">class diagram</a> showing the mostimportant
classes and their relationships.</li>
<li>The <a href="changes.html">the change log</a> of version 4.0.</li>
<li>Some <a href="drawBackground.html">background </a>about JHotDraw.</li>
</ul>
</body>
</html>
<html>
<head>
<title>JHotDraw Background</title>
</head>
<body>
<H1>About JHotDraw</H1>
<HR>
The JHotDraw architecture was inspired by two sources:
<UL>
<LI>
<a href="http://st-www.cs.uiuc.edu/users/brant/HotDraw/HotDraw.html">HotDraw</a><br>
HotDraw is a drawing framework for Smalltalk. It was originally developed
by Kent Beck and Ward Cunningham.
<LI>
<a href="ftp://ftp.ifa.ch/pub/ET++/">ET++</a><br>
ET++ is a comprehensive and portable application framework and
class library for C++. ET++ was developed by Andre Weinand and Erich Gamma.
</UL>
<p>
JHotDraw was developed by Thomas Eggenschwiler and Erich Gamma.
It was originally planned to be a trivial case study for an applied
design patterns seminar. But then it was too much fun to just stop there...
<p>
<H2>Acknowledgements</H2>
We have received valuable input from Uwe Steinmueller, Doug Lea, Kent Beck, and Ward Cunningham.
</html>
<html>
<head>
<title>Packages Overview</title>
</head>
<h1>Packages Overview</h1>
<hr>
JHotDraw is organized into the following packages.
<h2><a href=../javadoc/Package-CH.ifa.draw.util.html>CH.ifa.draw.util</a></h2>
This package provides generally useful utilities that can be used
independent of JHotDraw.<p>
<h2><a href=../javadoc/Package-CH.ifa.draw.framework.html>CH.ifa.draw.framework</a></h2>
The framework package includes the classes and interfaces that define the
JHotDraw framework. It doesn't provide any concrete implementation classes.
<h2><a href=../javadoc/Package-CH.ifa.draw.standard.html>CH.ifa.draw.standard</a></h2>
The standard package provides standard implementations of the classes
defined in the framework package.
<p>
It provides abstract classes that implement a
framework interface and provide default implementation. The convention is to
prefix such classes with Abstract, e.g., AbstractFigure, AbstractHandle.
<p>
Classes that implement a framework interface and can be used as is
start with Standard, e.g., StandardDrawing, StandardDrawingView.
<h2><a href=../javadoc/Package-CH.ifa.draw.figures.html>CH.ifa.draw.figures</a></h2>
A kit of figures together with their associated support classes (tools,
handles).
<h2><a href=../javadoc/Package-CH.ifa.draw.contrib.html>CH.ifa.draw.contrib</a></h2>
Classes that where contributed by others.
<h2><a href=../javadoc/Package-CH.ifa.draw.applet.html>CH.ifa.draw.applet</a></h2>
The applet package defines a default applet user interface for a JHotDraw
applet. JHotDraw applets can be developed without using this
package and they can have a different user interface.
<h2><a href=../javadoc/Package-CH.ifa.draw.application.html>CH.ifa.draw.application</a></h2>
The application package defines a default user interface for standalone
JHotDraw applications. This is only a default
presentation.
<h2>CH.ifa.draw.samples.javadraw</h2>
The package for the javadraw <a href=samples.html#JavaDrawApp>sample</a> applications.
This includes the javadraw applet, application, and a viewer applet.
<h2>CH.ifa.draw.samples.pert</h2>
The package for the pert <a href=samples.html#PertApp>sample</a> applet
and application.
<h2>CH.ifa.draw.samples.nothing</h2>
The package for the nothing <a href=samples.html#Nothing>sample</a> applet
and application.
<h2>CH.ifa.draw.samples.net</h2>
The package for the net <a href=samples.html#Net>sample</a> application.
</body>
</html>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment