Release Notes 

  

JViews 3.0 Graphics Framework 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


Incompatibilities

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.
  }
}


General Changes

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).


Library Changes

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.


Editor Changes

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


Bug Fixes