/// <summary> /// Generates the challenge node. /// </summary> /// <param name="challengeName">Name of the challenge.</param> /// <param name="experiment">The experiment to which new component is added.</param> /// <param name="positionX">The position X.</param> /// <param name="positionY">The position Y.</param> /// <returns></returns> private static ChallengeNode CreateChallengeNode(string challengeName, IEditableExperiment experiment, double positionX, double positionY) { var data = new SerializedVertexDataWithSize(); data.X = positionX; data.Y = positionY; data.Width = 160; data.Height = 160; string componentId = Guid.NewGuid().ToString(); var componentGraph = new CompositeComponentEditableGraph(true); if (componentGraph.References != null) { componentGraph.References = experiment.References.CopyCollection(); } data.Metadata = new ChallengeMetadata(componentGraph, challengeName, System.IO.Path.GetDirectoryName(experiment.ExperimentInfo.FilePath)); string componentNodeId = Guid.NewGuid().ToString(); string componentName = data.Metadata.Label; var challengeNode = new ChallengeNode(Guid.NewGuid().ToString(), data); experiment.AddVertex(challengeNode); return(challengeNode); }
/// <summary> /// Clones this instance. /// </summary> /// <returns></returns> public override ExperimentNode Clone() { var clone = new ChallengeNode(); clone.CopyFrom(this); return(clone); }
/// <summary> /// Clones this instance. /// </summary> /// <returns></returns> public override ExperimentNode Clone() { var clone = new ChallengeNode(); clone.CopyFrom(this); return clone; }
/// <summary> /// Generates the correct node based on metadata contained in serialized vertex data /// </summary> /// <param name="id">The id.</param> /// <param name="nodeData">The node data.</param> /// <returns>Experiment node</returns> private ExperimentNode NodeGenerator(string id, SerializedVertexData nodeData) { if (id == null) throw new ArgumentNullException("id"); if (nodeData == null) throw new ArgumentNullException("nodeData"); ExperimentNode node; if (nodeData.Metadata is StartNodeMetadata) { node = new ExperimentStartNode(id, nodeData); } else if (nodeData.Metadata is EndNodeMetadata) { node = new ExperimentEndNode(id, nodeData); } else if (nodeData.Metadata is DecisionMetadata) { node = new ExperimentDecisionNode(id, nodeData); } else if (nodeData.Metadata is ScopeMetadata) { node = new ScopeNode(id, (SerializedVertexDataWithSize)nodeData); } else if (nodeData.Metadata is LoopScopeMetadata) { node = new LoopScopeNode(id, (SerializedVertexDataWithSize)nodeData); } else if (nodeData.Metadata is CompositeComponentMetadata) { node = new CompositeComponentNode(id, nodeData); } else if (nodeData.Metadata is ExitDecisionMetadata) { node = new ExitDecisionNode(id, nodeData); } // HERZUM SPRINT 1.0 else if (nodeData.Metadata is CommentMetadata) { // HERZUM SPRINT 1.2 // node = new CommentNode(id, nodeData); node = new CommentNode(id, (SerializedVertexDataWithSize) nodeData); // END HERZUM SPRINT 1.2 } // END HERZUM SPRINT 1.0 // HERZUM SPRINT 2.0: TLAB-65 CLASS else if (nodeData.Metadata is ChallengeMetadata) { node = new ChallengeNode(id, (SerializedVertexDataWithSize) nodeData); } // END HERZUM SPRINT 2.0: TLAB-65 CLASS else { ComponentNode componentNode = new ComponentNode(id, nodeData); node = componentNode; } return node; }
/// <summary> /// Generates the correct node based on metadata contained in serialized vertex data /// </summary> /// <param name="id">The id.</param> /// <param name="nodeData">The node data.</param> /// <returns>Experiment node</returns> private ExperimentNode NodeGenerator(string id, SerializedVertexData nodeData) { if (id == null) { throw new ArgumentNullException("id"); } if (nodeData == null) { throw new ArgumentNullException("nodeData"); } ExperimentNode node; if (nodeData.Metadata is StartNodeMetadata) { node = new ExperimentStartNode(id, nodeData); } else if (nodeData.Metadata is EndNodeMetadata) { node = new ExperimentEndNode(id, nodeData); } else if (nodeData.Metadata is DecisionMetadata) { node = new ExperimentDecisionNode(id, nodeData); } else if (nodeData.Metadata is ScopeMetadata) { node = new ScopeNode(id, (SerializedVertexDataWithSize)nodeData); } else if (nodeData.Metadata is LoopScopeMetadata) { node = new LoopScopeNode(id, (SerializedVertexDataWithSize)nodeData); } else if (nodeData.Metadata is CompositeComponentMetadata) { node = new CompositeComponentNode(id, nodeData); } else if (nodeData.Metadata is ExitDecisionMetadata) { node = new ExitDecisionNode(id, nodeData); } // HERZUM SPRINT 1.0 else if (nodeData.Metadata is CommentMetadata) { // HERZUM SPRINT 1.2 // node = new CommentNode(id, nodeData); node = new CommentNode(id, (SerializedVertexDataWithSize)nodeData); // END HERZUM SPRINT 1.2 } // END HERZUM SPRINT 1.0 // HERZUM SPRINT 2.0: TLAB-65 CLASS else if (nodeData.Metadata is ChallengeMetadata) { node = new ChallengeNode(id, (SerializedVertexDataWithSize)nodeData); } // END HERZUM SPRINT 2.0: TLAB-65 CLASS else { ComponentNode componentNode = new ComponentNode(id, nodeData); node = componentNode; } return(node); }
/// <summary> /// Generates the challenge node. /// </summary> /// <param name="challengeName">Name of the challenge.</param> /// <param name="experiment">The experiment to which new component is added.</param> /// <param name="positionX">The position X.</param> /// <param name="positionY">The position Y.</param> /// <returns></returns> private static ChallengeNode CreateChallengeNode(string challengeName, IEditableExperiment experiment, double positionX, double positionY) { var data = new SerializedVertexDataWithSize(); data.X = positionX; data.Y = positionY; data.Width = 160; data.Height = 160; string componentId = Guid.NewGuid().ToString(); var componentGraph = new CompositeComponentEditableGraph(true); if (componentGraph.References != null) { componentGraph.References = experiment.References.CopyCollection(); } data.Metadata = new ChallengeMetadata(componentGraph, challengeName, System.IO.Path.GetDirectoryName(experiment.ExperimentInfo.FilePath)); string componentNodeId = Guid.NewGuid().ToString(); string componentName = data.Metadata.Label; var challengeNode = new ChallengeNode(Guid.NewGuid().ToString(), data); experiment.AddVertex(challengeNode); return challengeNode; }