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