Beispiel #1
0
 private void RestoreMenuTree(XmlItem xi, List <ExportsTreeNode> nodes)
 {
     foreach (XmlItem item in xi.Items)
     {
         Type   exportType = null;
         string typeProp   = item.GetProp("ExportType");
         if (!string.IsNullOrEmpty(typeProp))
         {
             exportType = Type.GetType(typeProp);
         }
         string imageIndexProp = item.GetProp("Icon");
         int    imageIndex     = -1;
         if (!string.IsNullOrEmpty(imageIndexProp))
         {
             int.TryParse(imageIndexProp, out imageIndex);
         }
         string enabledProp = item.GetProp("Enabled");
         bool   enabled     = true;
         if (!string.IsNullOrEmpty(imageIndexProp))
         {
             int.TryParse(imageIndexProp, out imageIndex);
         }
         ExportsTreeNode currentNode = new ExportsTreeNode(item.Name, exportType, imageIndex, enabled);
         nodes.Add(currentNode);
         if (item.Items.Count > 0)
         {
             RestoreMenuTree(item, currentNode.Nodes);
         }
     }
 }
Beispiel #2
0
        /// <summary>
        /// Sets Export visibility.
        /// </summary>
        /// <param name="exportType">Export type.</param>
        /// <param name="enabled">Visibility state.</param>
        public void SetExportEnabled(Type exportType, bool enabled)
        {
            ExportsTreeNode node = FindItem(null, exportType);

            if (node != null)
            {
                node.Enabled = enabled;
            }
        }
Beispiel #3
0
        private void RegisterObject(ExportsTreeNode node, bool registerCategories)
        {
            if (node.ExportType == null && registerCategories)
            {
                RegisteredObjects.AddExportCategory(node.Name, node.ToString(), node.ImageIndex);
            }
            else if (node.ExportType != null && !registerCategories)
            {
                RegisteredObjects.AddExport(node.ExportType, node.ToString(), node.ImageIndex);
            }
            List <ObjectInfo> list = new List <ObjectInfo>();

            RegisteredObjects.Objects.EnumItems(list);
            node.Tag = list[list.Count - 1];
        }
Beispiel #4
0
        /// <summary>
        ///
        /// </summary>
        public void RegisterExports()
        {
            Queue <ExportsTreeNode> queue = new Queue <ExportsTreeNode>(menuNodes);

            while (queue.Count != 0)
            {
                ExportsTreeNode node = queue.Dequeue();
                if (node.ExportType != null)
                {
                    RegisteredObjects.AddExport(node.ExportType, node.ToString(), node.ImageIndex);
                }
                List <ObjectInfo> list = new List <ObjectInfo>();
                RegisteredObjects.Objects.EnumItems(list);
                node.Tag = list[list.Count - 1];
                foreach (ExportsTreeNode nextNode in node.Nodes)
                {
                    queue.Enqueue(nextNode);
                }
            }
        }
Beispiel #5
0
        private ExportsTreeNode FindItem(string name, Type exportType)
        {
            Queue <ExportsTreeNode> queue = new Queue <ExportsTreeNode>(menuNodes);

            while (queue.Count != 0)
            {
                ExportsTreeNode node = queue.Dequeue();

                if (exportType != null && node.ExportType == exportType ||
                    !string.IsNullOrEmpty(name) && node.Name == name)
                {
                    return(node);
                }

                foreach (ExportsTreeNode nextNode in node.Nodes)
                {
                    queue.Enqueue(nextNode);
                }
            }

            return(null);
        }
Beispiel #6
0
        private ExportsTreeNode FindItem(string name, Type exportType, List <ExportsTreeNode> menu)
        {
            ExportsTreeNode res = null;

            foreach (ExportsTreeNode node in menu)
            {
                if (!string.IsNullOrEmpty(name) && node.Name == name)
                {
                    res = node;
                }
                if (exportType != null && node.ExportType == exportType)
                {
                    res = node;
                }
                if (node.ExportType == null)
                {
                    res = FindItem(name, exportType, node.Nodes);
                }
            }

            return(res);
        }