Release Notes |
This document describes the main changes that have been made to JViews Graphics Framework since version 2.1.
Incompatibilities
General Changes
Library Changes
Editor Changes
Bug Fixes
Package renaming
Theilog.views package has been split into several packages. This means that it is necessary to change the import ilog.views.* statement into several import statements.
The new packages will reflect the structure of the Graphics Framework.
The ilog.views package is now contained in the following packages:
ilog.views
The base classes of the Graphics Framework.
ilog.views.accelerator
Provides the default key accelerators for a manager.
ilog.views.awt
Provides all the AWT components necessary to create an application mixing JViews and AWT.
ilog.views.event
Provides interfaces and classes for dealing with different types of events fired by JViews Graphics Framework classes.
ilog.views.graphic
Contains the predefined graphic objects of JViews.
ilog.views.interactor
Provides the predefined interactors for a view.
ilog.views.io
Provides the input and output streams to store JViews objects in the IVL format.
ilog.views.objectinteractor
Provides the predefined interactors for a graphic object.
ManagerContentChanged events
In JViews 2.1 this type of event is fired by the manager when the contents of the manager change in some way, for example when an object is added or removed but this event does not tell you which object is added or removed. In version 3.0 the ManagerContentChangedEvent has several subclasses that give you more information about the type of modification. These subclasses are:
The incompatibility is due to the fact that the event is now sent for each modification. In JViews 2.1, during large modification of its contents the manager was not sending this type of event, only one event was sent at the end of a large modification. For example when loading an IVL file, the manager would send only one event at the end. In version 3.0 one event is sent for each object added by the load. In order to be notified the same way as in JViews 2.1, version 3.0 adds a new method on the ManagerContentChangedEvent: isAdjusting. You can simply change your ManagerContentChangedListener this way:
public void contentsChanged(ManagerContentChangedEvent evt)
{ if (!evt.isAdjusting()) {
// Old listener code goes here.
} }
Most of the main JViews classes are now compliant to the JavaBeans standard. The new JAR file JViewsBeans.jar is the JAR file suitable to be used in an IDE. It contains all the JViews classes as well as additional classes needed to use the beans in an IDE (such as property editor, customizers, and bean icons).
Graphic Objects
IlvManager
This class is now a JavaBean.
The manager now fires new events:
The new replaceObject method allows you to replace an object by another one in a manager. It also allows you to replace a node or a link in an IlvGrapher.
You can now create an IlvManager with no layers and remove the last layer of a manager. In JViews 2.1 the manager must have at least one layer.
You can set your own custom layers inside a manager using the addLayer method.
The new method setFileName removes all the objects of a manager and reads an IVL file.
IlvGrapher
This class is now a JavaBean.
The new method isNodeOrLink tests if a graphic is a node or a link in a more efficient way than calling isNode and isLink.
IlvManagerView
This class is now a JavaBean.
The class has a new constructor with no parameters that automatically creates an IlvManager.
The windowDestroyed method was removed because it is no longer useful.
You can now change the manager displayed in a view by calling the setManager method.
A new event (ManagerChangedEvent) is sent by the view when the manager changes.
You can set the view in 'autoFitToContent' mode. In this mode the transformer of the view is automatically updated so that all objects are always visible.
The new setInteractor method removes all installed interactors and pushes the specified interactor.
IlvGrid
This class is now a JavaBean.
IlvManagerLayer
You can now create a subclass of an IlvManagerLayer to store the objects in your own way.
Subclasses of IlvManagerLayer can define their own way of being saved into an IVL file.
You can specify a transparency level on a layer (method setAlpha). When a transparency level is set on a layer, objects displayed in this layer will become transparent.
You can specify a 'visibility filter' on a layer. Such a filter will allow you to control the visibility of a layer. For example, you will be able to specify that a layer may be visible only for a range of zoom levels. (See the class IlvLayerVisibilityFilter).
IlvManagerViewInteractor
This class is now a JavaBean.
IlvDragRectangleInteractor
This class is now a JavaBean.
On the Java 2 platform you can specify the line style for the rubber band dragging.
The interactor now sends a RectangleDraggedEvent when the user has finished dragging.
IlvMoveRectangleInteractor
On the Java 2 platform you can specify the line style for the ghost.
IlvSelectInteractor
This class is now a JavaBean.
You can now specify a line style for the rubber band multiple selection in the interactor. This will be only available on Java 2.
You can now specify a cursor used for moving an object or for doing the multiple selection.
IlvZoomViewInteractor
This class is now a JavaBean.
IlvEditLabelInteractor
This class is now a JavaBean.
As now a 'grapher' mode, in this mode the interactor will create a node of a grapher instead of creating a simple object.
IlvMakeLinkInteractor
This class is now a JavaBean.
IlvMakePolyPointInteractor
This class is now a JavaBean.
As now a 'grapher' mode, in this mode the interactor will create a node of a grapher instead of creating a simple object.
IlvMakeRectangleInteractor
This class is now a JavaBean.
As now a 'grapher' mode, in this mode the interactor will create a node of a grapher instead of creating a simple object.
IlvManagerMagViewInteractor
This class is now a JavaBean.
The new auto zoom and auto translate mode will allow the Overview window to be automatically zoomed or translated under certain conditions (the control rectangle's visibility and size).
IlvPanInteractor
A new interactor that lets you translate a view without using scroll bars. The translation is done while dragging the mouse.
IlvRotateInteractor
This class is now a JavaBean.
IlvGraphicUtil
New convenience methods: DrawString, FillOutlinedPolygon, GetAlpha, GetFontDescent, GetStringBounds, MakeColor.
IlvTexture
An IlvTexture is a subclass of java.awt.TexturePaint so it can only be used on the Java 2 platform. An IlvTexture can be stored in an IVL file.
IlvPattern
A pattern is a predefined texture used to fill a shape. An IlvPattern is a subclass of java.awt.TexturePaint so it can only be used on the Java 2 platform. An IlvPattern can be stored in an IVL file.
IlvManagerViewPanel, IlvScrollManagerView, IlvJScrollManagerView
These classes are now a JavaBean.
IlvManagerViewControlBar
A new JavaBean that is a customizable toolbar that contains tools to zoom, unzoom, scroll, fitToContent, and
set the identity transformer.
IlvManagerJViewControlBar
A new JavaBean that is a customizable Swing toolbar that contains tools to zoom, unzoom, scroll, fitToContent, and set the identity transformer.
IlvUtil
Version number of JViews was updated to 3.0
IVL format
Ability to store an IlvTexture and an IlvPattern as well as Java2D gradient GradientPaint and BasicStroke.
IlvPolylineLinkImage, IlvSplineLinkImage
New method (setIntermediatePoints) to change all points except end points.
The editor name is now JViews Composer instead of IlvEdit.
Undo/Redo
Actions performed from the Property Sheet, interactors, or toolbars on objects of editing buffers can be undone and redone.
Java2D Integration
Composer integrates more Java2D innovations (available only with Java 2). It adds the ability to:
Multiple Selection
Property Sheet allows the editing of a selection of different kinds of objects by filtering their properties.
Node Creation
By default, objects are now created as nodes of a grapher.
Graph Layout
Composer now provides graph layout capabilities from the Graph Layout module.
Prototypes
A new wizard is available in Composer prototype mode to allow an easier definition of Business Graphic Objects.
Default Resources on Newly Created Objects
It is now easy to define the foreground/background and font that will be used to create objects in a buffer.
Alignment Toolbar
This new toolbar provides actions on selected objects:
Other Changes