コード例 #1
0
        private static NTreeViewItem GetDefaultExampleItem(NTreeViewItem item, int maxDepth, int depth)
        {
            NXmlElement xmlElement = item.Tag as NXmlElement;

            if (xmlElement != null && xmlElement.GetAttributeValue("default") == "true")
            {
                return(item);
            }

            if (depth < maxDepth)
            {
                depth++;
                NTreeViewItemCollection items = item.Items;
                for (int i = 0, count = items.Count; i < count; i++)
                {
                    NTreeViewItem defaultItem = GetDefaultExampleItem(items[i], maxDepth, depth);
                    if (defaultItem != null)
                    {
                        return(defaultItem);
                    }
                }
            }

            return(null);
        }
コード例 #2
0
        /// <summary>
        /// Event handler for window state events (Opened, Activated, Deactivated, Closing, Closed)
        /// </summary>
        /// <param name="args"></param>
        private void OnWindowStateEvent(NEventArgs args)
        {
            if (args.EventPhase != ENEventPhase.AtTarget)
            {
                return;
            }

            NTopLevelWindow window    = (NTopLevelWindow)args.CurrentTargetNode;
            string          eventName = args.Event.Name;

            m_EventsLog.LogEvent(window.Title + " " + eventName.Substring(eventName.LastIndexOf('.') + 1));

            if (args.Event == NTopLevelWindow.ActivatedEvent)
            {
                // Select the corresponding item from the tree view
                NTreeViewItem item = (NTreeViewItem)window.Tag;
                m_TreeView.SelectedItem = item;
            }
            else if (args.Event == NTopLevelWindow.ClosedEvent)
            {
                // Remove the corresponding item from the tree view
                NTreeViewItem           item  = (NTreeViewItem)window.Tag;
                NTreeViewItemCollection items = (NTreeViewItemCollection)item.ParentNode;
                items.Remove(item);
            }
        }
コード例 #3
0
        private void AddItemsFor(NTreeViewItemCollection items, NXmlElement element)
        {
            int childCount = element.ChildrenCount;

            for (int i = 0; i < childCount; i++)
            {
                NXmlElement child = element.GetChildAt(i) as NXmlElement;
                if (child == null)
                {
                    continue;
                }

                NTreeViewItem item = CreateTreeViewItem(child);
                if (item != null)
                {
                    items.Add(item);
                    if (item.Tag is NXmlElement == false)
                    {
                        // This is a folder item, so add items for its children, too
                        AddItemsFor(item.Items, child);
                    }
                }
                else
                {
                    AddItemsFor(items, child);
                }
            }
        }
コード例 #4
0
            private static NTreeViewItem AddFile(NTreeViewItemCollection items, string name)
            {
                NTreeViewItem item = CreateItem(NResources.Image__16x16_Contacts_png, name);

                items.Add(item);
                return(item);
            }
コード例 #5
0
        protected internal override void OnClosing()
        {
            base.OnClosing();

            // Loop through the tree view items to close all opened windows
            NTreeViewItemCollection items = m_TreeView.Items;

            for (int i = items.Count - 1; i >= 0; i--)
            {
                ((NTopLevelWindow)items[i].Tag).Close();
            }
        }
コード例 #6
0
            private static NTreeViewItem GetItemByName(NTreeViewItemCollection items, string name)
            {
                for (int i = 0, count = items.Count; i < count; i++)
                {
                    NTreeViewItem item     = items[i];
                    string        itemName = (string)item.Tag;
                    if (itemName == name)
                    {
                        return(item);
                    }
                }

                return(null);
            }
コード例 #7
0
        private NTreeViewItem GetOrCreateItem(NTreeViewItemCollection items, string name)
        {
            for (int i = 0, count = items.Count; i < count; i++)
            {
                NLabel label = (NLabel)items[i].Header.GetFirstDescendant(NLabel.NLabelSchema);
                if (label.Text == name)
                {
                    return(items[i]);
                }
            }

            NTreeViewItem item = new NTreeViewItem(NPairBox.Create(NResources.Image__16x16_Folders_png, name));

            items.Add(item);
            return(item);
        }
コード例 #8
0
        private NTreeViewItem GetDefaultOrFirstExampleItem()
        {
            // Find the default tree view item
            NTreeViewItemCollection items = m_TreeView.Items;

            for (int i = 0, count = items.Count; i < count; i++)
            {
                NTreeViewItem defaultItem = GetDefaultExampleItem(items[i], 1, 0);
                if (defaultItem != null)
                {
                    return(defaultItem);
                }
            }

            // There isn't a default example, so return the first one
            return(GetFirstExampleItem(items[0]));
        }
コード例 #9
0
            private static NTreeViewItem AddFolder(NTreeViewItemCollection items, string name)
            {
                // Find the place for the folder item
                int i;

                for (i = items.Count - 1; i >= 0; i--)
                {
                    if (items[i].Items.Count > 0)
                    {
                        // This is not a leaf node, which means we have reached the last folder in the given list of items
                        break;
                    }
                }

                // Insert the folder item
                NTreeViewItem item = CreateItem(NResources.Image__16x16_Folders_png, name);

                items.Insert(i + 1, item);
                return(item);
            }
コード例 #10
0
        private void OnAddButtonClicked(NEventArgs args)
        {
            NTreeViewItem selItem = m_TreeView.SelectedItem;
            string        text    = selItem == null ? "Item " + m_TreeView.Items.Count.ToString() :
                                    selItem.Tag.ToString();

            if (args.TargetNode == m_AddButton)
            {
                if (selItem == null)
                {
                    // Add the item as a last item in the tree view
                    m_TreeView.Items.Add(CreateTreeViewItem(text));
                }
                else
                {
                    // Add the item as a last item in the selected item
                    text += "." + selItem.Items.Count.ToString();
                    selItem.Items.Add(CreateTreeViewItem(text));
                }
            }
            else if (args.TargetNode == m_InsertBeforeButton)
            {
                // Insert the item before the selected one
                NTreeViewItemCollection items = (NTreeViewItemCollection)selItem.ParentNode;
                text += ".Before";
                items.Insert(selItem.IndexInParent, CreateTreeViewItem(text));
            }
            else if (args.TargetNode == m_InsertAfterButton)
            {
                // Insert the item after the selected one
                NTreeViewItemCollection items = (NTreeViewItemCollection)selItem.ParentNode;
                text += ".After";
                items.Insert(selItem.IndexInParent + 1, CreateTreeViewItem(text));
            }

            if (m_TreeView.Items.Count == 1)
            {
                m_RemoveAllButton.Enabled = true;
            }
        }
コード例 #11
0
            public void OnItemDecompressed(NZipItem item)
            {
                string[] partNames = item.Name.Split(PathDelimitersCharArray, StringSplitOptions.RemoveEmptyEntries);

                // Add the folders to the tree view
                NTreeViewItemCollection items = m_TreeView.Items;

                for (int i = 0, partNameCount = partNames.Length - 1; i < partNameCount; i++)
                {
                    string        partName     = partNames[i];
                    NTreeViewItem treeViewItem = GetItemByName(items, partName);
                    if (treeViewItem == null)
                    {
                        // An item with the current entry name does not exist, so create it
                        treeViewItem = AddFolder(items, partName);
                    }

                    items = treeViewItem.Items;
                }

                // Add the file
                AddFile(items, partNames[partNames.Length - 1]);
            }