/// <summary> /// Adds the component from definition to experiment. /// </summary> /// <param name="experiment">The experiment to which new component is added.</param> /// <param name="metadataDefinition">The metadata definition that defines newly added component.</param> /// <param name="positionX">The position X at where new component is added</param> /// <param name="positionY">The position Y at where new comopnent is added</param> /// <returns>The newly constucted node</returns> public static ExperimentNode AddComponentFromDefinitionToExperiment(IEditableExperiment experiment, MetadataDefinition metadataDefinition, double positionX, double positionY) { if (metadataDefinition == null) throw new ArgumentNullException("metadataDefinition"); ExperimentNode newNode = null; SerializedVertexData data = new SerializedVertexData(); data.X = positionX; data.Y = positionY; // case 1. Primitive Component bool isCreated = TryCreateComponent(experiment, metadataDefinition, data, out newNode); // case 2. Composite Component if(!isCreated) isCreated = TryCreateCompositeComponent(experiment, metadataDefinition, data, out newNode); // case 3. Decision if (!isCreated) isCreated = TryCreateDecisionComponent(experiment, metadataDefinition, data, out newNode); // case 4. Loop if (!isCreated) isCreated = TryCreateLoopComponent(experiment, metadataDefinition, data, out newNode); return newNode; }
public CLVComponentNode(MetadataDefinition definition, IGetCLNode componentsLibrary) : base() { if (definition == null) throw new ArgumentNullException("definition"); if (componentsLibrary == null) throw new ArgumentNullException("componentsLibrary"); m_definition = definition; m_componentsLibrary = componentsLibrary; if (m_definition.Tags != null) { if (m_definition.Tags.Values.Count == 0) { AddTag("Uncategorized"); } else { foreach (string tag in m_definition.Tags.Values) { AddTag(tag); } } m_definition.Tags.TagAdded += OnTagAdded; m_definition.Tags.TagRemoved += OnTagRemoved; } PartialId = m_definition.ID.Substring(m_definition.ID.Length - 5); }
// HERZUM SPRINT 1.0 private static bool TryCreateComment(IEditableExperiment experiment, MetadataDefinition metadataDefinition, SerializedVertexData data, out ExperimentNode newCreatedNode) { bool isCreated = false; newCreatedNode = null; CommentMetadataDefinition commentMetadataDefinition = metadataDefinition as CommentMetadataDefinition; if (commentMetadataDefinition != null) { data.Metadata = new CommentMetadata(commentMetadataDefinition.Label); string commentNodeId = Guid.NewGuid().ToString(); // HERZUM SPRINT 1.2 COMMENT // newCreatedNode = new CommentNode(commentNodeId, data); var data_with_size = new SerializedVertexDataWithSize(); data_with_size.X = data.X; data_with_size.Y = data.Y; data_with_size.Metadata = data.Metadata; data_with_size.Width = 160; data_with_size.Height = 160; data_with_size.WidgetStatus = "normal"; newCreatedNode = new CommentNode(commentNodeId, data_with_size); // END SPRINT 1.2 COMMENT experiment.AddVertex(newCreatedNode); //set the log settings of the new component experiment.SetLogLevelSettings(newCreatedNode); isCreated = true; } return isCreated; }
/// <summary> /// Adds the component from definition to experiment. /// </summary> /// <param name="experiment">The experiment to which new component is added.</param> /// <param name="metadataDefinition">The metadata definition that defines newly added component.</param> /// <param name="positionX">The position X at where new component is added</param> /// <param name="positionY">The position Y at where new comopnent is added</param> /// <returns>The newly constucted node</returns> public static ExperimentNode AddComponentFromDefinitionToExperiment(IEditableExperiment experiment, MetadataDefinition metadataDefinition, double positionX, double positionY) { if (metadataDefinition == null) throw new ArgumentNullException("metadataDefinition"); ExperimentNode newNode = null; SerializedVertexData data = new SerializedVertexData(); data.X = positionX; data.Y = positionY; // case 1. Primitive Component bool isCreated = TryCreateComponent(experiment, metadataDefinition, data, out newNode); // case 2. Composite Component if(!isCreated) isCreated = TryCreateCompositeComponent(experiment, metadataDefinition, data, out newNode); // case 3. Decision if (!isCreated) isCreated = TryCreateDecisionComponent(experiment, metadataDefinition, data, out newNode); // case 4. Loop if (!isCreated) isCreated = TryCreateLoopComponent(experiment, metadataDefinition, data, out newNode); // HERZUM SPRINT 0.0 // case 5. Scope if (!isCreated) isCreated = TryCreateScopeComponent(experiment, metadataDefinition, data, out newNode); // END HERZUM 0.0 // HERZUM SPRINT 1.0 if (!isCreated) isCreated = TryCreateComment(experiment, metadataDefinition, data, out newNode); // END HERZUM SPRINT 1.0 // HERZUM SPRINT 2.0: TLAB-65 // case 5. Challenge if (!isCreated) isCreated = TryCreateChallengeComponent(experiment, metadataDefinition, data, out newNode); // END HERZUM SPRINT 2.0: TLAB-65 return newNode; }
/// <summary> /// Attempts to create the primitive component. Component is created only if definition is a ComponentMetadataDefinition. /// Otherwise method returns false, and null node. /// </summary> /// <param name="experiment">The experiment to which new component is added.</param> /// <param name="metadataDefinition">The metadata definition which component is created based on.</param> /// <param name="data">The data containing position of new vertex</param> /// <param name="newCreatedNode">Output of new created node; null if metadatadefinition was not a ComponentMetadataDefinition</param> /// <returns> /// true if metadatadefinition was a ComponentMetadataDefinition and node has been created, otherwise false /// </returns> private static bool TryCreateComponent(IEditableExperiment experiment, MetadataDefinition metadataDefinition, SerializedVertexData data, out ExperimentNode newCreatedNode) { bool isCreated = false; newCreatedNode = null; ComponentMetadataDefinition componentMetadataDefinition = metadataDefinition as ComponentMetadataDefinition; if (componentMetadataDefinition != null) { data.Metadata = new ComponentMetadata(componentMetadataDefinition, System.IO.Path.GetDirectoryName(experiment.ExperimentInfo.FilePath)); string componentNodeId = Guid.NewGuid().ToString(); newCreatedNode = new ComponentNode(componentNodeId, data); experiment.AddVertex(newCreatedNode); //set the log settings of the new component experiment.SetLogLevelSettings(newCreatedNode); isCreated = true; } return isCreated; }
/// <summary> /// Tries to get the component definition with a given ID. /// </summary> /// <param name="componentID">The component ID.</param> /// <param name="metadataDefinition">The metadata definition.</param> /// <returns> /// True if the definition was found in the library, otherwise false. /// </returns> /// <exception cref="System.ArgumentNullException">Thrown if componentID is null</exception> public bool TryGetComponentDefinition(string componentID, out MetadataDefinition metadataDefinition) { return(m_wrappedLibrary.TryGetComponentDefinition(componentID, m_references, out metadataDefinition)); }
/// <summary> /// Adds a new component at the specified coordinates /// </summary> /// <exception cref="System.ArgumentNullException">Thrown if the component definition is null</exception> public ExperimentNode AddComponentFromDefinition(MetadataDefinition metadataDefinition, double positionX, double positionY) { ExperimentNode newNode = ComponentFactory.AddComponentFromDefinitionToExperiment(this, metadataDefinition, positionX, positionY); return newNode; }
/// <summary> /// Adds a new component at the specified coordinates /// </summary> /// <param name="metadataDefinition"></param> /// <param name="positionX"></param> /// <param name="positionY"></param> /// <returns></returns> /// <exception cref="System.ArgumentNullException">Thrown if the component definition is null</exception> public ExperimentNode AddComponentFromDefinition(MetadataDefinition metadataDefinition, double positionX, double positionY) { return m_experiment.AddComponentFromDefinition(metadataDefinition, positionX, positionY); }
/// <summary> /// Removes defintion from CLV hierarchy. (from the view)s /// </summary> /// <param name="metadataDefinition">The metadata definition.</param> /// <param name="nodeCollection">The node collection.</param> /// <returns>true if metadefinition was found and removed from component list view</returns> private static bool RemoveFromCLVHierarchy(MetadataDefinition metadataDefinition, IEnumerable<CLVBaseNode> nodeCollection) { foreach (CLVBaseNode node in nodeCollection) { var tagNode = node as CLVTagNode; if (tagNode != null) { bool removed = RemoveFromCLVHierarchy(metadataDefinition, tagNode.AllChildren); if (removed) return true; } else { var comp = node as CLVComponentNode; if (comp != null) { if (comp.Component == metadataDefinition) { comp.Remove(); return true; } } } } return false; }
private void AddNodeTag(MetadataDefinition component) { var node = new CLVComponentNode(component, this); node.AddTag("All Components"); }
/// <summary> /// Attempts to create the composite component. Component is created only if definition is a LoopMetadataDefinition. /// Otherwise method returns false, and null node. /// </summary> /// <param name="experiment">The experiment to which new component is added.</param> /// <param name="metadataDefinition">The metadata definition which component is created based on.</param> /// <param name="data">The data containing position of new vertex</param> /// <param name="newCreatedNode">Output of new created node; null if metadatadefinition was not a LoopMetadataDefinition</param> /// <returns> /// true if metadatadefinition was a LoopMetadataDefinition and node has been created, otherwise false /// </returns> private static bool TryCreateLoopComponent(IEditableExperiment experiment, MetadataDefinition metadataDefinition, SerializedVertexData data, out ExperimentNode newCreatedNode) { bool isCreated = false; newCreatedNode = null; LoopMetadataDefinition loopMetadataDefinition = metadataDefinition as LoopMetadataDefinition; if (loopMetadataDefinition != null) { newCreatedNode = CreateLoopScopeNode(loopMetadataDefinition.Label, experiment, data.X, data.Y); isCreated = true; } return isCreated; }
/// <summary> /// Attempts to create the composite component. Component is created only if definition is a DecisionMetadataDefinition. /// Otherwise method returns false, and null node. /// </summary> /// <param name="experiment">The experiment to which new component is added.</param> /// <param name="metadataDefinition">The metadata definition which component is created based on.</param> /// <param name="data">The data containing position of new vertex</param> /// <param name="newCreatedNode">Output of new created node; null if metadatadefinition was not a DecisionMetadataDefinition</param> /// <returns> /// true if metadatadefinition was a DecisionMetadataDefinition and node has been created, otherwise false /// </returns> private static bool TryCreateDecisionComponent(IEditableExperiment experiment, MetadataDefinition metadataDefinition, SerializedVertexData data, out ExperimentNode newCreatedNode) { bool isCreated = false; newCreatedNode = null; DecisionMetadataDefinition decisionMetadataDefinition = metadataDefinition as DecisionMetadataDefinition; if (decisionMetadataDefinition != null) { newCreatedNode = CreateDecisionComponent(experiment, decisionMetadataDefinition, data); isCreated = true; } return isCreated; }
/// <summary> /// Tries to get the component definition with a given ID. /// </summary> /// <param name="componentID">The component ID.</param> /// <param name="metadataDefinition">The metadata definition.</param> /// <returns> /// True if the definition was found in the library, otherwise false. /// </returns> /// <exception cref="System.ArgumentNullException">Thrown if componentID is null</exception> public bool TryGetComponentDefinition(string componentID, out MetadataDefinition metadataDefinition) { return m_wrappedLibrary.TryGetComponentDefinition(componentID, m_references, out metadataDefinition); }
// END HERZUM 0.0 // HERZUM SPRINT 2.0: TLAB-65 CLASS /// <summary> /// Attempts to create the composite component. Component is created only if definition is a ChallengeMetadataDefinition. /// Otherwise method returns false, and null node. /// </summary> /// <param name="experiment">The experiment to which new component is added.</param> /// <param name="metadataDefinition">The metadata definition which component is created based on.</param> /// <param name="data">The data containing position of new vertex</param> /// <param name="newCreatedNode">Output of new created node; null if metadatadefinition was not a LoopMetadataDefinition</param> /// <returns> /// true if metadatadefinition was a ChallengeMetadataDefinition and node has been created, otherwise false /// </returns> private static bool TryCreateChallengeComponent(IEditableExperiment experiment, MetadataDefinition metadataDefinition, SerializedVertexData data, out ExperimentNode newCreatedNode) { bool isCreated = false; newCreatedNode = null; ChallengeMetadataDefinition challengeMetadataDefinition = metadataDefinition as ChallengeMetadataDefinition; if (challengeMetadataDefinition != null) { newCreatedNode = CreateChallengeNode(challengeMetadataDefinition.Label, experiment, data.X, data.Y); isCreated = true; } return isCreated; }