コード例 #1
0
        /// <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;
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: ComponentFactory.cs プロジェクト: CoEST/TraceLab
        // 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;
        }
コード例 #4
0
ファイル: ComponentFactory.cs プロジェクト: CoEST/TraceLab
        /// <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;
        }
コード例 #5
0
        /// <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;
        }
コード例 #6
0
 /// <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));
 }
コード例 #7
0
ファイル: Experiment.cs プロジェクト: CoEST/TraceLab
 /// <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");
 }
コード例 #11
0
        /// <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;
        }
コード例 #12
0
        /// <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;
        }
コード例 #13
0
 /// <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);
 }
コード例 #14
0
ファイル: ComponentFactory.cs プロジェクト: CoEST/TraceLab
        // 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;
        }