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; }
private void OnNumericUpDownValueChanged(NValueChangeEventArgs args) { if (m_Table == null) { return; } double width = m_CanvasWidthUpDown.Value; double height = m_CanvasHeightUpDown.Value; // Recreate all graphics paths NGraphicsPath[] paths = CreatePaths(width, height); int index = 0; // Resize the canvases INIterator <NNode> iterator = m_Table.GetSubtreeIterator(ENTreeTraversalOrder.DepthFirstPreOrder, new NInstanceOfSchemaFilter(NCanvas.NCanvasSchema)); while (iterator.MoveNext()) { NCanvas canvas = (NCanvas)iterator.Current; ((NWidget)canvas.ParentNode).PreferredWidth = width; canvas.PreferredHeight = height; canvas.Tag = paths[index++]; } }
private void OnViewResponseHeadersButtonClick(NEventArgs args) { // get the response form the button tag (see UpdateRequestListBoxItem) and display its headers object[] array = (object[])args.TargetNode.Tag; NHttpRequest request = (NHttpRequest)array[0]; NHttpResponse response = (NHttpResponse)array[1]; // create a top level window, setup as a dialog NTopLevelWindow window = NApplication.CreateTopLevelWindow(); window.SetupDialogWindow(request.Uri.ToString(), true); // create a list box for the headers NListBox listBox = new NListBox(); window.Content = listBox; // fill with header fields INIterator <NHttpHeaderField> it = response.HeaderFields.GetIterator(); while (it.MoveNext()) { listBox.Items.Add(new NListBoxItem(it.Current.ToString())); } // open the window window.Open(); }
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); }
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); }
/// <summary> /// Creates the platforms stack panel, placed in the footer. /// </summary> /// <returns></returns> private NStackPanel CreatePlatformsStack() { NStackPanel stack = new NStackPanel(); stack.Direction = ENHVDirection.LeftToRight; stack.HorizontalPlacement = ENHorizontalPlacement.Center; stack.HorizontalSpacing = IconSpacing; INIterator <NKeyValuePair <string, byte[]> > iter = EmfDecompressor.GetImageIterator(); while (iter.MoveNext()) { string name = iter.Current.Key; if (name.StartsWith("Platform", StringComparison.Ordinal)) { // Add an image box with the current metafile image NImageBox imageBox = new NImageBox(new NBytesImageSource(iter.Current.Value)); imageBox.Tag = name; int index = GetPlatformIndex(stack, name); stack.Insert(index, imageBox); } } return(stack); }
private void OnCollapseAllClicked(NEventArgs args) { INIterator <NNode> treeIterator = m_TreeView.GetSubtreeIterator(ENTreeTraversalOrder.DepthFirstPreOrder, NIsFilter <NNode, NTreeViewItem> .Instance); INIterator <NTreeViewItem> itemIterator = new NAsIterator <NNode, NTreeViewItem>(treeIterator); while (itemIterator.MoveNext()) { itemIterator.Current.Expanded = false; } }
protected override void OnPropertyValueChanged(NValueChangeData data) { base.OnPropertyValueChanged(data); if ((m_Table != null) && (data.Property == FillProperty)) { INIterator <NNode> iterator = m_Table.GetSubtreeIterator(ENTreeTraversalOrder.DepthFirstPreOrder, new NInstanceOfSchemaFilter(NCanvas.NCanvasSchema)); while (iterator.MoveNext()) { ((NCanvas)iterator.Current).InvalidateDisplay(); } } }
private void OnRemoveAttributeButtonClick(NEventArgs arg) { NTopLevelWindow dialog = NApplication.CreateTopLevelWindow(); dialog.SetupDialogWindow("Select an Attribute to Remove", false); NListBox listBox = new NListBox(); NElementInfo elementInfo = (NElementInfo)m_TreeView.SelectedItem.Tag; INIterator <NKeyValuePair <string, string> > iter = elementInfo.Attributes.GetIterator(); while (iter.MoveNext()) { listBox.Items.Add(new NListBoxItem(iter.Current.Key)); } NButtonStrip buttonStrip = new NButtonStrip(); buttonStrip.InitOKCancelButtonStrip(); NPairBox pairBox = new NPairBox(listBox, buttonStrip, ENPairBoxRelation.Box1AboveBox2); pairBox.Spacing = NDesign.VerticalSpacing; dialog.Content = pairBox; dialog.Opened += delegate(NEventArgs args) { listBox.Focus(); }; dialog.Closed += delegate(NEventArgs args) { if (dialog.Result == ENWindowResult.OK) { // Remove the selected attribute NListBoxItem selectedItem = listBox.Selection.FirstSelected; if (selectedItem != null) { string name = ((NLabel)selectedItem.Content).Text; elementInfo.Attributes.Remove(name); UpdateTreeViewItemText(m_TreeView.SelectedItem); if (elementInfo.Attributes.Count == 0) { m_RemoveAttributeButton.Enabled = false; } } } }; dialog.Open(); }
void InvalidateCanvases() { if (m_Table == null) { return; } INIterator <NNode> iterator = m_Table.GetSubtreeIterator(ENTreeTraversalOrder.DepthFirstPreOrder, new NInstanceOfSchemaFilter(NCanvas.NCanvasSchema)); while (iterator.MoveNext()) { NCanvas canvas = (NCanvas)iterator.Current; canvas.InvalidateDisplay(); } }
void OnEvaluateAllButtonClick(NEventArgs arg) { NList <string> tests = new NList <string>(); INIterator <NNode> it = m_TestsTreeView.GetSubtreeIterator(); while (it.MoveNext()) { NTreeViewItem item = it.Current as NTreeViewItem; if (item == null || item.Tag == null || !(item.Tag is string)) { continue; } tests.Add((string)item.Tag); } NStopwatch stopwatch = new NStopwatch(); stopwatch.Start(); int itcount = 10000; for (int j = 0; j < itcount; j++) { for (int i = 0; i < tests.Count; i++) { try { m_FormulaEngine.Evaluate(tests[i]); } catch (Exception ex) { m_ResultTextBox.Text = "Failed on test: " + tests[i] + ". Error was: " + ex.Message; m_InputTextBox.Text = tests[i]; return; } } } stopwatch.Stop(); int ms = stopwatch.ElapsedMilliseconds; m_ResultTextBox.Text = tests.Count + " tests performed " + itcount + " times in: " + ms + " milliseconds."; }
private void OnRadioGroupSelectedIndexChanged(NValueChangeEventArgs args) { if (m_Table == null) { return; } ENAdvancedGradientColorScheme[] predefinedGradientSchemes = NEnum.GetValues <ENAdvancedGradientColorScheme>(); INIterator <NNode> iterator = m_Table.GetSubtreeIterator(ENTreeTraversalOrder.DepthFirstPreOrder, new NInstanceOfSchemaFilter(NCanvas.NCanvasSchema)); int gradientVariant = (int)args.NewValue; int schemeIndex = 0; while (iterator.MoveNext()) { NCanvas canvas = (NCanvas)iterator.Current; canvas.Tag = NAdvancedGradientFill.Create(predefinedGradientSchemes[schemeIndex++], gradientVariant); canvas.InvalidateDisplay(); } }
private void OnColorBoxSelectedColorChanged(NValueChangeEventArgs args) { if (m_Table == null) { return; } NColor color = (NColor)args.NewValue; NColorBox colorBox = (NColorBox)args.TargetNode; NProperty property = (NProperty)colorBox.Tag; INIterator <NNode> iterator = m_Table.GetSubtreeIterator(ENTreeTraversalOrder.DepthFirstPreOrder, new NInstanceOfSchemaFilter(NCanvas.NCanvasSchema)); while (iterator.MoveNext()) { NCanvas canvas = (NCanvas)iterator.Current; ((NHatchFill)canvas.Tag).SetValue(property, color); canvas.InvalidateDisplay(); } }
private void OnSuggetsionsButtonClick(NEventArgs args) { NList <NParagraph> paragraphs = m_RichTextView.Selection.GetSelectedParagraphs(); if (paragraphs.Count == 0) { return; } NParagraph paragraph = paragraphs[0]; // Determine the current word NList <NRangeI> words = paragraph.GetWordRanges(); int index = m_RichTextView.EditingRoot.Selection.Position.InsertIndex - paragraph.Range.Begin; bool hasWord = false; NRangeI wordRange = NRangeI.Zero; for (int i = 0; i < words.Count; i++) { if (words[i].Contains(index)) { hasWord = true; wordRange = words[i]; } } if (!hasWord) { NMessageBox.Show(this.OwnerWindow, "You should click in a word first", "Warning", ENMessageBoxButtons.OK, ENMessageBoxIcon.Warning); return; } char[] word = paragraph.Text.Substring(wordRange.Begin, wordRange.GetLength() + 1).ToCharArray(); string title = "Suggestions for '" + new string(word) + "'"; string content; if (m_RichTextView.SpellChecker.IsCorrect(word, 0, word.Length - 1) == false) { INIterator <char[]> suggestions = m_RichTextView.SpellChecker.GetSuggestions(word, 0, word.Length - 1); StringBuilder sb = new StringBuilder(); while (suggestions.MoveNext()) { if (sb.Length > 0) { sb.Append("\n"); } sb.Append(suggestions.Current); } content = sb.ToString(); } else { content = "The word is correct."; } NMessageBox.Show(this.OwnerWindow, content, title, ENMessageBoxButtons.OK); }
/// <summary> /// Creates a tile. Tile elements can contain only examples. /// </summary> /// <param name="element"></param> /// <param name="categoryNamespace"></param> /// <returns></returns> private NWidget CreateTile(NXmlElement element, string categoryNamespace) { string tileTitle = element.GetAttributeValue("name"); string iconName = element.GetAttributeValue("icon"); // Get the icon for the tile NImage icon = null; if (iconName != null) { if (NApplication.IOService.DirectorySeparatorChar != '\\') { iconName = iconName.Replace('\\', NApplication.IOService.DirectorySeparatorChar); } string imageFolder = NPath.GetFullDirectoryName(iconName); if (String.IsNullOrEmpty(imageFolder)) { // The icon is in the folder for the current category imageFolder = categoryNamespace; } else { // The icon is in a folder of another category imageFolder = NPath.Normalize(NPath.Combine(categoryNamespace, imageFolder)); if (imageFolder[imageFolder.Length - 1] == NApplication.IOService.DirectorySeparatorChar) { imageFolder = imageFolder.Remove(imageFolder.Length - 1); } // Update the icon name iconName = NPath.GetFileName(iconName); } iconName = "RIMG_ExampleIcons_" + imageFolder + "_" + iconName.Replace('.', '_'); icon = new NImage(new NEmbeddedResourceRef(NResources.Instance, iconName)); } // Create and configure the tile NExampleTile tile = new NExampleTile(icon, tileTitle); tile.HorizontalPlacement = ENHorizontalPlacement.Left; tile.Status = element.GetAttributeValue("status"); tile.Tag = new NItemInfo(element); // Add the examples of the current tile to the examples map INIterator <NXmlNode> iter = element.GetChildNodesIterator(); while (iter.MoveNext()) { NXmlElement exampleElement = iter.Current as NXmlElement; if (exampleElement == null) { continue; } string examplePath = GetExamplePath(exampleElement); if (icon != null) { icon = new NImage(icon.ImageSource); } NExampleTile example = new NExampleTile(icon, examplePath); example.Status = exampleElement.GetAttributeValue("status"); example.Tag = new NItemInfo(exampleElement); if (m_ExamplesMap.Contains(examplePath) == false) { m_ExamplesMap.Add(examplePath, example); } } return(tile); }