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); }
/// <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); } }
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); } } }
private static NTreeViewItem AddFile(NTreeViewItemCollection items, string name) { NTreeViewItem item = CreateItem(NResources.Image__16x16_Contacts_png, name); items.Add(item); return(item); }
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(); } }
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); }
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); }
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])); }
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); }
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; } }
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]); }