yFiles AJAX Release Notes
yFiles AJAX version 1.3 is the newest major release available.
Technical Requirements
Client
-
The client part of yFiles AJAX runs inside a common web browser.
- Firefox 3.0 and 3.5
- Internet Explorer 6, 7, and 8
- JavaScript and Cookies need to be enabled.
Server
- A Java Runtime Environment needs to be installed. The servlets are compiled using Java 1.4.2.
- A servlet container needs to be installed, e.g., Tomcat 5.5.
- The server uses the 2.7 series of the Java class library yFiles. The Viewer distribution or the Complete distribution of yFiles is needed (see yFiles Product Types).
- Ant is not strictly necessary, but it helps for some tasks.
yFiles AJAX 1.3 - Changes Since 1.2
General
- yFiles AJAX is now based on Dojo 1.4.0 and yFiles for Java 2.7. Older versions of yFiles for Java on the server are no longer possible.
- yFiles for Java 2.7 includes support for the GraphML file format. Thus, the separate graphml.jar in the yFiles AJAX distribution is no longer necessary and has been removed.
-
yFiles AJAX ships with the ySVG extension package as before (with the new version 2.2),
but does no longer rely on it. If your graphs do not use SVG nodes, you can
now deploy your web application using yFiles AJAX without the
ysvg.jarandbatik.jarlibrary files. - Applications written for yFiles AJAX 1.2 should also run with yFiles AJAX 1.3 on the client side. On the server side some changes may be needed, if the application uses GraphML directly. The GraphML API did not change much, but the classes reside in different packages. See the yFiles for Java Developer's Guide for details.
- yFiles AJAX now supports Firefox 3.0 and 3.5 and Internet Explorer 6, 7 and 8. Firefox 1.x and 2.x are no longer supported, since Dojo does not support them any more.
- Handling the requests for custom realizer images (as used by the palette in the Graph Editor demo) has been moved from the UpdateServlet to the new PaletteServlet.
New Features
- A new demo has been added which displays the organization chart of a company. Several possible application features are demonstrated.
- Another new demo, the network monitoring demo, shows how live state of a network can be queried and displayed.
- The graph canvas shows a configurable loading image, if it is waiting for tiles from the server and no old scaled tiles are available.
- It is now possible to restrict the range of possible zoom values for the graph canvas.
-
The new client-side class
GraphHighlightereases customized highlighting of nodes and/or edges. Its usage is demonstrated in the OrgChart demo.
Improvements
- The graph canvas uses scaled old tiles in fitContent while waiting for new tiles from the server. This technique already existed, but was only used for setZoom.
- If the canvas is dragged while the mouse is over a node an onMouseOutNode event is fired. An onMouseOverNode event is fired when the drag ends. This eases tooltip handling for example.
- The demos and demo graphs have been brushed up.
- Configuring the defaults and registering custom node realizers in the UpdateServlet has been improved.
Fixed Bugs
- A workaround for a bug in Internet Explorer now prevents that the overview marker becomes opaque. This happened, if the overview marker was once wider or higher than 4096 pixels. Even if it became smaller again it stayed opaque.
- View configurators with no other reference were garbage collected. This has been fixed.
- The pathSet function of the canvas was not called, if the new graph was empty.
yFiles AJAX 1.2 - Changes Since 1.1.2
General
- yFiles AJAX is now based on Dojo 1.2.1.
- The demo applications for yFiles AJAX now depend on yFiles for Java 2.6, while yFiles AJAX itself still works with yFiles for Java 2.5.
New Features
- The new action framework simplifies adding custom server side functionality to an application using yFiles AJAX.
- A new API was introduced for customizing the views (and the renderers) used for creating image tiles of a graph on the server.
- The new Treasure Hunt tutorial and the new Swim Lanes demo application provide examples for using the action framework. Moreover, the Swim Lanes demo also uses ViewConfigurators.
Improvements
- Some static support methods of the BaseServlet like newGraph and cacheGraph were protected. They are now public, so they can be used without inheriting from the BaseServlet.
- We added a workaround for an Internet Explorer bug which under certain circumstances resulted in an offset of the preview line for a customized CreateEdgeMode.
- The layout call in the LayoutServlet is also encapsulated in a protected method (doLayout) in order to provide better customization possibilities. Previously only the creation of the layouter (createLayouter) was customizable.
- There is a new optional parameter customData for the methods changing a graph in the client side Graph and HierarchyManager classes. These methods are asynchronous and use callbacks to notify the client side application when the requested operation succeeded or failed. The customData is not sent to the server, but it is passed to these callbacks. This enables associating extra data with specific calls which can then be used in client side post processing.
- The name of the license file is no longer fixed. It can be configured with a context parameter of the web application.
Fixed Bugs
- Fixed race conditions which sometimes created NullPointerExceptions in BaseServlet.writeWorldBounds.
- The pathSet function on the canvas was sometimes called, before the hit test data for the new graph was also loaded. Client code connected to pathSet, which depended on the hit test data for the new graph (e.g. highlighting a node in the new graph), was affected. Now pathSet is not called before the new hit test data is available.
- Exceptions occurred occasionally on the server, if the user ran two instances of the grouped graph demo. The UpdateServlet no longer tries to close already closed groups or to open already open groups, which lead to exceptions in yFiles for Java.
- Moving a group node to its own subgraph is now just ignored instead of creating an infinite recursion on the server.
yFiles AJAX 1.1.2 - Changes Since 1.1.1
Fixed Bugs
- The Grouped Graph demo failed in a local installation, if the
y.jarfile from a yFiles 2.6 distribution was used (instead of yFiles 2.5). - The functions
getNodesandisNormalNodefor the client sideHierarchyManagerwere fixed. - Under some circumstances the
EditModeproduced "this._canvas.getHitTest().getElementType is not a function" errors. - The
MoveSelectionModesometimes produced errors when trying to move a node. - For failed edge creations
onNodeCreationFailedwas called instead ofonEdgeCreationFailed. - For failed node creations
onNodeCreatedwas called instead ofonNodeCreationFailed. - The second tutorial did not work, if the sources were extracted using the
tutorialstarget.
Improvements
- It is now possible to set a maximum zoom level for the
fitContentfunction of aGraphCanvas. This is demonstrated in the demos (e.g. Graph Viewer demo). - The pre-compiled server side demo classes are now packaged in the separate
yfiles-ajax-demos.jarinstead of being part of theyfiles-ajax.jarwith the product classes. - yFiles AJAX now ships with GraphML 3.1.
- The
EditModeis now configurable and customizable. Configuration includes for example enabling or disabling the creation of new nodes. Customization includes for example using your own function for creating nodes. - The
CreateEdgeModeis now customizable. - The error handling of the build script was improved.
yFiles AJAX 1.1.1 - Changes Since 1.1
Improvements
- The number of server requests made for resizing an overview GraphCanvas has been significantly reduced. As a result for example the new overview in the Graph Viewer demo is available much earlier after dragging one of the splitters.
-
The
GroupNavigationModenow keeps track of group nodes closed on switching the display to their subgraph and reopens them on returning from their inner graph. Previously, after entering an open group node and returning from it, the group node was closed. -
A further customization hook has been added to the
LoaderServlet, the methodcustomizeGraphMLIOHandler, which can be used to add custom attributes to be read from a GraphML file or written to it. This is not possible with thegetIoHandlermethod, since it has no access to the graph instance used for reading or writing.
Incompatible API Changes
-
The client side function
HierarchyManager#getVisibleGraphParent()does not take a parameter any more. It had an unnecessarynodeIdparameter, which did not have any influence on its result. Since this function is called from client side JavaScript code, which ignores unnecessary parameters, there is not really a need to change any code except for clarification.
yFiles AJAX 1.1 - Changes Since 1.0.1
New Features
- yFiles AJAX provides comprehensive grouping support, including group nodes and drill-down facilities.
- yFiles AJAX is now based on dojo 1.0.
- If yExport is present on the server, the LoaderServlet automatically provides the download formats PDF, SWF, EMF, and EPS, which are supported by yExport.
- A new Grouped Graph demo has been added.
Improvements
- Support for grouping and folding of nodes has been added.
- yFiles AJAX is packaged with the new layered build system of dojo. This enables using custom dojo builds as a basis for yFiles AJAX instead of the dojo release which ships with yFiles AJAX (dojo 1.0.2).
- Styles for yFiles AJAX widgets have been separated into necessary style (e.g. positioning of tiles in the graph canvas) and optional style (e.g. color of selected graph elements in the graph canvas). The latter can be customized by changing the centralized yfiles AJAX style sheet.
- The Graph Editor demo now ships with client side source code.
- The visual effect for zooming with the mouse wheel has been improved.
-
There is a new field
mouseWheelScrollFactoron theGraphCanvaswidget, which can be used to control the amount of zoom change. - A new request for available download formats has been added to the LoaderServlet. An example for its usage can be found in the Graph Editor.
-
For the highlight rectangle for a node, the additional width and height
is now constant and does no longer depend on the size of the node
and the zoom level. There is a new field
highlightNodeSurroundPixelson theGraphCanvaswidget, which can be used to control the additional width and height. -
The client API documentation has been completed. It is available in the
docs/client/apidirectory of the deployed yFiles AJAX web application and there is a link to it from the Developer's Guide.
Fixed Bugs
- Fixed a bug which prevented proper deactivation of the rubberband. This bug showed up, when you canceled a zoom area operation in the Graph Viewer demo by deselecting the zoom area button. The rubberband showed up on the next mouse drag.
Incompatible API Changes
-
The protected method
LoaderServlet#getFileForGraphName(String)has been removed, since loading graphs from files might not be possible for some servlet containers and/or configurations. A new methodLoaderServlet#getGraphResourceStream(String)has been introduced, which can now be used to customize the selection of graph resources in derived servlets instead of the removed method. It returns an input stream instead of a file. The default implementation usesServletContext#getResourceAsStream(String). -
The protected method
LoaderServlet#loadableGraphs(HttpServletResponse)still has the same signature, but does no longer return a list of all files in the subdirectoryresources/graphs/of the web application. Instead it returns the contents of the resourceLoaderServlet#LOADABLE_GRAPHS_LIST. This way the method can also work in an environment where all resources are fetched via the servlet container.
yFiles AJAX 1.0.1 - Changes Since 1.0
Fixed Bugs
- LoaderServlet: URL and Description of downloaded graphs were not written.
- LoaderServlet: An exception occured, if the "bmp" format was not available.
- SVG: a new version of ySVG ships with yFiles AJAX. It contains a fix for a rare bug leading to an infinite loop while painting SVG nodes on the yFiles AJAX server.
- HitInfo: The end points of the path for an edge were the source and target ports of the edge instead the ends of the visible path of the edge (source and target intersection). This is relevant, if node events are disabled and edge events are enabled for a GraphCanvas.
- The web.xml template in the developers guide was missing in the binary distribution.
- InfoServlet: Labels transfered were not correctly escaped.
Improvements
- BaseServlet: Cached graphs can be removed from the cache. They could only be overwritten before.
- A newer version of GraphML is bundled with yFiles AJAX. Together with the new ySVG library mentioned above it is now possible to export a graph with SVG nodes from the yFiles AJAX editor demo as a GraphML file, which can be read by the current yEd graph editor without loosing the SVG data for the nodes.
- Graph Viewer Demo: Tooltips are now correctly displayed with Internet Explorer 7.
yFiles AJAX 1.0 - Changes Since 1.0 RC1
Improvements
-
The server side API has been improved to enable easier customization
(e.g.,
UpdateServlet#createNode(Graph2D, double, double, String)). - There is a new client side API documentation, which uses the dojo documentation system.
- A Web API documentation (accessible from the Developer's Guide) has been added.
- yFiles AJAX now also works with the yFiles View package. A new LayoutServlet has been extracted from the UpdateServlet. The LayoutServlet and the TreeCollapser demo servlet only work with yFiles Complete, the UpdateServlet and all other servlets only need yFiles View.
- The generic options for the layouts performed by the LayoutServlet have been improved.
- There is an Ant target for extracting the files needed for the tutorials from the binary distribution.
General
- Two files have been removed from the included dojo version 0.4.2 according to the security advisory from the dojo website.
Incompatible API Changes
The methods
-
BaseServlet#doGet(HttpServletRequest, HttpServletResponse) -
BaseServlet#doPost(HttpServletRequest, HttpServletResponse)and -
BaseServlet#init()
are now final. If you have a custom servlet, which inherits
from BaseServlet, override
-
BaseServlet#handleGetRequest(HttpServletRequest, HttpServletResponse), -
BaseServlet#handlePostRequest(HttpServletRequest, HttpServletResponse)and -
BaseServlet#initialize()
respectively, instead of the final methods.
yFiles AJAX 1.0 RC1 - Changes Since 1.0 Beta
Fixed Bugs
- fixed occasional display of duplicate node labels
- removed the cause for most of the "Graphics2D from BufferedImage lacks BUFFERED_IMAGE hint" server log entries which appeared while rendering SVG nodes, a few may still appear for graph downloads
- fixed memory leak on the server side
Improvements
- improved LoaderServlet scalability
- export graphs using other formats (e.g. PDF or PNG)
General
- ported to dojo 0.4.2 (the previous version was based on dojo 0.4.1)
- ported to yFiles 2.5 (the previous version was based on yFiles 2.4.0.3)
- new license mechanism











