Esempio n. 1
0
        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++];
            }
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        /// <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);
        }
Esempio n. 7
0
        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();
                }
            }
        }
Esempio n. 9
0
        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();
            }
        }
Esempio n. 11
0
        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();
            }
        }
Esempio n. 13
0
        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();
            }
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
        /// <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);
        }