Esempio n. 1
0
        /// <summary>
        /// Adds child Confeaturator nodes to a given node.
        /// </summary>
        /// <param name="node">The node to which children should be added.</param>
        private void AddChildFeatureModelNodes(FeatureModelTreeNode node)
        {
            FeatureModelElement fmElement = node.FeatureModelElement;

            foreach (FeatureModelElement childFMElement in fmElement.SubFeatureModelElements)
            {
                node.Nodes.Add(CreateFeatureModelTreeNode(childFMElement));
            }

            // cross-feature model logic
            Feature feature = fmElement as Feature;

            if (feature != null)
            {
                if (feature.IsReference && !addedFeatures.Contains(feature.Name))
                {
                    FeatureModel definitionFeatureModel = Util.LoadFeatureModel(DTEHelper.GetFullProjectItemPath(feature.DefinitionFeatureModelFile));
                    Feature      definitionFeature      = definitionFeatureModel.GetFeature(feature.Name);
                    if (definitionFeature != null)
                    {
                        foreach (FeatureModelElement childFMElement in definitionFeature.SubFeatureModelElements)
                        {
                            node.Nodes.Add(CreateFeatureModelTreeNode(childFMElement));
                        }
                    }
                }
                addedFeatures.Add(feature.Name);
            }
        }
 /// <summary>
 /// Creates a FeatureModelTreeNode instance.
 /// </summary>
 /// <param name="fmElement">The feature model element that will belong to this node.</param>
 public FeatureModelTreeNode(FeatureModelElement fmElement)
 {
     if (fmElement == null) {
         throw new ArgumentException("Cannot build Confeaturator tree with null features");
     }
     this.FeatureModelElement = fmElement;
     Alternative alternative = fmElement as Alternative;
     if (alternative != null) {
         this.Text = "Alternative " + alternative.MinMaxIntervalText;
         this.Status = FeatureModelNodeStatus.Alternative;
         this.ForeColor = Color.DimGray;
         this.Kind = FeatureModelNodeKind.Alternative;
     } else {
         Feature feature = fmElement as Feature;
         this.Text = feature.Name;
         switch (feature.Occurence) {
             case Occurence.Mandatory:
                 this.Status = FeatureModelNodeStatus.CheckedAndDisabled;
                 this.Kind = FeatureModelNodeKind.Mandatory;
                 this.Checked = true;
                 break;
             case Occurence.Optional:
                 this.Status = FeatureModelNodeStatus.Unchecked;
                 this.Kind = FeatureModelNodeKind.Optional;
                 break;
             case Occurence.NotApply:
                 this.Status = FeatureModelNodeStatus.Unchecked;
                 this.Kind = FeatureModelNodeKind.NotApply;
                 break;
             default:
                 break;
         }
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Creates a Confeaturator node.
        /// </summary>
        /// <param name="fmElement">Feature model element used to create the node.</param>
        /// <returns>The created Confeaturator node.</returns>
        private FeatureModelTreeNode CreateFeatureModelTreeNode(FeatureModelElement fmElement)
        {
            FeatureModelTreeNode node = new FeatureModelTreeNode(fmElement);

            AddChildFeatureModelNodes(node);
            node.AdjustFont(trvFeatures.Font);
            return(node);
        }
        /// <summary>
        /// Creates a FeatureModelTreeNode instance.
        /// </summary>
        /// <param name="fmElement">The feature model element that will belong to this node.</param>
        public FeatureModelTreeNode(FeatureModelElement fmElement)
        {
            if (fmElement == null)
            {
                throw new ArgumentException("Cannot build Confeaturator tree with null features");
            }
            this.FeatureModelElement = fmElement;
            Alternative alternative = fmElement as Alternative;

            if (alternative != null)
            {
                this.Text      = "Alternative " + alternative.MinMaxIntervalText;
                this.Status    = FeatureModelNodeStatus.Alternative;
                this.ForeColor = Color.DimGray;
                this.Kind      = FeatureModelNodeKind.Alternative;
            }
            else
            {
                Feature feature = fmElement as Feature;
                this.Text = feature.Name;
                switch (feature.Occurence)
                {
                case Occurence.Mandatory:
                    this.Status  = FeatureModelNodeStatus.CheckedAndDisabled;
                    this.Kind    = FeatureModelNodeKind.Mandatory;
                    this.Checked = true;
                    break;

                case Occurence.Optional:
                    this.Status = FeatureModelNodeStatus.Unchecked;
                    this.Kind   = FeatureModelNodeKind.Optional;
                    break;

                case Occurence.NotApply:
                    this.Status = FeatureModelNodeStatus.Unchecked;
                    this.Kind   = FeatureModelNodeKind.NotApply;
                    break;

                default:
                    break;
                }
            }
        }
Esempio n. 5
0
 /// <summary>
 /// Creates a Confeaturator node.
 /// </summary>
 /// <param name="fmElement">Feature model element used to create the node.</param>
 /// <returns>The created Confeaturator node.</returns>
 private FeatureModelTreeNode CreateFeatureModelTreeNode(FeatureModelElement fmElement)
 {
     FeatureModelTreeNode node = new FeatureModelTreeNode(fmElement);
     AddChildFeatureModelNodes(node);
     node.AdjustFont(trvFeatures.Font);
     return node;
 }