ProductsServicesDownloadsNewsCompanyContact

yFiles Versionsinformationen

Version 2.5 von yFiles ist das aktuelle Major Release. Es deckt eine Vielzahl neuer Anwendungsgebiete und Algorithmen ab, und ist fast vollständig API-kompatibel zur 2.4-er Versionsserie.
Die aktuelle Versionsnummer ist 2.5.0.4.

Technische Voraussetzungen

  • Sun Microsystems J2SDK 1.4 oder höher zur Software Entwicklung mit yFiles.
  • Sun Microsystems J2RE 1.4 oder höher, um yFiles Programme auszuführen.
  • Um die Dokumentation anzuschauen, wird Microsoft Internet Explorer 6.0 (oder höher) oder Mozilla Firefox 1.5 (oder höher) benötigt.
  • Ein Betriebssystem, das Java 2 unterstützt.

yFiles 2.5 - Änderungen zu Version 2.4.0.3 (englisch)

Major Features Added

Line-wrapped layout Magnifying glass Incremental grouping Label configurations
Line-wrapped layout Magnifying glass Incremental grouping Label configurations

Incremental Hierarchical Layout Enhanced

Hierarchical Layout Enhanced

New Label Customization Support

  • Class YLabel now supports user-defined configurations for node and edge labels. Configurations provide fine-grained control over all aspects of label look and feel, and simplify the implementation of custom painting behavior for labels.
    Predefined configurations provide automatic line-wrapping according to a specified maximum width and/or height, including automatic cropping of the text's visual representation using an ellipsis character ("...") if necessary.
    [To the corresponding section in the yFiles Developer's Guide...]

Full Viewer/Editor Support for Orthogonal Edge Paths

  • Class EditMode and its associated child modes provide advanced support for edges having orthogonal paths.
    Orthogonal edge paths in a drawing are consistently maintained during all kinds of user interaction. This includes in particular edge creation, moving edge segments, creating new bends/edge segments, and moving edge ports. Furthermore, resizing nodes and moving nodes/bends have also been modified to take orthogonal edge paths into account.

    CreateEdgeMode has been improved to support the creation of orthogonal edges. MovePortMode, HotSpotMode, MoveSelectionMode, and the new OrthogonalMoveBendsMode have been improved to treat orthogonally routed edges specially so that they will always stay orthogonally routed during user interactions.

    [To the corresponding section in the yFiles Developer's Guide...]

New Magnifying Glass Tool

New Compact Orthogonal Layout Algorithm

  • New orthogonal layout class CompactOrthogonalLayouter uses a divide-and-conquer approach to provide compact orthogonal layouts that fit into a specified aspect ratio.
    CompactOrthogonalLayouter is an extension of new layout stage class PartitionLayouter which offers general support for a four-phase layout process where node partitions are found according to a customizable scheme, then a layout is calculated for each partition, afterwards the partitions are arranged in a compact manner, and finally their inter-connecting edges are routed.

    New layout module class CompactOrthogonalLayoutModule demonstrates how to set up compact orthogonal layout.

    [To the corresponding section in the yFiles Developer's Guide...]

New Line-Wrapping Layout Algorithm

Orthogonal Edge Router Enhanced

New Orthogonal Edge Routing Algorithm

Line-wrapped layout Magnifying glass Incremental grouping Label configurations
Line-wrapped layout Magnifying glass Incremental grouping Label configurations

Minor Features Added

Automatic Layout

  • Class ComponentLayouter now supports arranging components from sketch and introduces a new data provider look-up key to allow external declaration of components via a data provider.
  • New layout stage class PortConstraintEnforcementStage can be used to enforce that a layout algorithm will not change the relative coordinates of ports that are associated with a strong port constraint.
  • Class DefaultLayoutGraph now allows to specify multiple labels per node.
  • SmartOrganicLayouter optionally uses a smarter component layouting technique if a subset of nodes should be arranged only.
  • ShuffleLayouter introduces a new data provider look-up key to enable specification of nodes that should be pinned to their locations during shuffling.
  • Improved handling of port constraints with bad orthogonal edges in OrthogonalEdgeRouter.

Input and Output

  • Class Graph2DPrinter optionally adds a footer drawable below a printed graph.
  • Improved GML parsing and encoding of numbers and unicode entities in GMLIOHandler.

Viewer/Editor Interaction

  • New class HierarchyTreeTransferHandler adds drag-and-drop functionality to HierarchyJTree which allows changing the graph hierarchy using simple mouse drag gestures.
  • Graph2DViewActions adds a 'Select All' action that is bound to Ctrl-A, resp. Command-A (on Mac OS X). Also, usage of this class has been simplified.
  • Graph2DView introduces new client property "UnitIncrementPixels" which allows to specify the unit increment of the scroll bars in view coordinates.

Realizers and Rendering

  • Class DefaultGraph2DRenderer provides new methods that allow for partitioning the rendering order into several layers. Sloppy painting now also supports the various painting orders.
  • Graph2DView features new client properties and new method paintSelectionBox that enable extensive customization of selection box look. The client properties include selection box stroke, color, fill color, and shape.
  • YLabel enables programmatically specifying a label's size along with an option to automatically adjust the size of a (node) label to the size of the node it belongs to.
  • Graph2DUndoManager allows to control whether the selection state of realizers should be adjusted via method setSelectionStateAdjusting.
  • New view mode class OrthogonalMoveBendsMode that can be used to conveniently edit orthogonally routed edges. It supports moving and creating new bends/edge segments in such a way that an edge's path is always orthogonal.
  • Additional getter methods in ViewMode allow to determine the parent and child ViewModes.
  • CreateEdgeMode optionally cancels accidental edge creation early on. See method setEarlyEdgeCancelingEnabled.
  • Class HierarchyTreeSelectionModel optionally disallows mixed selections of nodes and edges. See method setMixedSelectionAllowed.
  • Graph2D uses automatic dirty flagging for edges that were changed using one of the changeEdge and reverseEdge methods.
  • HitInfo adds new convenient constructors for hit-testing with focus on only a specified type of graph elements.

Graph Structure Functionality

  • New utility class GraphCopier makes it easy to copy a graph's contents to another graph or create a copy of a graph.
  • YList provides new method getCell to retrieve a list cell by index.

Language Support

  • New utility class Generics provides support for Java 5 language features enabling convenient iteration over the graph structure using the enhanced for loop construct.

Demos Added

  • IncrementalHierarchicGroupDemo shows how IncrementalHierarchicLayouter can be used to fully or incrementally layout hierarchically organized graphs. The demo supports automatic re-layout after expanding folder nodes and collapsing group nodes.
  • MagnifierViewModeDemo features the magnifying glass "tool" which enables local zooming in a Graph2DView.
  • EdgeConnectorDemo demonstrates edge-to-edge connections (i.e., edges between edges) and connections between nodes and edges in the view.
  • DendrogramLayouterDemo demonstrates dendrogram-like tree layout.
  • YLabelConfigurationDemo shows how to customize the rendering of labels.
  • OrthogonalEdgeViewModeDemo demonstrates the ability of EditMode and its minor view modes to deal with orthogonally routed edges.

Incompatible API Changes

  • YLabel: removed method setSize(double, double). Calling this method had not the desired effect and therefore made no sense. setContentSize has been introduced as a replacement that can now be used to specify the size of a label's content.
  • NodeLabel: static field AUTOSIZE_CONTENT has been moved to superclass YLabel
  • Graph: calls to disposeNodeMap or disposeEdgeMap will now throw IllegalArgumentException if the given map had not been created with this specific instance. Dispose your maps on the correct Graph to avoid those exceptions.
  • Graph2DView: corrected method name getVerticalScrollBarPolicy to setVerticalScrollBarPolicy
  • Removed deprecated listeners field of class Graph and switched to a better performing internal implementation.
  • Removed deprecated API in YLabel in favor of setBackgroundColor.
  • Graph2DViewActions: now by default includes a new 'Select All' action that is bound to Ctrl-A, resp. Command-A (on Mac OS X)

Bugfixes