ProductsServicesDownloadsNewsCompanyContact

yFiles FLEX Client Layout Extension Versionsinformationen

Version 1.2.0.1 der yFiles FLEX Client Layout Extension ist das aktuelle Release.

Technische Voraussetzungen

  • Die yFiles FLEX Client Layout Extension benötigt yFiles FLEX 1.6-er Versionsserie. Sie kann nicht ohne die yFiles FLEX Bibliothek kompiliert oder benutzt werden.
  • Client Anwendungen, die die yFiles FLEX Client Layout Extension benutzen benötigen Adobe® Flash® Player Version 10.
  • AIR Desktop Anwendungen, die die yFiles FLEX Client Layout Extension benutzen benötigen Adobe Integrated Runtime (AIR) Version 1.5.
  • Zum Kompilieren von Client Anwendungen und AIR Desktop Anwendungen, die die yFiles FLEX Client Layout Extension benutzen, wird das Flex 3.2 SDK oder höher benötigt.

yFiles FLEX Client Layout Extension 1.2.0.1 - Änderungen zu Version 1.2 (englisch)

Bugfixes

  • Fixed a bug which could break routing with the com.yworks.yfiles.layout.router.BusRouter.

yFiles FLEX Client Layout Extension 1.2 - Änderungen zu Version 1.1 (englisch)

General

  • Minimum required yFiles FLEX version is now 1.6.

Major Features Added

Automatic Layout

  • New support for rotated labels (e.g. using the com.yworks.graph.model.RotatedSliderEdgeLabelModel or the com.yworks.graph.model.RotatedSideSliderEdgeLabelModel introduced in yFiles FLEX 1.6) in the generic labeling algorithms.
  • com.yworks.yfiles.layout.partial.PartialLayouter: A new layout algorithm for partial layouts. This layout algorithm changes the coordinates for a given set of graph elements (called partial elements). The location or size of the remaining elements (called fixed elements) is not allowed to change. The layout algorithm aims to place the partial elements such that the resulting drawing (including the fixed elements) has a good quality with respect to common graph drawing aesthetics.
  • com.yworks.yfiles.layout.router.BusRouter: A new orthogonal bus-style edge routing algorithm. This algorithm combines the large number of edges of complete subgraphs in a concise, tree-like structure that consists only of vertical and horizontal line segments. The positions of the nodes in a graph are not altered by this algorithm.
  • com.yworks.yfiles.layout.router.OrthogonalEdgeRouter: Added support for monotonic path restrictions. Such restrictions specify that edges should be routed monotonically in vertical and/or horizontal direction. The restrictions can be set with property monotonicPathRestriction.
  • com.yworks.yfiles.layout.hierarchic.IncrementalHierarchicLayouter: Added DataProvider key CRITICAL_EDGE_DPKEY that allows to specify a priority value for edges that are part of critical paths. The layouter tries to vertically align each node pair that is connected by such a "critical" edge (an edge that has a non-zero, positive priority value). Conflicts between different critical edges are resolved in favor of the higher priority.
  • com.yworks.yfiles.layout.hierarchic.incremental.SimplexNodePlacer: Added option straightenEdges which allows to specify whether or not a postprocessing step should be applied that tries to remove some bends. Enabling this option may violate some minimum distances specified by the user.
  • com.yworks.yfiles.layout.router.OrthogonalEdgeRouter: Added support for PortCandidateSets that allow to specify the available port candidates at a node.

Minor Features Added

Automatic Layout

  • New layout stage class com.yworks.yfiles.layout.router.PartitionGridRouterStage enables com.yworks.yfiles.layout.router.OrthogonalEdgeRouter to properly route edges within a partition grid.
  • com.yworks.yfiles.layout.grouping.RecursiveGroupLayouter: Added DataProvider key GROUP_NODE_LAYOUTER_DPKEY that allows an easier way to specify the layout algorithm used for recursive group nodes. Furthermore, it allows to specify non-recursive group nodes, i.e., group nodes whose contents are laid out using the Layouter instance specified by the nearest predecessor of the group node (with respect to the grouping hierarchy) which is associated with a layouter.
  • com.yworks.yfiles.layout.tree.TreeLayouter: Added new support for child placement policies that can be used to achieve more compact tree layouts: property childPlacementPolicy.
  • com.yworks.yfiles.layout.tree.TreeLayouter: Added new global layering option that ensures that large nodes never span more than their layer: property enforceGlobalLayering.
  • com.yworks.yfiles.layout.router.OrthogonalEdgeRouter: Added support for considering node labels, property considerNodeLabels.
  • com.yworks.yfiles.layout.circular.CircularLayouter: Added DataProvider key CIRCLE_ID_HOLDER_DPKEY that allows to obtain a mapping between nodes and the corresponding circle IDs.
  • com.yworks.yfiles.layout.router.OrthogonalEdgeRouter: Added new routing style STYLE_BALANCED which is based on the existing STYLE_PREFERMIDDLE but draws segments between bends of the same direction (U-style turns) the short way.

Graph Model

  • Added the concept of label candidate descriptors which provide additional properties for label candidates and are used by some automatic labeling algorithms.

Improvements

  • New utility class com.yworks.graph.model.LayoutCompat added that facilitates layout specific tasks like creating layer or sequence constraints.
  • Utility methods flashOrientedRectangleToYOrientedRectangle() and yOrientedRectangleToFlashOrientedRectangle() have been added to com.yworks.geom.util.GeomConvert.
  • Class com.yworks.graph.model.LayoutGraphAdapter now automatically provides the node and edge id provider registered on the original IGraph with the keys com.yworks.graph.model.DefaultGraph.MAPPER_KEY_NODE_2_ID and com.yworks.graph.model.DefaultGraph.MAPPER_KEY_NODE_2_ID as DataProvider with the keys com.yworks.yfiles.layout.LayouterKeys.NODE_ID_DPKEY and com.yworks.yfiles.layout.LayouterKeys.EDGE_ID_DPKEY. This allows to use the default ids when configuring layouters, e.g. using layer or sequence constraints.
  • The new utility class com.yworks.graph.model.NodeHierarchy allows comfortable access to and manipulation from the graph hierarchy of a com.yworks.yfiles.layout.LayoutGraph, e.g. when using a custom com.yworks.yfiles.layout.LayoutStage.
  • The methods getInt, getDouble and getBool of com.yworks.graph.model.DataProviderAdapter are now more tolerant with the mapped values and convert the looked up value to the corresponding type instead of simply casting them to the type. This way e.g. getInt for a mapped String value "2" will return 2 instead of 0.
  • The new class com.yworks.graph.model.ConstantMapper is a simple com.yworks.support.IMapper implementation that provides a single value for all keys.
  • In com.yworks.yfiles.layout.router.BusRepresentations the methods to transform from and to hub representation can now copy data which is attached to an original edge using specific data provider keys to the corresponding edge in the transformed graph.

Demos

  • The default font family for most of the demos has been changed to Verdana.
  • The new BusinessProcessDiagramDemo showcases how to customize diverse editing features to create a BPMN editor that is based on an according business model. The pools and swim lanes can be laid out using the com.yworks.yfiles.layout.hierarchic.IncrementalHierarchicLayouter in combination with a com.yworks.yfiles.layout.hierarchic.incremental.PartitionGrid.
  • The new EdgeLabelingDemo shows how to configure different edge label models as well as how to apply the generic edge labeling algorithm.
  • New LayerConstraintsDemo and new SequenceConstraintsDemo show how to apply layer constraints and sequence constraints to the com.yworks.yfiles.layout.hierarchic.IncrementalHierarchicLayouter.
  • The new LayoutModuleDemo allows to quickly test the different settings for the most important layout algorithms.
  • The new PortCandidateDemo shows how to use port candidates to restrict the positions of the ports (connection points). The new LogicGateDemo demonstrates the use of port candidates to keep the locations of the current ports.
  • The new SimpleIncrementalHierarchicLayouterDemo demonstrates how to incrementally layout parts of a graph using incremental hints.
  • The new SwimlaneDemo shows how to configure and visualize swim lanes.
  • The new PartialLayoutDemo shows how to use the com.yworks.yfiles.layout.PartitionLayouter to embed new graph elements into an existing layout. Different scenarios for hierarchic, orthogonal, organic and circular use cases demonstrate suitable settings for these layout styles.
  • The new MixedLayoutDemo shows how to use the recursive group layouter to apply different layouts to the contents of group nodes.
  • The new TemplateStyleDemo shows how to use the template styles with so-called "user tags" in order to create custom data visualizations. In addition, the demo shows how the custom data objects can be serialized with the GraphML I/O framework.
  • The OrgChart demo now uses a bigger graph and the local view mode on startup.
  • The new NavigationDemo shows how to display the neighborhood of a selected node in a complex graph.
  • The new GenericTreeLayouterDemo shows the different NodePlacer implementations for the com.yworks.yfiles.layout.tree.GenericTreeLayouter. A NodePlacer can be assigned to a node and determines how the node and its sub trees shall be arranged by the layouter.
  • The demo.components.IconButton can now be used with scalable icons like SVG.

Bugfixes

  • Fixed a bug in com.yworks.graph.anim.LayoutMorpherWrapper which caused ports to change their location model if more than one edge connected to them.
  • com.yworks.yfiles.layout.ComponentLayouter: Fixed bug that caused a wrong component assignment if customized component IDs are used.
  • Fixed a bug in com.yworks.yfiles.layout.hierarchic.IncrementalHierarchicLayouter that caused unnecessary crossings when using node grouping.
  • Fixed a bug in com.yworks.yfiles.layout.hierarchic.IncrementalHierarchicLayouter that sometimes caused an assignment of infinite coordinates to group nodes as well as to points of edges incident to group nodes.
  • Fixed a bug in com.yworks.yfiles.algo.NetworkFlows that caused wrong calculation of the cut set returned by method calcMaxFlowMinCut().
  • Added missing parent node information when copying grouped graphs with com.yworks.yfiles.layout.LayoutGraphCopyFactory.
  • Fixed a NullPointerException in com.yworks.yfiles.layout.planar.DrawingEmbedder caused by nodes having the same center.