Version 4.4
Post date: Jan 1, 2014 12:34:17 AM
Version 4.4.3, 08 May 2014 (rev 11 May). This release adds PDF as an export format in Figure Composer.
Revised 11 May: The original 08 May release had a logic bug that prevented the program from saving figure files altogether. Fixed.
You can now export your figures directly to PDF format, instead of relying on Adobe Illustrator to translate FC-generated Postscript files to PDF. Use the File|Export or File|Export all to PDF menu commands. The PDF export function relies on the open-source iText PDF library (Affero GPL). The fonts used to render any text in a figure will be embedded in the PDF file -- unless iText cannot parse the font file or the font explicitly forbids embedding. The PDF file should conform to PDF specification 1.4.
Bug fixed: Modified FC's supported character set to address minor issues uncovered while developing the export-to-PDF function. The following non-ASCII characters have been removed: U03F6 (Greek reversed epsilon), U2204 (there does not exist), U2206 (increment), U220A (small element of), U220C (does not contain as member), U220D (small contains as member), U220E (end of proof), U2219 (bullet operator), U22C5 (dot operator), U0131 (small dotless i), U0141 (capital L slash), U0142 (small L slash), UFB01 (small ligature fi), and UFB02 (small ligature fl). It is highly unlikely anyone has used these arcane characters, so this change should not impact any existing figures.
Bug fixed: Modified FC's XML parser to properly handle character entity references in an XML element's text content so that the new textbox node could include non-ASCII characters.
Version 4.4.2, 11 Apr 2014. We continue to add new features to Figure Composer and fine-tune existing ones...
Added auto-save facility. As you edit figures within FC (or in the figure composer view of DataNav Builder), modified figures are automatically saved to a dedicated directory in your DataNav workspace. When the application exits normally, the contents of this directory are discarded because you have had the opportunity to save any changes in your open figures. Should the program or your system crash unexpectedly, the auto-save facility will restore any backed-up figures found in the auto-save directory -- hopefully minimizing any work lost. The auto-save update cycle runs approximately every 20 seconds and will auto-save any modified figure that has not been auto-saved in the last two minutes.
Added the long-requested Edit|Redo command. This merely re-applies the last change to the current figure that was "undone". The undo-redo model in FC is linear, not branching. If you "undo" several changes, you can "redo" those changes UNTIL you make a new change in the figure. That new change will clear the "redo" portion of the figure's edit history.
Eliminated the View|Zoom mode menu command and corresponding tool bar button. To zoom in or out on the figure canvas, hold down the space bar while the cursor is over the canvas (make sure the keyboard focus is not on a text field!). Left-click to zoom in by a factor of 2, right-click to zoom out by a factor of 2, or press the left mouse button and drag to define a particular zoom-in region -- all while holding down the space bar.
Improved the focus highlight for objects that are rotated with respect to the figure itself.
Introduced a new mouse drag gesture to support interactively resizing certain objects on the figure canvas. An object is resizable if it has the editing focus and the focus highlight includes a dotted "resize outline". To resize it, mouse-down on the outline and drag it in any direction. The resize outline will change as you drag the mouse, and a short text cue indicates what object properties will change when you release the mouse at its current location. Graphs, text boxes, image and shape nodes can be resized in the typical manner, grabbing any corner or edge of the object's rectangular resize outline. In the case of a graph, the resize outline bounds the graph's data window (axes are almost always rendered outside this window). For a line object, resizing really involves "grabbing" one endpoint of the line segment and dragging it to a different location.
Modified definition of image element to allow cropping of the original source image. The crop rectangle can be specified manually in the Image Properties editor, or interactively via a mouse-drag gesture on the figure canvas. The original image is preserved in case user decides to reset the crop rectangle.
Modified textbox element to respect line feed characters in the text string. Also revised implementation to handle the case of a single token that did not fit the wrap width.
DataNav Viewer web app: (1) Revised Javascript implementation (dn-hubui.js) of attribute value pop-up panel to ensure that the currently selected attribute value is visible in the event that the value list is taller than the pop-up height. (2) Implemented rendering of the new FypML elements introduced in V4.4.1 (dn-renderview.js).
Change to Matlab FIG-to-FypML import engine: a text label identified as the title of a Matlab 'axes' object is now centered horizontally at the top of the FypML graph's data window using percent coordinates. Prior to this change, the label was typically located in user units, so that the title moved unpredictably if the converted graph's axis ranges were different from the original Matlab 'axes' object.
Bugs fixed: (1) Thumbnail preview in Figure Composer's file chooser dialog was incomplete due to uncaught exception. (2) Builder froze during portal login under Windows 7. (3) Status message history "popup" failed to hide in the Viewer web app, probably due to recent changes in YUI library; had to add a 'transitionend' handler prior to opening the pop-up. (4) Scroll bars appeared transiently during the animated expansion/collapse of panels in the hub navigation bar in Viewer app (under Windows 7 only, both Chrome and Safari). (5) FC's file chooser dialog did not show an error message when it failed to load a preview of a PNG or JPEG image file. (6) Error message in chooser dialog's preview window was impossible to read if it was too long. (6) Figure canvas screen resolution defaulted to 72dpi at start-up; it is now initialized from workspace settings.
Version 4.4.1, 10 Mar 2014. This release comes with a number of significant new features, including two new elements. NOTE: Since the FypML document schema must be updated to account for the new elements, figure files saved with this version cannot be opened by prior versions of FC.
New feature in Figure Composer - The "style palette". The new Edit|Copy styling and Paste styling commands let you copy one node's "style set" and apply it to another. A "style set" is the set of node attributes which have a bearing on that node's rendered appearance without changing its location and dimensions, content, or underlying data. Figure Composer accumulates a list of copied style sets in the user's "style palette", which is preserved across application sessions. You can examine the current contents of the style palette in a modeless dialog raised by the View|Style Palette command. Double-clicking any entry in the style palette will automatically apply that style set to the graphic node that is currently highlighted on the figure canvas. Pasting a style set onto a node is easily reversed with the Undo command.
New FypML element - The textbox node, which is essentially a multi-line text label. The text content is broken into multiple lines as necessary to respect the width of the element's bounding box. Text is typicallly broken at word boundaries; however, if a single word is too long to fit, it will be broken across two or more text lines. All text content is rendered in the same font; it's not possible to apply different fonts to different portions of the text. The bounding box is stroked IAW the node's draw styles and filled with the color specified by its Bkg (background color) property. A non-zero margin can be specified, and any text extending above the top edge or below the bottom edge of the bounding box may be optionally clipped. (NOTE: This release does not provide a means of translating a multi-line text label in a Matlab figure into a textbox node; that will be addressed in a future release).
Introduced a different mechanism for inserting special characters (characters not generally accessible from the keyboard) into text widgets that allow them. Use the View|Special Characters menu command to raise a modeless floating dialog containing a character table in which all supported characters are shown (for the current font of the highlighted graphic node). If the keyboard focus is on a text widget that admits special characters, then double-clicking on a cell in the character table will insert the chosen character into that text widget at the current caret position, replacing any selected text. If the text widget does not accept any special characters (for example, the widgets that specify the location or dimensions of a node), then nothing happens.
Introduced a new custom widget to compactly display/edit multiple-choice node attributes like H and V text alignment. Usage is straightforward.
New FypML element - The image node, which provides a means of embedding a PNG or JPEG image into a figure. The source image is scaled to fit within a rectangle defined by the element's bounding box less a margin (same on all sides). If the image's aspect ratio does not match that of the target rectangle, the scale factor and location of the image are adjusted to preserve its aspect ratio and center it both horizontally and vertically within the target rectangle. The bounding box is stroked IAW the node's draw styles and filled with the color specified by its Bkg (background color) property -- thus providing a way to "frame" the embedded image. (NOTE: This release does not provide a means of translating a general-purpose image in a Matlab figure into an image node; that will be addressed in a future release).
Fixed several minor bugs: Improved render bounds calculation to account properly for stroke end-cap and join conditions. Fixed the rescaling algorithm for the line element. Restricted the size of the font family combo box so that it did not mess up the layout of widgets in the Property Editor.
Version 4.4.0, 20 January 2014. Initial release of the complete DataNav portal application (Builder, Server, and Viewer apps), plus sundry changes to Figure Composer.
Users now can control the horizontal distance separating the text label and trace line segment in each entry of a graph's automated legend. In previous versions, this distance was "hard-coded" at 0.1in. Now it can be set to any value in [0..5in]. In FypML schema parlance, the offset distance is defined by the legend node's new labelOffset attribute, an optional property that defaults to the old hard-coded value of 0.1in. Existing figures are unaffected by the change. To change the attribute's value in FC or Builder's "My Figures" perspective, put the focus on the relevant graph, select the Legend tab in the Graph Properties editor, and change the value of the property labeled "G=" on that tab. The user can also set a preferred default value (other than 0.1in) for the legend label offset in the Preferences dialog.
The Matlab utility putdatatofig() has been deprecated in favor of putdata2fyp(). Their goal is the same: to inject Matlab-generated data into an existing FC figure. However, putdata2fyp() is intended to be simpler to use. Also, it can optionally display a preview of the revised figure prior to saving it to file. Unlike putdatatofig(), you can only inject one data set at a time with putdata2fyp(); a future release will support injecting more than one set at once, if users request this facility.
Figure Composer includes three new commands geared toward the tricky problem of injecting revised data into an existing figure : Edit|Extract raw data, Edit|Inject raw data, and File|Inject Data. These commands are discussed more fully on the Menu and Tool Bars page.
The Workspace Browser component in Figure Composer and DataNav Builder now allows you to rename, copy or delete individual FypML or Matlab FIG files. Also, the tooltip for an item in the figure file list includes the size and last-modified date in addition to the full file system path.
The "figure finder" view controller has been removed from the "My Figures" perspective of Builder. The Workspace Browser can now do all the same operations, but is more compact. With this change, the "My Figures" perspective is, essentially, Figure Composer embedded within Builder!
The DataNav portal application suite is now ready for testing by members of the Lisberger lab. This distributed enterprise application has undergone a complete re-design over the last year, with a new conceptual design that simplifies the process of constructing a data hub and eliminates the need for a "mirrored" portal server, as was the case in Version 3.x. DataNav Builder is the primary component in the enterprise application -- portal "authors" will use this Java application client to construct their data hubs "offline", maintaining each hub in their local DataNav workspace. When a hub is ready for "publication", Builder can upload it to DataNav Server, which implements the online portal itself. Server is a Java Servlets-based application running within a servlet container like Apache Tomcat. Included in the deployed web application is a Javascript-based dynamic web browser application, DataNav Viewer, which offers read-only access to the portal's published content. We hope to soon have a working portal up and running on a dedicated machine in the Lisberger laboratory, so that lab members can begin to try out the application and provide feedback on how it can be improved. References in this online guide to Version 3.x of the portal application suite have been removed; the DataNav Portal App chapter offers an introduction to its successor.
Other: (1) Updated code to use Java 6 implementation of a Swing-friendly worker thread. (2) Bug fixed: The node tree view, figure canvas, and workspace figure browser's preview canvas were not always rendered correctly (missing text labels) when Builder launched. (3) Bug fixed: In the FIG-to-FypML import engine, if the coordinate of a Matlab line segment endpoint had a very tiny fractional part, the line segment would not be converted correctly to FypML. (4) Bug fixed: In Ubuntu Linux, the modal progress dialog that blocks the UI while a figure is being saved to file would (at least sometimes) remain stuck on screen as a blank window, rendering the program unusable.