![]() |
![]() ![]() |
Known bugs
and problems |
This page is no longer maintained on a regular basis.
Please read the files "/doc/README" and "/doc/CHANGES" from your JavaFIG installation for the most recent documentation about JavaFIG features, bugs, and changes.
|
Change log
67.01.00 |
JavaFIG changes and bug list 06.01.2000 1) Status 2) Notation 3) Known Bugs 4) Changes -------------------------------------------------------------------------- 1) Status: (JavaFIG 1.36) o all FIG 3.1 and FIG 3.2 object types exceptions: no FIG 3.2 X-splines (rarely used anyway) rotated text and ellipses require JDK 1.2 with Java2D o all basic xfig editor commands, except object rotation o read FIG 2.1, FIG 3.1, FIG 3.2, write FIG 3.1, FIG 3.2, including format conversion o platforms: JDK 116 117 118 12f 122 MS-VM IE4.x Netscape4.5 Solaris + + + + + - + P Linux + + - + - - - P Windows 95/98/NT + + + P + + + P Mac not tested + = runs ok. x = not available P = problems -------------------------------------------------------------------------- 2) Notation: K killer bug J Java (but not JavaFIG) bug B bug I feature, low priority bug F fix N new feature/function -------------------------------------------------------------------------- 3) Editor/Viewer Bugs (JavaFIG 1.35): J JDK 1.1.x/all versions: excessive memory problems in java.awt.TextArea, when more than about 100 lines of text J Netscape 4.x: can't load icons (Java resources & security broken) J MicrosoftIE 4.x: can't save files reliably (try "low security" settings) B documentation for user-extensions is still missing. I screen display quality is low, due to AWT restrictions. I excessive memory usage for splines (javafig.objects.GE_spline/GE_bezier), but no problem for typical drawings. I no support for FIG 3.2 X-splines. However, these are not used often. -------------------------------------------------------------------------- 4) Changes: 06.01.00 N documentation updates 22.12.99 N first support for rotated text (requires Java 2D). 20.12.99 F major renaming of all GE_xxx classes to FigXxx and similar names. F switches to Jikes 1.10. The compiled classes seem to work, however, JAX 0.41 and javap report "null method" problems in some classes (e.g. javafig.gui.PresentationViewer). 17.12.99 F changed state button behaviour to match xfig behaviour (middle button decrements, right button increments) F reorganized the help menu entries and source documents. Included help on shortcut keys. N added class javafig.objects.FigPrintWriter to assure xfig/fig2dev compatible file format (Unix-style LF only, no CRLF). 19.11.99 N changed javafig.objects.Exporter to escape filenames with '" to support Windows-style filenames with blanks in the command lines for fig2dev, e.g. "C:\My Documents\foo.fig" . 18.11.99 N new utility class Pathname to remove subdirectory references (..) from pathnames. N several improvements to the PresentationViewer and ImageHelper to find resource files from CLASSPATH and JAR-archives better. 06.09.99 N implemented the font 'special' flag to support mixed Latex/Postscript export via fig2dev. You can set the flag both in the main editor attributes or the 'edit text object' dialog. However, so far I didn't manage to clean up the export code in javafig.objects.Exporter, too. You will have to call fig2dev -L pstex and fig2dev -L pstex_t by hand (or from a script). 30.07.99 F changed the zoom factor limits in javafig.canvas.GE_trafo and javafig.canvas.ViewerTrafo, new minimum is 0.03125 and maximum is 32.0; (Note that the ruler-formatting may look suboptimal at high zoom factors due to rounding errors.) N added internal class 'ListEnumerator' and 'getElements()' method to javafig.objects.GE_olist. This list enumeraton is still _not_ thread-safe against structural changes of the list, but at least multiple enumeration can be active simultaneously. This should stop the intermittent HADES redraw problems. 15.07.99 F changed javafig.canvas.GE_canvas.getVisibleRegionBBox() to correct for the rulers. 30.06.99 N some support for greek and math symbols (xfig 'symbol' font) via font-recoding-hack in class javafig.objects.GE_text. Activated Symbol-font in javafig.gui.AttribsControls 20.05.99 N first implementation of AlignObjectsCommand (so far, without Undo) F improved several class doc comments 19.05.99 N new icons for object alignment N new methods in AttribsButtonPanel to display only those attribute controls (buttons, choice's, etc.) relevant to the current command. Corresponding changes to the mode and command callback methods in ModularEditor. F several changes / cleanups / improvements to AttribsControls and AttribsButtonPanel 17.05.99 F several fixes to the central JavaFIG makefile. 14.05.99 N new class "EditGlobalAttributesDialog" and corresponding changes to ModularEditor to allow the user to select the default global editor attributes, e.g. arrow width and length. F fixes in "AttribsControls" and "GE_attribs" to correctly propagate attribute changes to the attribute controls. F fixed the object selection mechanism in "ModularEditor" to inhibit GE_text shadowing of all other objects inside the GE_text bounding box. Now, the selection mechanism will (should) correctly select any polyline/object whose vertices are inside of one snap-distance, even if this vertex lies inside a GE_text object. 13.05.99 F re-enabled the "GE_canvas" status messages instead of printing them, as the AWT deadlock bug in JDK 1.2 seems to be independent of these status messages. 07.04.99 N introduced flag 'syncRepaintFlag' and accessor methods into javafig.objects.GE_drawable and class javafig.objects.GE_baseobject to support per-object synchronous repaints (e.g. in HADES). This feature is currently not used anywhere in JavaFIG itself. 01.04.99 N new class javafig.gui.SimpleTextViewer to encapsulate the loading and displaying of simple ASCII text files for help, license, etc. 17.03.99 F removed unused (and broken) Font initialization in classes GE_ibutton, GE_sbutton, GE_updatemodeButton, ... to avoid Macintosh MRJ crashes 16.03.99 N added support for "resource:/slide/" URLs to the presentation viewer. It is now possible to include all FIG slides (and all embedded images) and the referring ".jpt" file into one ZIP archive for faster/single download. At the moment, however, all browsers (including JDK 1.2 appletviewer) have problems to access GIF/JPG images embedded into a ZIP archive from an applet (JDK bug). F several fixes / updates to classes PresentationViewer and PresentationViewerApplet N using jikes as the default compiler F cleaned up the "about JavaFIG" dialog window, should solve layout problems on Linux and Solaris 12.03.99 F use the non-threaded version of the FIG-parser in the editor/viewer/ presentation viewer as a workaround against the JDK 1.2 deadloc on windows 11.03.99 F introduced setup manager variable "JavaFIG.Parser.enableMessages" to switch off the parser status messages during parsing (as a workaround for the JDK 1.2/Windows deadlock bug) F fixed javafig.commands.CreateTextCommand.keyTyped() to handle key codes generated by JDK 1.2 for Windows ... 10.03.99 F fixed javafig.commands.CreateTextCommand.keyTyped() to ignore ASCII control sequences (like CNTL-S) generated by the new menu accelerators. F fixed javafig.objects.GE_text and javafig.objects.GE_figIn to ignore spurious ASCII control sequences in text objects N rewrote the help-page for the PresentationViewer and corrected the help resource-URL to reference this page N new "window size" menu and callbacks in javafig.gui.PresentationViewer, upgraded to version 0.17 N changes to the panning mechanism in PresentationViewerCanvas to allow for very small-step panning (about 4% of window size) F complete reorganization of the javafig.gui.PresentationViewer menu callbacks, used symbolic String constants for everything, ... F several fixes to javafig.utils.PresentationParser to avoid NullPointers on presentations without a single chapter (better initialization, many more checks, etc.) 23.02.99 F changed all calls to Graphics.drawImage() to the synchronous variant, as an attempt to reduce the deadlock probability F fixed ClassCastException in ResizeTextCommand F fixed the findNextCompound algorithm and several status messages in BreakCompoundCommand F added several calls to javafig.utils.AntiDeadlock in all classes which modify/use AWT dialog windows. 22.02.99 N changed version to 1.34, added '#' shortcut for break compound F new keyboard shortcuts for 'save', 'new', ... without the SHIFT modifier F new attempt to workaround the 'deadlock' problem. Several synchronizations added to GE_canvas, changed GE_canvas offscreen redrawing to the synchronous variant of Graphics.drawImage. 21.01.99 N added the 'g' bindkey to KeyHandler to toggle between none/medium grid. F added debug messages from GE_statusCanvas; enable with SetupManager property 'StatusCanvas.debug' 12.01.99 F introduced the "JavaFIG.Exporter.DumpStatus" setup manager property to wrap and enable/disable the output/error stream dumping from the external process. Disable for Windows, unless you like deadlocks. 11.01.99 06.01.99 - 10.01.99 F several changes to GE_canvas and GE_statusCanvas to get rid of the d**mned Windows deadlocks under JDK 1.2. Changed version to 1.33. Got some improvements, but it still doesn't work reliably. 04.01.99 F slowed down the redraw using repaint(delay) calls in GE_statusCanvas to keep JDK 1.2 happy (i.e., avoid the complete Windows deadlock during repaints). 30.12.98 F use a dummy GE_statusCanvas to receive the annoying and very time-consuming parser messages while processing the clipboard contents in javafig.commands.PasteFromClipboardCommand. F added a WindowListener to javafig.gui.Console to allow closing via the window menu. 29.12.98 F removed unused old class GE_console, replaced by javafig.gui.Console F renamed javafig.utils.FigWriter to FilteredFigWriter 28.12.98 F removed useless class GE_imageLoader and the remaining dead references to it (use javafig.gui.ImageHelper instead) F major updates to the class documentation (Java 2 style) to several dozen classes, including all classes from javafig.commands.* 10.12.98 N major rewrite of the JavaFIG makefile, file and directory structure, and new WWW pages. 07.12.98 N added the method getTmpObjects() to GE_editor, ModularEditor, and Viewer F further changes to the image loading stuff in CreateImageDialog. Now, the empty image object gets the correct transformation, and it should react to changing the aspect ratio (reload if necessary). F fixed the bug introduced into editor selection algorithm for polyline objects. 04.12 F fixed the image loading stuff in CreateImageDialog, CreateImageCommand, and GE_image. Now, images can be loaded with fixed aspect-ratio, and they are shown after loading as the editor tmpObjects. F again changed the editor selection algorithm. In the first pass, we selected the first objects whose corners are inside one snap-distance from the mouse position. If no object is found, we double the snap- distance. Also, text objects are selected if the mouse is anywhere inside their bounding box. xx.11.98 wrote the PresentationViewer and applet 27.10.98 F call parser.setObjectPainter(objectCanvas) in javafig.gui.Viewer to activate the ImageObserver: display images once they are loaded... 30.09.98 N184 implemented SnapToGridCommand 29.09.98 F183 improved the editor selection algorithm to use a two-pass algorithm. The first step will look only for objects with corners nearer than one snap-distance to the mouse position, while the first step will relax that condition: it will also select objects who cover the mouse position, as well. N182 support image aspect ratio stuff in classes GE_image, CreateImageDialog, EditImageDialog. F181 fixed the annyoing 'fill style off by one' bug in EditXXXcommand --- rewrote AttribsControl.showFillPattern(). F180 added some font size and fill pattern (shades) values to AttribsControls 28.09.98 N179 complete rewrite of commands/CreateTextCommand, to use JDK116 compatible keyPressed/keyTyped methods. When editing an existing text, this is removed from the object list and only used as the 'tmpObject', so that the text is no longer garbled until finishing the editing. Also, recursive undo and redo of CreateText commands should now work. 25.09.98 F178 changed GE_figOut to write out backslash-characters '\\' correctly. 20.08.98 F177 several fixes to the FIG 3.2 parser and additional checks/special cases to get both FIG 3.1/FIG 3.2 compatibility. The parser and writer now handle all of the standard xfig.3.1.4 and xfig.3.2 examples. (Note that xfig.3.2/Examples/transit.fig needs 64M of memory due to inefficent memory usage in classes javafig.objects.GE_spline and GE_bezier. 19.08.98 N176 parser and writer support for FIG 3.2 format, including global FIG attributes (page size, orientation, ..) and spline conversion. N175 updated class GE_colorCache and the parser/writer classes to support FIG pseudocolor objects. 17.08.98 N174 editor support for GE_trigger objects (hyperlinks). New class CreateTriggerCommand, several fixes and updates to EditTriggerDialog, ModularEditor, and EditorMenuBar. New trigger icon. F173 allow to set a new help message string in GE_ibutton/ImageButton F172 disabled the annoying diagnostic messages from ImageHelper. 28.07.98 N171 added 'write HADES resource' functionality. 01.07.98 N170 new command "ResizeTextCommand" for easy changing of text font size and style, corresponding updates to ModularEditor (now version 1.30) and ModeButtonPanel. 07.06.98 F169 update the filename-Textfield in the ModularEditor status panel after a "save file as" operation. 06.06.98 N168 update object attributes (line width, arrow size, etc.) from within the GE_baseobject.scale() method. Also store the original attributes for later undo in ScaleObjectCommand. 04.06.98 N167 support for x/y restricted copies in javafig.commands.CopyObjectCommand F166 added many try/catch blocks to all icon/button image related parts of ModularEditor, Viewer, ModeButtonPanel, AttribsControls, and ViewerButtonPanel to get Netscape to load the applets (however, the icon and buttons are still not loadable by Netscape). N165 new class javafig.gui.EditorApplet - but Netscape 4.05 still is not able to load Java 1.1 resource files (icon/buttons) :-( However, the applet works with appletviewer and HotJava. 03.06.98 N164 added text fields to specify arrow width and length to javafig.gui.AttribsControls and javafig.gui.EditPolylineDialog N163 support for x/y restricted moves in javafig.commands.MoveObjectCommand F162 implemented ScaleObjectCommand, with unrestricted, restricted (proportional) scaling, and with respect to an objects center or the opposite corner. Implemented undo for scaling. 02.06.98 N161 several changes to javafig.canvas.GE_rubberband to support object scaling, and restricted moves and copies. N160 new class javafig.commands.ScaleObjectCommand N159 implemented method scale() in GE_baseobject. This allows to scale all objects except GE_compound and GE_text, which got their own special implementations. N158 defined and added method scale() to GE_object. 15.04.98 F157 support for asynchronous image loading with correct 'ImageObserver' references in GE_image object, setObjectPainter() method in GE_figIn, and corresponding changes to ModularEditor 14.04.98 F156 corrected several bugs in the CreateTextCommand execute() and undo() methods F155 don't switch off and on the 'object corners' during CopyCommands 01.04.98 F154 fixed all classes to use the Java 1.1 API throughout, so that no deprecated methods or classes are left in JavaFIG. F153 removed classes and source files not longer needed for JavaFIG 1.2, including the package 'javafig.editor' and several classes from 'javafig.gui'. 27.03.98 F152 fixed the GE_image.copy() method F151 rewrote most of the README and HTML files to reflect the recent changes. 24.03.98 N150 changed the timestamp tests in all objects (GE_baseobject ... GE_text) to workaround the Windows timer bug. Objects should now be displayed correctly even when chaining panning/zooming operations. 23.03.98 F149 changed the timestamp handling in classes javafig.objects.GE_wline and GE_wfill to work around the "Windows coarse time resolution" bug. Now, both classes will rebuild themselves when their own timestamp is less than OR EQUAL to the transformation's timestamp. This means more work and less performance, but should get of invalid objects due to multiple transformation changes until the timer increments. N148 enabled the "point operations" for javafig.objects.GE_ellipse with the getPoints() and setPoints() method to allow for a "move point" / "scale" on circle/ellipse objects. F147 fixed the UpdateCommand undo and redo functionality F146 renamed javafig.objects.GE_oval into javafig.objects.GE_ellipse, with corresponding changes to all JavaFIG classes 20.03.98 F145 changed javafig.objects.Exporter to write the FIG files as tmp files, in order to avoid overwriting existing FIG files. 19.03.98 N144 add findButton() method to javafig.gui.ModeButtonPanel to allow a visual feedback of the KeyHandler-initiated commands by activating the corresponding command button. F143 fixed the "CreateTextCommand" to allow for direct input of German umlauts on Solaris (english keyboard), using the + [aou AOU s] keys. 18.03.98 N142 new class javafig.gui.KeyHandler with support for "single key" shortcuts. Added bindkeys for most frequently used editing commands. See "doc/FAQ" for a list of the currently available bindkeys. 17.03.98 N141 added several bindkeys for the MiniEditor menu commands N140 major changes in rewrites in javafig.canvas.GE_canvas and subclasses, and javafig.canvas.GE_trafo and subclasses. The grid mode and snapping mode should now work for all zoom factors and units. 14.03.98 F139 fixed the mouse-button bindings in javafig.commands.DeleteObjectCommand to be consistent with the CreateCompoundCommand and ZoomRegionCommand. Also corrected and added several status messages in many command object classes. N138 changed the visual appearance of the GE_sbutton and GE_colorButton classes to the 'flat' style of Windows/Office 98. Also added some dummy GE_sbuttons to the AttribsButtonPanel as a means to add the 'update mask' flags to the Choice menus and TextFields for font style, font size, corner radius and layer (depth). N137 implemented the update() method in class javafig.object.GE_attribs and changed all object classes in javafig.object.* to use this method for attribute updates. For the first time in JavaFIG, the update() method in GE_attribs respects the 'update mask' flags set in the AttribsButtonPanel controls. N136 changed the implementation of javafig.gui.AttribsButtonPanel to rely on the methods supplied by class javafig.gui.AttribsControls. The resulting code is much shorter and much more modular, because the main attribute control panel and the individual "edit object" dialog windows share the same code. 13.03.98 N135 got the edit dialog windows (EditXXXDialog) working for object classes for rectangles, polylines including arcs, splines, bezier splines, and the closed variants of these, texts, images, triggers, and circles and ellipses. 12.03.98 N134 first implementation of the EditPolylineDialog window for interactive attribute changes to polyline/spline/bezier/arc objects. N133 first implementation of the 'edit object' command with support for text objects and polylines. N132 implemented the attribute get/set (called showXXX and setXXX) methods in javafig.gui.AttribsControls. This is the basis for efficient design and implementation of the EditXXX dialogs for the 'edit object' commands. N131 implemented the clipboard interface with new command classes javafig.commands.CopyToClipboardCommand, CutToClipboardCommand, and PasteFromClipboardCommand. For these commands, the selected objects are converted to/from FIG file format and then entered into the clipboard as standard Strings. This also allows to read back selections from other programs, where texts will be converted into GE_text objects by the parser. A typical application of this should be to include program fragments as listings into JavaFIG drawings. N130 implemented the 'merge file' and 'merge URL' methods, with corresponding updates to the FIG-file parser (new callback mechanism) 10.03.98 F129 several minor changes to command classes to get the status messages right. F128 corrected pushing and popping status messages in GE_statusCanvas. With this change, the status messages from the GUI buttons don't overwrite the status messages from the ongoing commands. N127 implemented the 'set cursor snapping', 'set grid', and 'set units' methods for the Editor. 05.03.98 N126 corrected the systemresource URL to load the JavaFIG demo page. N125 first implementation of the 'cursor snapping' callbacks in javafig.gui.MiniEditor. However, it seems that class ViewerTrafo's setSnapRelative() method is broken for metrics other than inches and non-integer zoom-factors. N124 added default font selection via SetupManager properties to classes javafig.gui.Console and javafig.gui.MiniEditor. This improves the visual aspect under standard Linux greatly. F123 invisible GE_triggers are now copy()ed and move()d as other objects, even if they are invisible before and after. Unlike the previous behaviour, it is now possible to treat triggers exactly as all other objects without the need for special handling. F122 several fixes to CreateCompoundCommand and BreakCompoundCommand, mostly to set the correct select/deselect/showPoints status of the compound members and the compounds themselves 19.01.98 N121 allow parsing of non-ASCII strings in the GE_figIn parser. Use SetupManager variable "JavaFIG.Parser.enableNonASCII" to enable/disable this feature. 15.01.98 N120 use the threaded variant of parse_fig_file (_threaded) in the MiniEditor N119 integrated the parseFile, parseURL, parseResource, parse methods from javafig.gui.MiniViewer into javafig.gui.MiniEditor. N118 implemented the first step of the xfig user interface metapher: all commands will try to create a new command of their class via the reflection API in handleCommandCallback. Note that it is currently necessary to use 'Cancel' to change the mode. F117 switched to the new 'viewerbuttons.gif' button icons in MiniEditor, to use the improved 'zoom' function icons. F116 fixed several menu items and the menu organization in EditorMenuBar. N115 added the doUndo(), doRedo(), and doCancel() callbacks to javafig.gui. MiniEditor. Because of the varying menu items, doUndo() and doRedo() required special handling in actionPerformed, namely evt.getActionCommand().startsWith( "Undo") N114 made GE_editor an subinterface of ActionListener, so that all command objects can use the actionPerformed() method as a callback. F113 using the additional argument to the callback methods, the active mode (create xxx, move, copy, ...) button is now highlighted in the javafig.gui.ModeButtonPanel. N111 all callback methods in javafig.gui.MiniEditor now receive one additional Object argument. For most methods, the triggering ActionEvent is used for this argument. 14.01.98 F110 fixed/disabled lots of info and error messages in javafig.gui.MiniViewer N109 new method setImage( imagename, filename, filetype ) in class javafig.objects.GE_image to use the new ImageHelper functionality from N101. N108 new method addActionListener() in javafig.objects.GE_figIn to allow Java 1.1 compatible callbacks from the parser. The command String generated is "FIG file ready". N107 new method setFilenameAndType() in javafig.objects.GE_figIn to allow creation of GE_image objects that are able to find their image data relative to their parent FIG file. F106 update filename in the status line after doShowPrevious() and doShowNext() in javafig.gui.MiniViewer. F105 changed LayoutManager of the viewer status line entries to dummy GridLayouts to force correct layout of subcomponents in javafig.gui. ViewerStatusPanel. Also removed ugly 'raised' status of the main status panel. F104 fixed unnecessary call to parse() for NULL InputStream and report an error instead in javafig.gui.MiniViewer F103 fixed rubberband enable (pointRubber) at the end of a zoom region command in javafig.commands.ZoomRegionCommand N102 added file types (FILE, URL, RESOURCE) and corresponding Stack to javafig.gui.MiniViewer N101 added findImage() and related methods to javafig.gui.ImageHelper 13.01.98 and previous: B100 no information log available. ----------------------------------------------------------------------- Dr. Norman Hendrich Tel. +49 40 5494 2399 Universitaet Hamburg, FB Informatik Fax. +49 40 5494 2397 Vogt-Koelln-Str. 30 D-22527 Hamburg e-mail: hendrich@informatik.uni-hamburg.de |
06.01.00
Impressum
|
http://tech-www.informatik.uni-hamburg.de/applets/javafig/doc/bugs.html |