注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

.NET_JAVA_ActiveX仓库

联系QQ: 578867473 , 1420502900

 
 
 

日志

 
 

yFiles WPF 2.4 全球著名流程图控件  

2013-07-18 11:57:16|  分类: 流程圖 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

yFiles WPF Change Log:

Automatic Layout

  • Class yWorks.yFiles.Layout.Router.Polyline.EdgeRouter is a new edge routing algorithm that creates polyline edge routes. The segments of an edge are either orthogonal or octilinear, that means, the slope of each segment is a multiple of 90 degrees or a multiple of 45 degrees, respectively. 

  • yWorks.yFiles.Layout.Router.Polyline.PolylineLayoutStage: A new layout stage that adds polyline segments to the orthogonal edge paths of a graph.
  • IncrementalHierarchicLayouter: Added support for octilinear edge routing, i.e., a routing style where the slope of each edge segment is a multiple of 45 degrees. Different edge routing styles can be specified using classyWorks.yFiles.Layout.Hierarchic.Incremental.RoutingStyle.
  • yWorks.yFiles.Layout.PreferredPlacementDescriptor: A new descriptor that allows to specify advanced preferred placement information for edge labels. 

Minor Features Added

  • ClickInputModeGraphEditorInputModeGraphViewerInputMode: New events forLeftClickedRightClickedLeftDoubleClicked and RightDoubleClicked. Also,ClickInputMode has been improved to handle multiple mouse buttons concurrently.
  • MainInputMode and GraphViewerInputMode: Added new bulk selection eventsMultiSelectionStarted and MultiSelectionFinished.
  • LayoutExecutor can now safely handle concurrent layout requests. By default an already running layout will be short-cut and the next layout request will be processed. PropertySequentialExecution can be set to false to revert to the old (unsafe) behavior. The new Stopmethod and the IsRunning property can also be used in this context.
  • NodeControlNodeStyle and LabelControlLabelStyle now have the ability to automatically trigger a resize of their corresponding graph items whenever the desired size of the control contents change, e.g. in response to a dynamic UI.
  • New classes NodeStyleDecorationInstallerEdgeStyleDecorationInstaller, andLabelStyleDecorationInstaller allow the use of a node, edge, or label style to render the selection, highlight, or focus indicator of nodes, edges, and labels, respectively.

Automatic Layout

  • BalloonLayouter: New option to take into account the bounds of node labels when calculating a layout.
  • LabelLayoutTranslator: Added option AutoFlippingEnabled to specify whether or not edge labels should be automatically flipped if they would be upside-down.
  • AbstractLabelingAlgorithm: Added option AutoFlippingEnabled to specify whether or not edge labels associated with a "free" label model should be automatically flipped if they would be upside-down.

Improvements

  • Optionally, LayoutExecutor uses WaitInputMode while waiting during the calculation of a layout.
  • Added callback method SetEdgePortLocation to LayoutGraphAdapter that is called while assigning a new location to a port that is owned by an edge.
  • Changing the event recognizers of an IInputMode after the mode has been installed has now an effect in all input modes.
  • Improved performance of table rendering and interaction.
  • Refactored MoveLabelInputMode to make customizations easier. The moved label is now accessible and various new protected methods provide fine-grained control of the behavior.
  • MoveLabelInputMode now takes the position handler from the lookup of a label if one is present, and creates a new one only if none was found.
  • Custom context menus declared on controls that are rendered within the CanvasControl now play well with ContextMenuInputMode. The new SuppressChildMenus property can be used to optionally prevent those menus from appearing if the mode is not enabled.
  • IClipboardHelper: The predicate functions ShouldCut and ShouldCopy were not used for the default cut and copy operations provided by GraphEditorInputMode and GraphControl.
  • Child input modes of GraphViewerInputMode can now be changed similar toGraphEditorInputMode.
  • Added explicit extension method IGraph.CreateNode(PointD,INodeStyle).
  • Arrow: Setting the various properties now only recreates the arrow template if something actually changed.
  • ContextConfigurator.Setup: The IRenderContext returned by this method now has the correct Clip applied.

Automatic Layout

  • OrthogonalGroupLayouter supports labels at edges incident to group nodes.
  • IncrementalHierarchicLayouter now treats edge groups at empty group nodes like those on regular nodes instead of ignoring them like it is done for non-empty group nodes.
  • WeightedLayerer: Improved quality by reducing the number of reversed edges ifWeightedCycleRemoval is enabled.
  • PartialLayouter now considers edge ports when calculating the barycenter of a component (if its property PositioningStrategy is set to SubgraphPositioningStrategy.Barycenter).
  • PartialLayouter: Reduced cases where the result contains overlapping node elements.
  • PartialLayouter calculates improved routing if option RouteInterEdgesImmediately is enabled and generally for edges between fixed elements.
  • SmartOrganicLayouter: Fixed nodes are no longer moved by a fixed offset if scope is set toScope.Subset.
  • GenericTreeLayouter creates more compact layouts, especially for trees with edge labels.
  • Added the ability to DefaultNodePlacer to create polyline-style edge routings with sloped edge segments.
  • Added the ability to DefaultPortAssignment to distribute edges at the border of the nodes.
  • RecursiveGroupLayouter: Improved performance for graphs with a mainly flat structure.
  • GraphLayoutLineWrapper: Improved edge routing for overlapping edges, for example grouped edges.
  • Added auto-flipping to RotatedDiscreteEdgeLabelLayoutModel andRotatedSliderEdgeLabelLayoutModel. Labels that are placed upside down by a layouter will be flipped.
  • Improved the performance of PortCandidate which potentially improves the performance of theIncrementalHierarchicLayouter with rotated graphs with PortCandidates.
  • Optimized number of generated PortCandidates in RecursiveGroupLayouter for the core layouter.
  • GraphConnectivity: Improved method MakeBiconnected to work with graphs with self-loops (i.e. edges whose source and target nodes are the same).

Demos

  • Added new demo Demo.yFiles.Graph.Input.HandleProvider that shows how to add resize handles to graph elements that don't provide them out of the box.
  • Added new demo Demo.yFiles.Graph.Input.SingleSelection that shows how to configureGraphEditorInputMode to enable single selection mode for interaction.
  • Added new demo Demo.yFiles.Graph.StyleDecorators and a corresponding step in the Custom Style Tutorial that shows how to correctly implement the decorator pattern for node styles.
  • Added new demo Demo.yFiles.Graph.SelectionStyling that shows how to use node, edge and label styles for the painting of the selection decorator.
  • Added new demo Demo.yFiles.Layout.PreferredLabelPlacement that shows how to use the new PreferredPlacementDescriptor layout feature.
  • The layout modules now use the new preferred placement descriptor feature for label setup. Additionally, the previous label setup had no effect at all due to an erroneous configuration.
  • Prevent negative edge weights in Demo.yFiles.Algorithms.ShortestPath since cycles with negative weights are not allowed by the algorithm.

Bugfixes

  • If NavigationInputMode was used as child of GraphViewerInputMode orGraphEditorInputMode, it didn't respect the selectable and focusable items of its parent input mode.
  • In CreateEdgeInputMode and MoveInputMode, snapping may not have been re-enabled after disabling it temporarily.
  • Prevent a very rare bug caused by the preferred size calculation of labels of dummy elements of grouped graphs when LabelControlLabelStyle was used.
  • IconLabelStyle: Fixed exception when the icon size was not set or was empty.
  • GraphClipboard.Cut: The filter predicate was evaluated twice, resulting in unexpected behavior if the predicate evaluation depended on state that could change by removing graph elements.
  • HorizontalScrollBarPolicy and VerticalScrollBarPolicy in CanvasControl could not be set to different values at the same time. The value of the latter was used effectively, always.
  • LabelControlLabelStyle incorrectly triggered an update of the preferred label size calculation in folded graph scenarios under certain conditions.
  • An error in CanvasPrintDocument prevented XPS printing to certain paper sizes.
  • In CreateEdgeInputMode, the compound undo unit is cancelled if the edge creation is implicitly cancelled. The old behavior can be restored by disablingCreateEdgeInputMode.CancelEditImplicitly.
  • MoveInputMode only considers hovers without modifiers as valid to prevent "cursor fight" withMoveViewportInputMode.

Automatic Layout

  • IncrementalHierarchicLayouter: Fixed incorrect handling of port candidates in layouts where rotation and a mirror was set.
  • IncrementalHierarchicLayouter: Fixed integer overflow when group compaction is activated while layouting extremely large, deeply nested graphs.
  • IncrementalHierarchicLayouter: Fixed port handling of edges with a single edge port candidate that is contained in a set of node port candidates.
  • Fixed bug with invalid array access in AspectRatioComponentLayerer.
  • Fixed bad edge routings in FamilyTreeLayouter when there are several marriages between generations.
  • IsolatedGroupComponentLayouter now considers labels in group bounds calculation if label awareness is enabled.
  • PartialLayouter: Fixed IndexOutOfRangeException that sometimes appears for large graphs.
  • GroupNodeRouterStage: Fixed possible exception that was caused by the missing removal of a temporarily added DataProvider.
  • OrthogonalLayouter and DirectedOrthogonalLayouter: Fixed bug that caused an ArgumentException if input graph contains overlapping parallel edges and from sketch mode is enabled (see property UseSketchDrawing).
  • OrthogonalEdgeRouter: Fixed exception that may appear when both options Rerouting andLocalCrossingMinimization are enabled.
  • RotatedSliderEdgeLabelLayoutModel and SliderEdgeLabelLayoutModel: Improved label placement at zero-length edge segments.
  • GraphTransformer: Fixed group nodes bounds after transforming a sub-graph only.
  • ParallelEdgeLayouter: Fixed NullReferenceException which may appear when source/target points of parallel edges are outside of the corresponding node.
  • SmartOrganicLayouter: Fixed problem that sometimes caused very long runtime for simple grouped graphs.
  • SmartOrganicLayouter: Fixed wrong calculation of group node sizes if optionConsiderNodeLabels is enabled.
  • YVector: Fixed method Rotate(double) to no longer return vertically mirrored results.

Changes in Default Behavior

  • IClipboardHelper: The predicate functions ShouldCut and ShouldCopy are now taken into account for the default cut and copy operations provided by GraphEditorInputMode andGraphControl.
  • ContextConfigurator.Setup: The IRenderContext returned by this method now has a finiteClip applied.
  • Concurrently executing layouts using LayoutExecutor will now result in the subsequent executions waiting for the previous execution to finish. Property SequentialExecution can be set to false to revert to the old (unsafe) behavior.
  • The ContextMenuInputMode's PopulateItemContextMenu event will not fire anymore for context menus that are declared in controls inside the CanvasControl, but only for the menu that is managed by the input mode.
  • If the PopulateContextMenuEventArgs' property ShowMenu is set to true, now even empty menus will be displayed.

Automatic Layout

  • PartialLayouter: Property EdgeRoutingStrategy now disables a previously set customized edge router.

Incompatible API Changes

Automatic Layout

  • IEdgeLabelLayout: Removed property PreferredPlacement and added propertyPreferredPlacementDescriptor.
  • PartialLayouter: Replaced method ConfigureOrthogonalEdgeRouter by methodConfigureEdgeRouter.
  • Classes yWorks.yFiles.Util.ISortedMap and yWorks.yFiles.Util.ISortedSet have been removed from the public API. These interface were never meant to be used by customers.
yFiles WPF 2.4 全球著名流程图控件 - 外星人 - .NET_JAVA_ActiveX仓库
  评论这张
 
阅读(958)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017