Beispiel #1
0
        // create TristateTreeView from XML file
        public void CreateTreeViewFromXmlFile(TriStateTreeView treeView)
        {
            FeatureModelConfiguration fmc = new FeatureModelConfiguration(this.fileName);

            rootFeature = fmc.GetFeatureModelConfigurationModel();


            // Clear TriStateTreeView
            treeView.Nodes.Clear();

            //
            treeView.BeginUpdate();

            treeView.InitializeRootFeature(ref rootFeature);
            FeatureTreeNode rn = new FeatureTreeNode();

            rn.Text = rootFeature.name;
            rn.InitializeRootFeature(ref rootFeature);
            //treeView.SetChecked(rn, TriStateTreeView.CheckState.Checked);
            treeView.SetChecked(rn, TriStateTreeView.CheckState.Greyed);
            treeView.Nodes.Add(rn);


            foreach (object o in rootFeature.Items)
            {
                if (o.GetType() == typeof(FeatureType))
                {
                    FeatureType     ft          = (FeatureType)o;
                    FeatureTreeNode subRootNode = new FeatureTreeNode();
                    subRootNode.Text = ft.name;
                    subRootNode.InitializeFeature(ref ft);

                    if (ft.kind == KindType.Optional || ft.kind == KindType.FeatureSetFeature)
                    {
                        subRootNode.NodeFont = new System.Drawing.Font("Arial", 8, System.Drawing.FontStyle.Bold);
                    }

                    switch (ft.configuration)
                    {
                    case ConfigType.Included:
                        if (ft.kind == KindType.Mandatory)
                        {
                            //treeView.SetChecked(subRootNode, TriStateTreeView.CheckState.Checked);
                            treeView.SetChecked(subRootNode, TriStateTreeView.CheckState.Greyed);
                        }
                        else
                        {
                            treeView.SetChecked(subRootNode, TriStateTreeView.CheckState.Checked);
                        }
                        break;

                    case ConfigType.Excluded:
                        treeView.SetChecked(subRootNode, TriStateTreeView.CheckState.Unchecked);
                        break;

                    case ConfigType.Unspecified:
                        treeView.SetChecked(subRootNode, TriStateTreeView.CheckState.QuestionMark);
                        break;
                    }

                    rn.Nodes.Add(subRootNode);
                    CreateTreeNode(subRootNode, ft, treeView);
                }

                else if (o.GetType() == typeof(FeatureSetType))
                {
                    FeatureSetType  fst         = (FeatureSetType)o;
                    FeatureTreeNode subRootNode = new FeatureTreeNode();
                    subRootNode.Text = string.Format("FeatureSet [{0}...{1}]", fst.min, fst.max);
                    treeView.SetChecked(subRootNode, TriStateTreeView.CheckState.FeatureSet);
                    rn.Nodes.Add(subRootNode);
                    CreateTreeNode(subRootNode, fst, treeView);
                }
            }

            treeView.ExpandAll();
            treeView.EndUpdate();
        }
 public void InitializeRootFeature(ref RootFeatureType rf)
 {
     this.rootFeature = rf;
 }
Beispiel #3
0
 public FeatureModel(string _fileName)
 {
     fileName    = _fileName;
     valid       = true;
     rootFeature = null;
 }
Beispiel #4
0
 public void InitializeRootFeature(ref RootFeatureType _rootFeature)
 {
     this.rootFeature = _rootFeature;
 }