yFiles 2.6.1 Release Notes
The newest available bugfix and maintenance release of yFiles is version 2.6.1.
Technical Requirements
- Sun Microsystems J2SDK 1.4 or higher is needed for software development with yFiles.
- Sun Microsystems J2RE 1.4 or higher is needed to execute programs using yFiles.
- In order to browse the documentation use Microsoft Internet Explorer 6.0 or higher or Mozilla Firefox 2.0 or higher.
- You need an operating system that supports Java 2.
yFiles 2.6.1 - Changes Since 2.6.0.1
The new OrgChartDemo (see below) is an extensive demo application that presents
an organization chart in a visually rich way.
This demo is executable using Java Web Start.
Minor Viewer and Editor Features Added
- Scroller: added several methods that will allow to provide your own Scroller Drawable.
- NavigationMode: added method getScroller that allows to access and configure the Scroller instance used by this class.
- NavigationComponent: minimum and maximum zoom level can now be set for the zoom slider and buttons. A zoom factor for the zoom buttons can now be defined. Added possibility to customize tick timer for zoom buttons via client properties. See CLIENT_PROPERTY_KEY_ZOOM_TIMER_DELAY, CLIENT_PROPERTY_KEY_ZOOM_TIMER_INITIAL_DELAY. Added property to show labels on zoom slider setShowLabelsOnSlider. Improved component layout.
- Graph2DViewMouseWheelZoomListener: now supports an animated zoom indicator that is displayed at the mouse position whenever the zoom level gets changed by this class. See new methods setZoomIndicatorShowing, isZoomIndicatorShowing, paintZoomIndicator, setZoomIndicatorColor, and getZoomIndicatorColor.
- Added ViewCoordDrawableAdapter. This Drawable serves as an adapter for another Drawable that uses the view coordinate space to render itself.
-
Graph2DView: added methods that allow to configure the RenderingHints to be used to render the view. For more exact
font size calculation, RenderingHint
java.awt.RenderingHints.KEY_FRACTIONALMETRICScan be used, for example. See setRenderingHints and getRenderingHints. -
Graph2DPrinter: added methods that allow to configure the RenderingHints to be used when printing the page. Also, for more exact
font size calculation, RenderingHint
java.awt.RenderingHints.KEY_FRACTIONALMETRICSis now turned on by default. See setRenderingHints and getRenderingHints. - ViewAnimationFactory: added new factory method focusView.
- ViewAnimationFactory: added new factory methods color and color.
- Graph2DPrinter: added methods to control whether or not the contents should be printed centered on the page. See setCenterContentsOnPageEnabled and isCenterContentsOnPageEnabled.
- YLabel: added class methods isFractionMetricsForSizeCalculationEnabled and setFractionMetricsForSizeCalculationEnabled to configure whether or not fractional font metrics shall be used to calculate the size of the label text.
- PopupMode: added new protected methods to ease customization. Also, the methods setSingleNodeSelectionModeEnabled and isSingleNodeSelectionModeEnabled have been added to make it possible to change the default behavior for single node selections.
- EditMode: added new setting allowMovingWithPopup. If it is set to true (default false) the ViewPort can be moved by right dragging even if there is also a popup menu.
Minor Layout and Analysis Features Added
- GraphHider: added methods that unhide specific nodes and edges: unhideNode, unhideNodes, unhideEdge, unhideEdges.
- Added NormalizingGraphElementOrderStage. This layout stage can be used to normalize the order of the elements within a graph.
- Added EdgeReversalStage. This layout stage can be used to temporarily reverse all or some of a graph's edges for layout calculation.
- DefaultNodePlacer: added two new styles for the rootAlignment property (ALIGNMENT_TRAILING_ON_BUS and ALIGNMENT_LEADING_ON_BUS).
- GenericTreeLayouter: added support for a specific node grouping which can be disabled/enabled with method setGroupingSupported. By default, this feature is enabled.
- EdgeGroupConstraintModule: added static method createEdgeGroupsAutomatically
Demos
- Added demo AnimatedStructuralChangesDemo that shows how to highlight structural changes of a graph by means of animation and layout morphing.
- Added demo OrgChartDemo: a comprehensive organization chart demo that shows how to achieve visually rich information presentation.
- CollapsibleTreeDemo: added navigation view mode and improved visual appearance of tree nodes.
Bugfixes
- GroupNodePainter: will no longer overwrite label properties for custom labels. Thus GenericGroupNodeRealizers with custom labels using GroupNodePainter can now be registerd e.g. to HierarchyGraphFactory and will keep the label appearance.
- ShapeNodePainter: feature groupDepthFillColor was applied not only to group nodes but also to nodes that belonged to a group.
- SimplexNodePlacer: fixed wrong calculation of the width of the leftmost/rightmost swimlane.
- TreeLayouter: fixed strange edge routes appearing when setPortStyle was set to BORDER_CENTER_PORTS or BORDER_DISTRIBUTED_PORTS and the nodes had non-uniform size.
- TiledImageOutputHandler: depending on the chosen size and number of tiles the exported image could get clipped on the right and bottom border
- Graph2DView: inline label editor was not always visible when using Swing components as nodes
- EditMode: drag gesture over a node led to selecting the node even with MoveSelectionMode disabled.
- ConstraintLayerer: fixed possible NPE when the unconstrained layering would already contain same layer edges.
- GroupNodeRouterStage: fixed bug where edges that end at selected group nodes are not routed when ROUTE_EDGES_AT_SELECTED_NODES was set.
- getBendsToBeMoved: the returned collection of bends no longer contains each selected bend twice.
- EdgeGroupConstraintModule: fixed bug when using the same module instance for different graphs.
- CreateEdgeMode: creating an edge is now gracefully canceled, if the start node gets deleted.
- MovePortMode: improved logic to update HierarchyManager accordingly if the user relocated an interedge port.
- ImageNodeRealizer: fixed a memory leak in conjunction with using alpha images.
- ViewAnimationFactory: using APPLY_EFFECT when creating an element removal animation (explode, fadeOut, blurOut, retract, whirlOut) will now reset the visibility property of the element's realizer to its pre-animation state.
- AssistantPlacer: comparators for sorting the child nodes in a (sub)tree are now provided with non-assistant child nodes also.
- OrthogonalPatternEdgeRouter: fixed bug where self loops with weak port candidates at self side might result in edge endpoints outside the node's bounds when grid routing is enabled. This will implicitly also affect ChannelEdgeRouter when using the default settings.
Improvements
- OrganicEdgeRouter: added option setEdgeNodeOverlapAllowed. Setting this option to true often leads to better results if the createNodeEnlargementStage LayoutStage is not used (e.g. because the nodes are not allowed to move) and the distances between some nodes are small.
- TreeLayouter: more suitable handling of large edge labels and multiple edge labels assigned to one edge.
- ShapeNodeRealizer and ShapeNodePainter: anti-aliased painting of elliptical shapes will not get enforced while the rendering occurs while printing the graph.
- Graph2DView: improved rounding of world-coordinates to view coordinates reduces undesired quiver effects when moving the graph.
- Updated bundled yGuard bytecode obfuscator to the current 2.3 release.
- Graph2DView: inline label editor now always displays caret at insertion point during label editing.
- InteractiveOrganicLayouter: added method startLayout and stopAndWait. Adjusted corresponding demos.
- IncrementalHierarchicLayouter: sometimes, if both swimlanes and groups and layers have been defined by the user, the algorithm would place the group nodes into newly created layers in order to avoid group node overlaps, although this might not always be necessary. The algorithm has been improved to better detect overlaps.
-
GroupLayoutConfigurator: added method prepareGroupNodeBounds
which is now called by the
prepareAllmethod to make sure the bounds of the group nodes are in a valid state before the layout starts. If you need to specify custom group nodes sizes before the layout run, you should either disable the AutoBoundsFeature on that group node or override the new method with an empty body. - NavigationMode: the used cursors for the default and navigation state can now be defined by the user, see setDefaultCursor and setNavigationCursor.
- EditMode: method mouseDraggedLeft has been refactored into bendDragged, edgeDragged, hotSpotDragged, labelDragged, labelDragged, nodeDragged, paperDragged, and portDragged to ease customization of dragging behavior.
- NodeRealizer: calling repaint will now repaint all of the realizer's labels, too.
-
LayoutMorpher: adding nodes or edges to a
LayoutMorpher's graph in between creating theLayoutMorpherinstance and starting its animation no longer causes the animation to break withNullPointerExceptions. - FixedGroupLayoutStage: it is now possible to have this stage work on selected groups only.
- HierarchyManager: improved API documentation of convertToFolderNode and convertToGroupNode.
- ConstraintLayerer.ConstraintFactory: added method getMemento to to create the factory without an initial graph.
- SequenceConstraintFactory: added method getMemento to to create the factory without an initial graph.
yFiles 2.6.0.1 - Changes Since 2.6
Bugfixes
- HierarchyMoveSelectionMode: Fixed occasional NullPointerException while moving elements to new group nodes nested inside folder nodes.
- HierarchyMoveSelectionMode: Fixed bad move and resize behavior where selection of group nodes was not honored correctly if their contents were moved.
- OrthogonalEdgeRouter: Fixed bug where edges weren't routed orthogonally if rerouting was enabled ( setReroutingEnabled )
- Fixed bug where wrong minimum size is set when data provider MINIMUM_NODE_SIZE_DPKEY is missing.
- MISLabelingAlgorithm: Fixed calls to getProfit after labeling causing NullPointerException.
- AutoRotationSliderEdgeLabelModel: Fixed bug where NPE was thrown for edges that are totally overlapped by their source and target nodes and therefore have no visible region.
-
OrthogonalSegmentDistributionStage:
Replaced casts to
java.util.Listwithjava.util.Collectionto conform with API documentation for SOURCE_PCLIST_DPKEY and TARGET_PCLIST_DPKEY. - DefaultGraph2DTraversal: Fixed lastToFirst for graphs without an associated HierarchyManager and/or if considering the hierarchic structure of the graph is explicitly turned off. (This fixes also ViewMode's broken hit-testing for graphs without an associated HierarchyManager.)
- DefaultOrderRenderer: Fixed implementation of paint and paint.
-
Fixed NPE in EdgeRealizer when the selection stroke is set to
null. -
EditMode: setting
showEdgeTips to
falsewill now correctly reset any tooltips on the view.
Improvements
- InsetsGroupBoundsCalculator has been enhanced to optionally take node labels of child nodes into account when calculating the bounds of a given group node. See also isConsiderNodeLabelsEnabled and setConsiderNodeLabelsEnabled.
- AreaZoomMode: focusView takes isAnimatedZoomEnabled into account.
-
EdgeRealizer: Setting setSelectionColor
to
nulldisables selection painting of the edge. - Improved factory method createDrawable for edge realizers with non-default ports.









