/// <summary> /// Setup default values for various configuration parameters. /// </summary> public ClassicTreeLayoutConfig() { var layout = new ClassicTreeLayout(); RoutingStyleForNonTreeEdgesItem = EnumRoute.Orthogonal; EdgeBundlingStrengthItem = 0.95; ActOnSelectionOnlyItem = false; ClassicLayoutOrientationItem = LayoutOrientation.TopToBottom; MinimumNodeDistanceItem = (int)layout.MinimumNodeDistance; MinimumLayerDistanceItem = (int)layout.MinimumLayerDistance; PortStyleItem = PortStyle.NodeCenter; ConsiderNodeLabelsItem = false; OrthogonalEdgeRoutingItem = false; VerticalAlignmentItem = 0.5; LeafPlacementPolicyItem = LeafPlacement.SiblingsOnSameLayer; EnforceGlobalLayeringItem = false; BusAlignmentItem = 0.5; EdgeLabelingItem = EnumEdgeLabeling.None; LabelPlacementAlongEdgeItem = EnumLabelPlacementAlongEdge.Centered; LabelPlacementSideOfEdgeItem = EnumLabelPlacementSideOfEdge.OnEdge; LabelPlacementOrientationItem = EnumLabelPlacementOrientation.Horizontal; LabelPlacementDistanceItem = 10; }
private ClassicTreeLayout ConfigureClassicLayout() { var layout = new ClassicTreeLayout(); layout.MinimumNodeDistance = MinimumNodeDistanceItem; layout.MinimumLayerDistance = MinimumLayerDistanceItem; ((OrientationLayout)layout.OrientationLayout).Orientation = ClassicLayoutOrientationItem; if (OrthogonalEdgeRoutingItem) { layout.EdgeRoutingStyle = yWorks.Layout.Tree.EdgeRoutingStyle.Orthogonal; } else { layout.EdgeRoutingStyle = yWorks.Layout.Tree.EdgeRoutingStyle.Plain; } layout.LeafPlacement = LeafPlacementPolicyItem; layout.EnforceGlobalLayering = EnforceGlobalLayeringItem; layout.PortStyle = PortStyleItem; layout.VerticalAlignment = VerticalAlignmentItem; layout.BusAlignment = BusAlignmentItem; return(layout); }
/// <summary> /// Setup default values for various configuration parameters. /// </summary> public TreeLayoutConfig() { var layout = new ClassicTreeLayout(); var aspectRatioNodePlacer = new AspectRatioNodePlacer(); var defaultNodePlacer = new DefaultNodePlacer(); LayoutStyleItem = EnumStyle.Default; RoutingStyleForNonTreeEdgesItem = EnumRoute.Orthogonal; EdgeBundlingStrengthItem = 0.95; ActOnSelectionOnlyItem = false; DefaultLayoutOrientationItem = LayoutOrientation.TopToBottom; ClassicLayoutOrientationItem = LayoutOrientation.TopToBottom; MinimumNodeDistanceItem = (int)layout.MinimumNodeDistance; MinimumLayerDistanceItem = (int)layout.MinimumLayerDistance; PortStyleItem = PortStyle.NodeCenter; ConsiderNodeLabelsItem = false; OrthogonalEdgeRoutingItem = false; VerticalAlignmentItem = 0.5; ChildPlacementPolicyItem = LeafPlacement.SiblingsOnSameLayer; EnforceGlobalLayeringItem = false; NodePlacerItem = EnumNodePlacer.Default; SpacingItem = 20; RootAlignmentItem = EnumRootAlignment.Center; AllowMultiParentsItem = false; PortAssignmentItem = PortAssignmentMode.None; HvHorizontalSpaceItem = (int)defaultNodePlacer.HorizontalDistance; HvVerticalSpaceItem = (int)defaultNodePlacer.VerticalDistance; BusAlignmentItem = 0.5; ArHorizontalSpaceItem = (int)aspectRatioNodePlacer.HorizontalDistance; ArVerticalSpaceItem = (int)aspectRatioNodePlacer.VerticalDistance; NodePlacerAspectRatioItem = aspectRatioNodePlacer.AspectRatio; ArUseViewAspectRatioItem = true; CompactPreferredAspectRatioItem = aspectRatioNodePlacer.AspectRatio; EdgeLabelingItem = EnumEdgeLabeling.None; LabelPlacementAlongEdgeItem = EnumLabelPlacementAlongEdge.Centered; LabelPlacementSideOfEdgeItem = EnumLabelPlacementSideOfEdge.OnEdge; LabelPlacementOrientationItem = EnumLabelPlacementOrientation.Horizontal; LabelPlacementDistanceItem = 10; }
///<inheritdoc/> protected override void SetupHandler() { OptionGroup generalGroup = Handler.AddGroup(GENERAL); generalGroup.AddList(LAYOUT_STYLE, enumStyle, DIRECTED); IOptionItem allowNonTreeItem = generalGroup.AddBool(ALLOW_NON_TREE_EDGES, true); IOptionItem nonTreeStyleItem = generalGroup.AddList(ROUTING_STYLE_FOR_NON_TREE_EDGES, enumRoute, ROUTE_ORTHOGONAL); ConstraintManager cm = new ConstraintManager(Handler); cm.SetEnabledOnValueEquals(allowNonTreeItem, true, nonTreeStyleItem); generalGroup.AddBool(ACT_ON_SELECTION_ONLY, false); var bundlingStrength = generalGroup.AddDouble(EDGE_BUNDLING_STRENGTH, 0.99, 0, 1); cm.SetEnabledOnValueEquals(nonTreeStyleItem, ROUTE_BUNDLED, bundlingStrength); ClassicTreeLayout treeLayout = new ClassicTreeLayout(); OptionGroup directedGroup = Handler.AddGroup(DIRECTED); directedGroup.AddInt(MINIMAL_NODE_DISTANCE, (int)treeLayout.MinimumNodeDistance, 1, int.MaxValue); directedGroup.AddInt(MINIMAL_LAYER_DISTANCE, (int)treeLayout.MinimumLayerDistance, 10, int.MaxValue); directedGroup.AddList(ORIENTATION, enumOrient.Keys, TOP_TO_BOTTOM); directedGroup.AddList(PORT_STYLE, enumPortStyle.Keys, NODE_CENTER_PORTS); directedGroup.AddBool(INTEGRATED_NODE_LABELING, false); directedGroup.AddBool(INTEGRATED_EDGE_LABELING, false); IOptionItem edgeRoutingOption = directedGroup.AddBool(ORTHOGONAL_EDGE_ROUTING, false); IOptionItem busAlignmentOption = directedGroup.AddDouble(BUS_ALIGNMENT, 0.5, 0, 1); directedGroup.AddDouble(VERTICAL_ALIGNMENT, 0.5, 0, 1); var childPolicyItem = directedGroup.AddList(CHILD_PLACEMENT_POLICY, childPlacementPolicies.Keys, SIBLINGS_ON_SAME_LAYER); var globalLayeringItem = directedGroup.AddBool(ENFORCE_GLOBAL_LAYERING, false); cm.SetEnabledOnCondition(ConstraintManager.LogicalCondition.And(cm.CreateValueEqualsCondition(edgeRoutingOption, true), ConstraintManager.LogicalCondition.Or(cm.CreateValueEqualsCondition(globalLayeringItem, true), cm.CreateValueEqualsCondition(childPolicyItem, ALL_LEAVES_ON_SAME_LAYER))), busAlignmentOption); var ar = new AspectRatioTreeLayout(); OptionGroup arGroup = Handler.AddGroup(AR); arGroup.AddInt(HORIZONTAL_SPACE, (int)ar.HorizontalDistance); arGroup.AddInt(VERTICAL_SPACE, (int)ar.VerticalDistance); arGroup.AddInt(BEND_DISTANCE, (int)ar.BendDistance); IOptionItem ratioItem = arGroup.AddDouble(ASPECT_RATIO, ar.AspectRatio); IOptionItem useViewItem = arGroup.AddBool(USE_VIEW_ASPECT_RATIO, true); cm.SetEnabledOnValueEquals(useViewItem, false, ratioItem); }
private MultiStageLayout ConfigureDirectedRouter() { ClassicTreeLayout tree = new ClassicTreeLayout { MinimumNodeDistance = (int)Handler.GetValue(DIRECTED, MINIMAL_NODE_DISTANCE), MinimumLayerDistance = (int)Handler.GetValue(DIRECTED, MINIMAL_LAYER_DISTANCE) }; OrientationLayout ol = (OrientationLayout)tree.OrientationLayout; string orientationChoice = (string)Handler.GetValue(DIRECTED, ORIENTATION); ol.Orientation = enumOrient[orientationChoice]; if ((bool)Handler.GetValue(DIRECTED, ORTHOGONAL_EDGE_ROUTING)) { tree.EdgeRoutingStyle = yWorks.Layout.Tree.EdgeRoutingStyle.Orthogonal; } else { tree.EdgeRoutingStyle = yWorks.Layout.Tree.EdgeRoutingStyle.Plain; } tree.LeafPlacement = childPlacementPolicies[(string)Handler.GetValue(DIRECTED, CHILD_PLACEMENT_POLICY)]; tree.EnforceGlobalLayering = (bool)Handler.GetValue(DIRECTED, ENFORCE_GLOBAL_LAYERING); string portStyleChoice = (string)Handler.GetValue(DIRECTED, PORT_STYLE); tree.PortStyle = enumPortStyle[portStyleChoice]; tree.ConsiderNodeLabels = (bool)Handler.GetValue(DIRECTED, INTEGRATED_NODE_LABELING); tree.IntegratedEdgeLabeling = (bool)Handler.GetValue(DIRECTED, INTEGRATED_EDGE_LABELING); tree.VerticalAlignment = (double)Handler.GetValue(DIRECTED, VERTICAL_ALIGNMENT); tree.BusAlignment = (double)Handler.GetValue(DIRECTED, BUS_ALIGNMENT); return(tree); }