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); } } }
/// <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 OnTreeViewItemMouseDown(NMouseButtonEventArgs arg) { if (arg.Cancel || arg.Button != ENMouseButtons.Right) { return; } // Mark the event as handled arg.Cancel = true; // Get the right clicked tree view item NTreeViewItem item = (NTreeViewItem)arg.CurrentTargetNode; // Create the context menu NMenu contextMenu = new NMenu(); NMenuItem copyLinkToClipboard = new NMenuItem("Copy link to clipboard"); copyLinkToClipboard.Click += OnCopyLinkToClipboardClick; copyLinkToClipboard.Tag = item.Tag; contextMenu.Items.Add(copyLinkToClipboard); // Show the context menu NSplitter splitter = (NSplitter)m_TreeView.ParentNode.ParentNode; double x = splitter.X + m_TreeView.X + arg.CurrentTargetPosition.X; double y = splitter.Y + m_TreeView.Y + item.YInRootItems + arg.CurrentTargetPosition.Y; NPopupWindow.OpenInContext(new NPopupWindow(contextMenu), m_TreeView, new NPoint(x, y)); }
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); }
NTreeViewItem CreateTestItem(string formula) { NTreeViewItem item = new NTreeViewItem(formula); item.Tag = formula; return(item); }
private static NXmlNode SerializeTreeViewItem(NTreeViewItem item) { NElementInfo elementInfo = (NElementInfo)item.Tag; if (elementInfo == null) { string text = ((NLabel)item.Header.Content).Text; return(new NXmlTextNode(ENXmlNodeType.Text, text)); } // Create an XML element for the current tree view item NXmlElement element = new NXmlElement(elementInfo.Name); if (elementInfo.Attributes.Count > 0) { // Set the element's attributes INIterator <NKeyValuePair <string, string> > iter = elementInfo.Attributes.GetIterator(); while (iter.MoveNext()) { element.SetAttribute(iter.Current.Key, iter.Current.Value); } } // Loop through the item's children for (int i = 0, childCount = item.Items.Count; i < childCount; i++) { element.AddChild(SerializeTreeViewItem(item.Items[i])); } return(element); }
private static void UpdateTreeViewItemText(NTreeViewItem item) { NElementInfo elementInfo = item.Tag as NElementInfo; if (elementInfo == null) { return; } string text = elementInfo.Name; if (elementInfo.Attributes.Count > 0) { // Iterate through the attributes and append them to the text StringBuilder sb = new StringBuilder(text); INIterator <NKeyValuePair <string, string> > iter = elementInfo.Attributes.GetIterator(); while (iter.MoveNext()) { sb.Append(" "); sb.Append(iter.Current.Key); sb.Append("=\""); sb.Append(iter.Current.Value); sb.Append("\""); } text = sb.ToString(); } // Update the text of the given tree view item ((NLabel)item.Header.Content).Text = text; }
void CreateTestItems(NTreeViewItem parentItem, string[] formulas) { for (int i = 0; i < formulas.Length; i++) { parentItem.Items.Add(CreateTestItem(formulas[i])); } }
private static NTreeViewItem CreateTreeViewItem(NXmlNode node) { // Create a tree view item for the current XML node NTreeViewItem item; switch (node.NodeType) { case ENXmlNodeType.CDATA: case ENXmlNodeType.Comment: case ENXmlNodeType.Document: item = new NTreeViewItem(node.Name); break; case ENXmlNodeType.Declaration: case ENXmlNodeType.Element: string text = node.Name; NXmlElement element = (NXmlElement)node; INIterator <NKeyValuePair <string, string> > attributesIter = element.GetAttributesIterator(); if (attributesIter != null) { // Append the element attributes StringBuilder sb = new StringBuilder(text); while (attributesIter.MoveNext()) { sb.Append(" "); sb.Append(attributesIter.Current.Key); sb.Append("=\""); sb.Append(attributesIter.Current.Value); sb.Append("\""); } text = sb.ToString(); } item = new NTreeViewItem(text); break; case ENXmlNodeType.Text: item = new NTreeViewItem("Text: \"" + ((NXmlTextNode)node).Text + "\""); break; default: throw new Exception("New ENXmlNodeType?"); } // Traverse the node's children and create a child item for each of them INIterator <NXmlNode> iter = node.GetChildNodesIterator(); if (iter != null) { while (iter.MoveNext()) { NTreeViewItem childItem = CreateTreeViewItem(iter.Current); item.Items.Add(childItem); } } // Return the created tree view item return(item); }
/// <summary> /// Creates a tree view item. /// </summary> /// <param name="text"></param> /// <param name="icon"></param> /// <returns></returns> private NTreeViewItem CreateTreeViewItem(string text, NImage icon) { NStackPanel stack = new NStackPanel(); stack.Direction = ENHVDirection.LeftToRight; stack.HorizontalSpacing = 3; if (icon != null) { NImageBox imageBox = new NImageBox(icon); imageBox.HorizontalPlacement = ENHorizontalPlacement.Center; imageBox.VerticalPlacement = ENVerticalPlacement.Center; stack.Add(imageBox); } if (!string.IsNullOrEmpty(text)) { NLabel label = new NLabel(text); label.VerticalPlacement = ENVerticalPlacement.Center; stack.Add(label); } NTreeViewItem item = new NTreeViewItem(stack); item.Margins = new NMargins(0, 5); return(item); }
private void OnTreeViewSelectedPathChanged(NValueChangeEventArgs arg) { m_DataTable.RemoveAllRows(); m_GridView.Grid.Update(); NTreeView treeView = (NTreeView)arg.CurrentTargetNode; NTreeViewItem selectedItem = treeView.SelectedItem; if (selectedItem == null) { return; } // Get the resource container and the images for the selected item NEmbeddedResourceContainer resourceContainer = GetResourceContainer(selectedItem); NList <string> images = GetImageNames(selectedItem); // Populate the stack with the images in the selected resources folder string containerType = resourceContainer.GetType().FullName; for (int i = 0; i < images.Count; i++) { string resourceName = images[i]; string imageName = resourceName.Replace("RIMG", "Image"); NImage image = NImage.FromResource(resourceContainer.GetResource(resourceName)); string imageSize = image.Width.ToString( CultureInfo.InvariantCulture) + " x " + image.Height.ToString(CultureInfo.InvariantCulture); string code = containerType + "." + imageName; m_DataTable.AddRow(image, imageName, imageSize, code); } }
private static NTreeView CreateTreeView() { NTreeView treeView = new NTreeView(); NTreeViewItem root = CreateTreeViewItem("Document"); root.Expanded = true; treeView.Items.Add(root); NTreeViewItem book1 = CreateTreeViewItem("book"); book1.Expanded = true; book1.Items.Add(CreateTreeViewItem("Author", "Gambardella, Matthew")); book1.Items.Add(CreateTreeViewItem("Title", "XML Developer's Guide")); root.Items.Add(book1); NTreeViewItem book2 = CreateTreeViewItem("book"); book2.Expanded = true; book2.Items.Add(CreateTreeViewItem("Author", "O'Brien, Tim")); book2.Items.Add(CreateTreeViewItem("Title", "MSXML3: A Comprehensive Guide")); root.Items.Add(book2); return(treeView); }
private static NTreeViewItem AddFile(NTreeViewItemCollection items, string name) { NTreeViewItem item = CreateItem(NResources.Image__16x16_Contacts_png, name); items.Add(item); return(item); }
protected override NWidget CreateExampleContent() { // Create the tree view m_TreeView = new NTreeView(); m_TreeView.HorizontalPlacement = ENHorizontalPlacement.Left; // Check whether the application is in touch mode and set the width of the tree view. bool touchMode = NApplication.Desktop.TouchMode; m_TreeView.PreferredWidth = touchMode ? 300 : 200; // Add some items for (int i = 0; i < 32; i++) { NTreeViewItem l1Item = CreateTreeViewItem(String.Format("Item {0}", i)); m_TreeView.Items.Add(l1Item); for (int j = 0; j < 8; j++) { NTreeViewItem l2Item = CreateTreeViewItem(String.Format("Item {0}.{1}", i, j)); l1Item.Items.Add(l2Item); for (int k = 0; k < 2; k++) { NTreeViewItem l3Item = CreateTreeViewItem(String.Format("Item {0}.{1}.{2}", i, j, k)); l2Item.Items.Add(l3Item); } } } // Hook to tree view events m_TreeView.SelectedPathChanged += new Function <NValueChangeEventArgs>(OnTreeViewSelectedPathChanged); return(m_TreeView); }
private NTreeViewItem CreateTreeViewItem(string text) { NTreeViewItem item = new NTreeViewItem(text); item.Tag = text; item.ExpandedChanged += new Function <NValueChangeEventArgs>(OnTreeViewItemExpandedChanged); return(item); }
private static NTreeViewItem GetFirstExampleItem(NTreeViewItem item) { while (item.Tag is NXmlElement == false) { item = item.Items[0]; } return(item); }
private NTreeViewItem CreateTreeViewItem(NXmlElement element) { if (IsSingleExampleTile(element)) { // This is a tile with a single example, so create only the example tree view item return(CreateTreeViewItem((NXmlElement)element.GetChildAt(0))); } NImage icon; string name = element.GetAttributeValue("name"); if (String.IsNullOrEmpty(name)) { return(null); } switch (element.Name) { case "tile": case "group": case "folder": icon = NResources.Image__16x16_Folders_png; break; case "example": icon = NResources.Image__16x16_Contacts_png; break; default: return(null); } NExampleTile tile = new NExampleTile(icon, name); tile.Status = element.GetAttributeValue("status"); tile.Box2.VerticalPlacement = ENVerticalPlacement.Center; tile.Spacing = NDesign.HorizontalSpacing; NTreeViewItem item = new NTreeViewItem(tile); if (element.Name == "example") { // This is an example element item.Tag = element; if (NApplication.Platform == ENPlatform.Silverlight) { // Handle the right click event in Silverlight to show a context menu // for copying a link to the example item.MouseDown += OnTreeViewItemMouseDown; } } return(item); }
private NEmbeddedResourceContainer GetResourceContainer(NTreeViewItem item) { // Find the root item of the given item while (item.ParentItem != null) { item = item.ParentItem; } // Return the resource container represented by this root item return(m_ResourcesMap[item]); }
private void OnTreeViewSelectedPathChanged(NValueChangeEventArgs args) { UpdateButtonsState(); NTreeViewItem selectedItem = m_TreeView.SelectedItem; if (selectedItem != null) { m_EventsLog.LogEvent("Selected: " + selectedItem.Tag.ToString()); } }
private void OnRemoveSelectedButtonClicked(NEventArgs args) { NTreeViewItem selectedItem = m_TreeView.SelectedItem; if (selectedItem == null) { return; } selectedItem.ParentNode.RemoveChild(selectedItem); }
private static NTreeViewItem CreateItem(NImage image, string name) { NPairBox pairBox = new NPairBox(image, name); pairBox.Box2.VerticalPlacement = ENVerticalPlacement.Center; pairBox.Spacing = NDesign.HorizontalSpacing; NTreeViewItem item = new NTreeViewItem(pairBox); item.Tag = name; return(item); }
private void OnRemoveChildrenButtonClicked(NEventArgs arg1) { NTreeViewItem selectedItem = m_TreeView.SelectedItem; if (selectedItem == null) { return; } selectedItem.Items.RemoveAllChildren(); m_RemoveChildrenButton.Enabled = false; }
void OnTestsTreeViewSelectedPathChanged(NValueChangeEventArgs arg) { NTreeViewItem item = m_TestsTreeView.SelectedItem; if (item == null || item.Tag == null) { return; } m_InputTextBox.Text = item.Tag.ToString(); EvaluateFormula(); }
private static NTreeViewItem CreateTreeViewItem(string name, string value) { NTreeViewItem item = new NTreeViewItem(name); item.Tag = new NElementInfo(name); if (value != null) { item.Items.Add(new NTreeViewItem(value)); } return(item); }
private void OnTreeViewItemExpandedChanged(NValueChangeEventArgs args) { NTreeViewItem item = (NTreeViewItem)args.TargetNode; if (item.Expanded) { m_EventsLog.LogEvent("Expanded: " + item.Tag.ToString()); } else { m_EventsLog.LogEvent("Collapsed: " + item.Tag.ToString()); } }
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 CreateTreeViewItem(string text, bool hasCheckBox, bool image) { if (hasCheckBox == false && image == false) { NTreeViewItem item = new NTreeViewItem(text); item.Tag = text; return(item); } NStackPanel stack = new NStackPanel(); stack.Direction = ENHVDirection.LeftToRight; stack.HorizontalSpacing = 3; if (hasCheckBox) { NCheckBox checkBox = new NCheckBox(); checkBox.VerticalPlacement = ENVerticalPlacement.Center; stack.Add(checkBox); } if (image) { string[] imageNames = new string[] { "Calendar", "Contacts", "Folders", "Journal", "Mail", "Notes", "Shortcuts", "Tasks" }; int index = m_Random.Next(imageNames.Length); string imageName = imageNames[index]; NImage icon = new NImage(new NEmbeddedResourceRef(NResources.Instance, "RIMG__16x16_" + imageName + "_png")); NImageBox imageBox = new NImageBox(icon); imageBox.HorizontalPlacement = ENHorizontalPlacement.Center; imageBox.VerticalPlacement = ENVerticalPlacement.Center; stack.Add(imageBox); } NLabel label = new NLabel(text); label.VerticalPlacement = ENVerticalPlacement.Center; stack.Add(label); NTreeViewItem treeViewItem = new NTreeViewItem(stack); treeViewItem.Tag = text; treeViewItem.ExpandedChanged += new Function <NValueChangeEventArgs>(OnTreeViewItemExpandedChanged); return(treeViewItem); }
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 void OnTreeViewSelectedPathChanged(NValueChangeEventArgs arg) { // Close the old example CloseExample(); // Load the new example NTreeViewItem selectedItem = ((NTreeView)arg.TargetNode).SelectedItem; if (selectedItem != null) { NXmlElement element = selectedItem.Tag as NXmlElement; if (element != null) { LoadExample(element); } } }
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])); }