Ejemplo n.º 1
0
        private void LoadFeatureTree(MsiFeature feature, TreeNode node)
        {
            TreeNode newNode = null;

            if (node == null)
            {
                newNode     = tvFeatures.Nodes.Add(feature.Title);
                newNode.Tag = feature;
            }
            else
            {
                newNode     = node.Nodes.Add(feature.Title);
                newNode.Tag = feature;
            }

            newNode.Checked = feature.IsAlreadyInstalled;

            if (feature.ChildFeatures != null)
            {
                foreach (MsiFeature childFeature in feature.ChildFeatures)
                {
                    LoadFeatureTree(childFeature, newNode);
                }
            }
        }
Ejemplo n.º 2
0
 private void tvFeatures_AfterSelect(object sender, TreeViewEventArgs e)
 {
     if (e.Node.Tag != null)
     {
         MsiFeature feature = (MsiFeature)e.Node.Tag;
         lblDescription.Text      = feature.Description;
         lblFileCost.Text         = "Feature Cost " + (feature.FeatureCost / 1024) + " K bytes";
         lblTotalFeatureCost.Text = "Total feature cost inclusing child features " + (feature.TotalCost / 1024) + " K bytes";
     }
 }
Ejemplo n.º 3
0
        private void UpdateSelectedFeatures(TreeNode node)
        {
            if (node.Tag != null)
            {
                MsiFeature feature = (MsiFeature)node.Tag;
                if (node.Checked)
                {
                    Globals.Instance.InstallFeatures.Add(feature);
                }
                else if (node.Checked == false && feature.IsAlreadyInstalled)
                {
                    Globals.Instance.UninstallFeatures.Add(feature);
                }
            }

            if (node.Nodes != null)
            {
                foreach (TreeNode childNode in node.Nodes)
                {
                    UpdateSelectedFeatures(childNode);
                }
            }
        }