//////////////////////////////////////////////////// //////////////// New in this sample //////////////// //////////////////////////////////////////////////// /// <summary> /// Adds and configures the <see cref="BridgeManager"/>. /// </summary> private void ConfigureBridges() { // create a new BridgeManager // The graph item styles are responsible for both // providing obstacles and drawing bridges, // the bridge manager collects the obstacles and // updates given edge paths to add bridges. // see MySimpleEdgeStyle var bridgeManager = new BridgeManager(); //Convenience class that just queries all model item GraphObstacleProvider provider = new GraphObstacleProvider(); //Register an IObstacleProvider, bridgeManager will query all registered obstacle providers //to determine if a bridge must be created bridgeManager.AddObstacleProvider(provider); //Bind the bridge manager to the GraphControl... bridgeManager.CanvasControl = graphControl; }
/// <summary> /// Adds and configures the <see cref="BridgeManager"/>. /// </summary> private void ConfigureBridges() { bridgeManager = new BridgeManager(); // we would like to change the custom bridge rendering default, // this can be done by decorating the existing default bridge creator bridgeManager.DefaultBridgeCreator = new CustomBridgeCreator(bridgeManager.DefaultBridgeCreator); //Convenience class that just queries all model item GraphObstacleProvider provider = new GraphObstacleProvider(); //We also want to query nodes for potential obstacles (disabled by default) provider.QueryNodes = true; //Register an IObstacleProvider, bridgeManager will query all registered obstacle providers //to determine if a bridge must be created bridgeManager.AddObstacleProvider(provider); //Bind the bridge manager to the GraphControl... bridgeManager.CanvasControl = graphControl; //We register a custom obstacle provider in the node's lookup of group nodes // that can be used by bridgeManager (through provider...) graphControl.Graph.GetDecorator().NodeDecorator.ObstacleProviderDecorator.SetFactory( node => graphControl.Graph.IsGroupNode(node), node => new GroupNodeObstacleProvider(node)); // Initialize GUI components that configure bridge appearance crossingStyleComboBox.ComboBox.DataSource = Enum.GetValues(typeof(BridgeCrossingStyle)); crossingStyleComboBox.SelectedItem = bridgeManager.DefaultBridgeCrossingStyle; crossingStyleComboBox.SelectedIndexChanged += crossingStyleComboBox_SelectedIndexChanged; crossingPolicyComboBox.ComboBox.DataSource = Enum.GetValues(typeof(BridgeCrossingPolicy)); crossingPolicyComboBox.SelectedItem = bridgeManager.BridgeCrossingPolicy; crossingPolicyComboBox.SelectedIndexChanged += crossingPolicyComboBox_SelectedIndexChanged; bridgeOrientationComboBox.ComboBox.DataSource = Enum.GetValues(typeof(BridgeOrientationStyle)); bridgeOrientationComboBox.SelectedItem = bridgeManager.DefaultBridgeOrientationStyle; bridgeOrientationComboBox.SelectedIndexChanged += bridgeOrientationComboBox_SelectedIndexChanged; heightTextBox.Text = bridgeManager.DefaultBridgeHeight.ToString(); widthTextBox.Text = bridgeManager.DefaultBridgeWidth.ToString(); }