JViews 3.5 Graphics Framework Release Notes
This document describes the main changes that have been made to the JViews Graphics Framework module since version
3.0.
Incompatibilities
General Changes
Library Changes
New Classes
Modified Classes
Changes in Composer
Demonstration Changes
Incompatibilities
Some deprecated methods and classes of JViews 3.0 have been removed; check the JViews 3.0
Reference Manual for alternatives in each case. The IlvZoomableLabel
class no longer inherits from IlvLabel. However, all JViews 3.0 methods
are still there, and IlvZoomableLabel still implements IlvFontInterface and IlvLabelInterface.
General Changes
The main general changes are the following:
- JDK 1.3
In addition to JDK 1.1.8 and JDK 1.2.2, JViews 3.5 has been tested on JDK 1.3 and we encourage you to use this version of the JDK.
- New Thin-client / Servlet support
The new packages ilog.views.thinclient
and ilog.views.servlet allow you to use
the JViews library on the server side, using the Java Servlet API. See the User's Manual
for details.
- SVG support
The new package ilog.views.svg and its
subpackages contains support for reading and writing the new SVG (Scalable Vector Graphics) format when running
Java 2. See the User's Manual for details.
- Java2D extensions
The new package ilog.views.java2d contains
Java2D extensions for multicolor linear and circular gradients.
Library Changes
New Classes
ilog.views.IlvCenterLinkConnector
ilog.views.swing.IlvToolTipManager
Modified Classes
ilog.views.IlvManager
- Optimization of Manager and Quadtree internal structures improves the speed of manager
operations.
- Changing the zoomability of a graphic object using applyToObject is now possible.
- New methods:
- public void check(boolean verbose): Checks the Quadtree,
for debugging purposes.
ilog.views.IlvManagerView
- Improved fitTransformerToContent
when non-zoomable objects are present.
- New methods:
Implementation of triple buffering:
- setTripleBufferedLayerCount: Sets the number of triple
buffered layers.
- getTripleBufferedLayerCount: Returns the number of triple
buffered layers.
- invalidateTripleBuffer: Invalidates the triple buffer.
ilog.views.IlvIndexedSet
- New methods:
- setQuadtreeEnabled/isQuadtreeEnabled: Allows you to enable
or disable the quadtree on a layer.
ilog.views.graphic.IlvSpline
- New methods:
- setSmoothness: Sets the smoothness of the spline.
If the value is between 0 and 1, multipoint splines are drawn smoothly. If the value is IlvGraphicUtil.COMPATIBLE_SMOOTHNESS, multipoint splines are compatible with JViews 3.0, which means abrupt bends at each fourth control
point.
We recommend using a smoothness around 0.5 to 0.8. The same mechanism is available for the
derived classes IlvClosedSpline and IlvFilledSpline.
- getSmoothness: Returns the smoothness of the spline.
ilog.views.graphic.IlvSplineLinkImage
- New methods:
- setSmoothness: Sets the smoothness of the spline.
If the value is between 0 and 1, multipoint splines are drawn smoothly. If the value is IlvGraphicUtil.COMPATIBLE_SMOOTHNESS, multipoint splines are compatible with JViews 3.0, which means abrupt bends at each fourth control
point. We recommend using a smoothness around 0.5 to 0.8.
- getSmoothness: Returns the smoothness of the spline.
ilog.views.interactor.IlvMakeSplineInteractor
- New methods:
- setSmoothness: Sets the smoothness of the spline
to be created. See IlvSpline. The default smoothness is 0.65,
so by default the interactor creates smoother splines than in version 3.0.
- getSmoothness: Returns the smoothness of the spline.
ilog.views.IlvGraphicUtil
- New fields:
- COMPATIBLE_SMOOTHNESS: The smoothness value for Bezier
splines such that they look exactly as in versions 3.0 and earlier.
- New methods:
- DrawBezier, DrawClosedBezier, FillBezier, BezierBoundingBox,
ClosedBezierBoundingBox, PointInBezier,
PointInClosedBezier, PointInFilledBezier: A new variant of each of these methods exists that takes the smoothness value of splines as input,
and it is suitable to handle smooth multipoint splines.
- GetSmoothSpline: Computes an array of IlvPoint for
a smooth spline from a control point array.
- PointInShape, RectBBox, DrawImage, AddClip, CreateTransformedShape: Utility methods that have different behaviors in JDK1.1.x and Java 2.
ilog.views.interactor.IlvMakeLinkInteractor
- The automatic creation of a self link when clicking in the background of the view is removed.
- New methods:
- set/isSelfLinkAllowed: Allows or disallows the creation
of a self link.
ilog.view.IlvLinkImage
The arrow size is now limited to the length of the line segment.
ilog.views.graphic.IlvArrowPolyline
The arrow size is now limited to the length of the line segment.
ilog.view.IlvLinkConnector
Link connectors can now be saved in an IVL file.
ilog.views.graphic.IlvIcon
- The IlvIcon can now be rotated
when running under the Java 2 Platform.
- New methods:
- get/setClip: Sets a clipping region on the IlvIcon.
- set/getHighQualityRendering: Sets the rendering quality
policy (Java 2 only).
- getTransformer: Returns the transformer used to draw
the icon.
ilog.views.graphic.IlvGeneralPath
- The methods removePoint and insertPoint
now have an implementation.
- New methods:
- get/setMaximumStrokeWidth: Sets a maximum stroke width
when a BasicStroke is used.
- set/getClip: Sets a clipping region on the IlvGeneralPath.
- set/getTransformer: Adds an additional transformer to the IlvGeneralPath.
ilog.views.graphic.IlvGraphicSet
- New methods:
- get/setClip: Sets a clipping region on the IlvGraphicSet.
ilog.views.graphic.IlvZoomableLabel
- IlvZoomableLabel no longer inherits from IlvLabel.
- New methods:
- get/setFillPaint: Sets the Paint object used to fill
the shape.
- set/getStrokePaint: Sets the Paint object used to stroke
the shape.
- is/setFillOn: Specifies whether the label is filled.
- is/setStrokeOn: Specifies whether the label is stroked.
- set/getStroke: Sets the Stroke object used to stroke
the shape.
- is/setPaintAbsolute: Specifies whether the Paint objects are
relative to the bounding box of the label or absolute.
- get/setClip: Sets a clipping region on the IlvZoomableLabel.
- toString: Adds the label of the object in the output.
ilog.views.graphic.IlvLabel
- New methods:
- toString: Adds the label of the object in the
output.
ilog.views.graphic.IlvGraphic
- New methods:
- get/setToolTipText: Sets a tooltip text for Swing applications
(see IlvToolTipManager).
- toString: Adds the name and bounding box of the object
in the output.
ilog.views.graphic.IlvReliefLabel
- New methods:
- fitToLabel: Changes the size of the object so that
the label is fully visible.
- toString: Adds the label of the object to the
output.
ilog.views.graphic.IlvShadowLabel
- New methods:
- IlvShadowLabel(IlvPoint, String, float, float, float, int): Constructor that computes the size of the object.
- fitToLabel: Changes the size of the object so that
the label is fully visible.
- toString: Adds the label of the object to the
output.
Changes in Composer
The main Composer changes are the following:
- Import/Export SVG (Scalable Vector Graphics) files.
- Save the contents of a buffer as a JPEG image.
- Composer now uses smooth multipoint splines by default.
- Editors for new gradient types.
- New font editor.
Demonstration Changes
A new example of Thin client can be seen at <install-dir>/jviews/demos/servlet/xmlgrapher.
The SVG example now uses the JViews library ilog.views.svg package instead of providing its own
SVG serialization mechanism.