private void DrawEdge(ExperimentNodeConnection edge) { ExperimentNode source = edge.Source; ExperimentNode target = edge.Target; BasicNodeControl sourceControl, targetControl; if (m_applicationContext.NodeControlFactory.TryGetNodeControl(source, out sourceControl) && m_applicationContext.NodeControlFactory.TryGetNodeControl(target, out targetControl)) { NodeConnectionControl connection = m_applicationContext.NodeConnectionControlFactory.CreateNewNodeConnectionControl(sourceControl, targetControl); connection.ConnectStart(sourceControl.ConnectorAt(source.Data.X, source.Data.Y)); connection.ConnectEnd(targetControl.ConnectorAt(target.Data.X, target.Data.Y)); connection.UpdateConnection(); m_experimentCanvasWidget.ExperimentCanvas.View.Drawing.Add(connection); m_experimentCanvasWidget.ExperimentCanvas.View.ClearSelection(); m_experimentCanvasWidget.ExperimentCanvas.View.AddToSelection(connection); } }
public void DrawEdge(ExperimentNodeConnection edge, bool editable) { ExperimentNode source = edge.Source; ExperimentNode target = edge.Target; BasicNodeControl sourceControl, targetControl; if (m_nodeControlFactory.TryGetNodeControl(source, out sourceControl) && m_nodeControlFactory.TryGetNodeControl(target, out targetControl)) { NodeConnectionControl connection = m_nodeConnectionControlFactory.CreateNewNodeConnectionControl(sourceControl, targetControl); connection.ConnectStart(sourceControl.ConnectorAt(source.Data.X, source.Data.Y)); connection.ConnectEnd(targetControl.ConnectorAt(target.Data.X, target.Data.Y)); connection.UpdateConnection(); // HERZUM SPRINT 2.4 TLAB-157 if (connection.ExperimentNodeConnection != null && connection.ExperimentNodeConnection.Source != null && connection.ExperimentNodeConnection.Target != null) { // END HERZUM SPRINT 2.4 TLAB-157 // HERZUM SPRINT 2.3: TLAB-160 if ((connection.ExperimentNodeConnection.Source is ExperimentDecisionNode && connection.ExperimentNodeConnection.Target is ScopeNode) || (connection.ExperimentNodeConnection.Target is ExitDecisionNode)) { connection.IsEditable = false; } else { // END HERZUM SPRINT 2.3: TLAB-160 connection.IsEditable = editable; } } m_experimentCanvasWidget.ExperimentCanvas.View.Drawing.Add(connection); m_experimentCanvasWidget.ExperimentCanvas.View.ClearSelection(); } }