Release Notes
- Alpha Release (September 1996)
- Initial release.
- Alpha2 Release (October 6, 1996)
- Added CanvasGlyph that manages placing figures at exact coordinates and
also handles scaling and paging. Added an example page with an example using
CanvasGlyph.
- Alpha 3 Release (November 3, 1996)
- Added sgraphics.wrapper.HitGlyph. Added a transparency option to
sgraphics.Viewer. Make sgraphics.figure.FigLabel public and added a length
operation. Fixed a pick problem in FigLabel.
- Alpha3a Release (November 7, 1996)
- Change index.html: add common problems. Add test case. Change to Jinstall.
- Alpha4 Release (November 17, 1996)
- Remove Jinstall. Add FigImage. Fix problems with AlignLayout. Added second
CanvasExample that uses glyphs to manage the scrollbars. Added images to the
canvas examples.
- Beta1 Release (November 26, 1996)
- Add Adjustment, AdjustmentConstraints, and Viewport. Added an example of
Viewport to the examples page. Added code that makes it impossible to drag a
figure off a CanvasGlyph. Added support for clipping in the geometry management,
although the figures still don't use it yet, CanvasGlyph does use it to keep
drawing in the drawing area. Added a blinking bar, blinking label, and a hidden
label to the FigureKit to support simple text editors.
- Beta1a Release (December 8, 1996)
- Fix the viewport example so that it works with unix browsers. Fixed
deadlock problems caused by blinking text and bar.
- Beta1b Release (December 30, 1996)
- Fix a few geometry management problems stemming from checking equality of
floats. Fix tiling so that resolution independence does not create empty pixels
between glyphs.
- Beta1c Release (December 30, 1996)
- Fixed tutorial so it will work with Netscape 3.x. Previously the TextField
would disappear because Netscape 3.x generated an ACTION_EVENT when
Panal.add(TextField) was called.
- Problems: Clicking on the text box over a pin causes the package to be
selected. This is due to Netscape sending the event to the Panel before sending
it to the TextField. Cafe sends the event to the TextField first. The tutorial
was designed with this in mind and will not be fixed.
- Beta2 Release (January 16, 1997)
- Add double buffering to GraphicsViewer. (The default is no buffering.) Add
a way to stop update from clearing the background in GraphicsViewer. (The
default clears the background.) Added replace(int, Glyph) to Glyph. Add vertical
label to the FigureKit. If a label's style does not specify a background color,
now the label's background area is cleared before drawing. Added Outline and
LabeledOutline to the wrappers. LabeledOutline draws a 3d border around its
child and puts a label on the top, partially covering the line. LabeledOutline
is like a group box.
- Beta2a Release (January 21, 1997)
- Fix double buffering so that the image used for the buffer is only
re-created when a resize really changes size. Change the implementation of label
to write bytes instead of chars. This speeds up data transfers for X-Windows.
- Beta2b Release (January 23, 1997)
- Fix Painter so it really draws chars and bytes when it si supposed to.
Remove some synchronize statements in GlyphImpl to speed things up. Fix a thread
problem in FigLabel and FigInsertBar that caused a null pointer exception.
- Beta3 Release (March 5, 1997)
- Fix the scrollbar and button problems with Netscape 3.0. (handleEvent() was
watching for Event.target, and Netscape sends events that Cafe doesn't. Now the
Event.id is tested.) Major changes to the event handling system. Event handling
was separated from the glyph tree. pick() still uses the glyph tree, but pick()
now builds a picker chain from the top of the tree to the hit viewer. The chain
only contains viewer objects and handleEvent() is now only called in viewer
objects. The postEvent() call has been removed. Old code that handled events in
a glyph, must be changed to handle events in a viewer. This separation makes the
event handling system replaceable. Also, an event system can now be designed
around JDK 1.1 without breaking existing application code, I hope :-).
(See the design notes to learn more about the new event model.) ViewerImpl can
now register a ViewerCallback object and receive notification. All the examples
have been updated to reflect the changes, and the ViewerCallback is used in the
tutorial as an example of how to use it.
- Many thanks to Bill Petheram who worked out most the the new event model.
- Code in TileLayout that made sure glyphs butted against each other with no
empty pixels between (in resolution independent mode) was removed. This caused
problems because the resulting size after tiling is incorrect. For now, if you
need tiling to be accurate to the pixel, use the resolution dependent mode:
Sgraphics.resolutionIndependent = false.
- Beta3a Release (March 23, 1997)
- 1) Add a variable in the Sgraphics class to control requirements
caching. This is a temporary fix for problems related to geometry management
with widgets. See the Common Problems page.
2) Fixed a thread problem in
FigLabel that caused multiple threads to be created in draw().
Fixed a FigLabel problem that caused a null pointer exception with
vertical label creation.
3) Made changes to Box so that the cache
is flushed when the list of children changes.
4) Added a swap call to Glyph
so that two glyphs can be interchanged.
5) Fixed double buffering problems.
6) Fixed FigureViewer so that it uses double buffering when
dragging. Now double buffering is enabled in SgraphicsAdapter by
default and it must be enabled when using FigureViewer. (Dragging
figures could still be improved. Thick lines are still drawn with overlapping
lines that cause flashiness when they are dragged using XOR.)
7) Netscape
3.x still is having problems with XOR on an image buffer (See examples page).