yFiles for Java 2.x Release Notes

yFiles for Java version 2.15 is the newest major release available in the yFiles for Java 2.x technology line. It contains many exciting new features compared to older versions and is almost completely API compatible with the 2.14 series.
(See also the entire yFiles for Java change log.)

Technical Requirements

  • Oracle J2SDK 1.4 or higher is needed for software development with yFiles.
  • Oracle J2RE 1.4 or higher is needed to execute programs using yFiles.
  • A browser to view the HTML documentation.

yFiles 2.15 - Changes Since 2.14

Hide Description
Open in yEd LiveDownload
yFiles for Java 2.15 Release Notes
New support for user-defined sub-components in hierarchic layouts
yFiles for Java 2.15 Release Notes
Large improvements of the Orthogonal layout algorithm
yFiles for Java 2.15 Release Notes
New support in the Orthogonal layout for detecting various substructures

Features Added


  • Added the new layout algorithm TabularLayouter that generates simple tabular arrangements of nodes. It allows to place nodes in rows and columns, such that each table cell contains at most one node. Among its features is, for example, a from-sketch mode, the possibility to exactly map nodes to specific cells or different vertical and horizontal alignments.
  • Added the new layout algorithm TreeMapLayouter that generates tree maps. Tree maps present hierarchical data using nested rectangles (nodes) where each rectangle (node) gets its size depending on a specific dimension of data associated to it. The new Tree Map demo shows a possible use case for the new layout style.
  • IncrementalHierarchicLayouter: Added feature that allows to define sub-components of the input graph such that each sub-component is arranged by a user-specified layout algorithm. This allows for hierarchical layouts where parts of the graph are arranged in a different fashion, e.g., to emphasize special sub-structures. The sub-components can be specified by a data provider registered with the input graph with key SUB_COMPONENT_ID_DPKEY.
  • OrthogonalLayouter and DirectedOrthogonalLayouter: added support for special layout styles of various substructures that are automatically detected in the input graph. Supported substructures are trees, chains and cycles - see the according properties setTreeStyle, setChainStyle and setCycleStyle. In addition to the style, the new feature offers more settings, like, for example, the desired tree layout orientation (see setTreeOrientation). The layout style NORMAL_TREE_STYLE is now deprecated as the new tree style feature allows more settings for the arrangement of tree-like graphs.
  • OrthogonalLayouter and DirectedOrthogonalLayouter: added support for parallel routing of parallel edges (multi-edges that share the same source and target node). They are routed as parallel as possible; if there are edge labels, the routes must differ somewhat. Previously, parallel edges were not handled explicitly and their routes were often very different, making the recognition of parallel structures difficult.
  • OrthogonalLayouter, DirectedOrthogonalLayouter and OrthogonalGroupLayouter: Added new property setMaximumDuration, which enables to control the preferred time limit of the layout algorithms.
  • OrthogonalLayouter: Added property setUniformPortAssignmentEnabled that allows to obtain results with a more uniform port assignment.
  • EdgeRouter now supports routing through user-specified intermediate points. All specified points will lie on the edge route in the given order. See new property setIntermediateRoutingPoints.
  • EdgeRouter: Edges that connect group nodes with their descendants can now directly connect from the inside to the group node border. Previously, an edge needed to always leave the group node before connecting to it. The feature can be enabled/disabled individually for each edge using the new property setDirectGroupContentEdgeRoutingEnabled.
  • GenericTreeLayouter: Added node placer CompactNodePlacer that produces more compact tree layouts. It uses a dynamic optimization approach that chooses a placement strategy of the children such that the overall result is compact with respect to a specified aspect ratio, see property setPreferredAspectRatio.
  • Added convenience layout stage TemporaryGroupNodeInsertionStage that automatically generates a (non-nested) grouping structure from a given mapping of nodes to a component Id. This temporary grouping is meant for use during the run of the core layout algorithm of the stage. It allows, for example, easy use of RecursiveGroupLayouter without the need for a real grouping structure when the requirement is that different sub-graphs need to be arranged with different layout algorithms.


  • ShortestPaths: Added a-star (A*) algorithm for finding the shortest path between two nodes in a directed or undirected, arbitrary graph.




  • ImageOptionItem: Added new attributes ATTRIBUTE_FILE_CHOOSER and ATTRIBUTE_SHOW_URL. The former allows using pre-configured file chooser instances when browsing for image files. The latter may be used to control whether or not the option editor displays the file URL in addition to the corresponding image.




  • DomXmlWriter: Fixed JDK 9 only additional, undesired whitespace when writing Text or CData nodes.
  • TGFIOHandler: Fixed erroneous truncation of TGF files when exporting label texts with characters that required multiple bytes in the platform default encoding.


  • SmartEdgeLabelModel: Fixed NullPointerException that occurred when interactively moving labels while MoveLabelMode's isSnappingEnabled property was set to false.
  • TableEditorFactory: Added missing event handling for editingCanceled and editingStopped events when editing table cell values of a table editor in external editing dialogs. Previously open external editing dialogs ignored these events. Now open external editing dialogs will be closed when notified of these events from their associated table cell editor.
    This fix constitutes a change in behavior for external editing dialogs.
  • ColorOptionItem: Fixed transparency support in the item's color chooser for Java 9 and newer.
  • HierarchyTreeModel: Fixed erroneous selection changes that could occur when processing hierarchy events that were bracketed with PRE_EVENT and POST_EVENT.


  • Improved yFiles' DemoBrowser to run with Java 9, 10, and 11.
  • StateNodeRealizer: Fixed setting StateNodeRealizer's custom shape type.

Incompatible Changes

Behavior Changes

API Changes

  • Removed class y.option.IconPopupEditor. This class could never be safely used, because its constructor requires types that are not part of yFiles for Java's public API.