Exemple #1
0
        private void expandReferences()
        {
            foreach (IXsdNode node in GetAllNodes())
            {
                if (node is IXsdHasAttribute)
                {
                    ICollection <XsdAttribute> col = ((IXsdHasAttribute)node).GetAttributes();
                    foreach (XsdAttribute xsdAttribute in col)
                    {
                        if (xsdAttribute.TypeTarget == null)
                        {
                            xsdAttribute.TypeTarget = getNodeByName(xsdAttribute.TypeName);
                        }
                    }
                }

                IXsdHasRef refable = node as IXsdHasRef;
                if (refable != null && refable.RefTarget == null)
                {
                    refable.RefTarget = getNodeByName(refable.RefName);
                }
                IXsdHasType typeable = node as IXsdHasType;
                if (typeable != null && typeable.TypeTarget == null)
                {
                    typeable.TypeTarget = getNodeByName(typeable.TypeName);
                }
                XsdExtension extension = node as XsdExtension;
                if (extension != null && extension.BaseTarget == null)
                {
                    extension.BaseTarget = getNodeByName(extension.Base);
                }
            }
        }
        private void getChildNames(IXsdNode node, ICollection <XsdElement> result)
        {
            var kids = node.GetChildren();

            foreach (IXsdNode xsdNode in kids)
            {
                if (xsdNode is XsdElement)
                {
                    result.Add((XsdElement)xsdNode);
                }
                else if (xsdNode is XsdAllSequenceChoice)
                {
                    XsdAllSequenceChoice list = (XsdAllSequenceChoice)xsdNode;
                    getChildNames(list, result);
                }
            }

            if ((node as IXsdHasType)?.TypeTarget != null)
            {
                IXsdHasType n = (IXsdHasType)node;
                getChildNames(n.TypeTarget, result);
            }
            if ((node as IXsdHasRef)?.RefTarget != null)
            {
                IXsdHasRef n = (IXsdHasRef)node;
                getChildNames(n.RefTarget, result);
            }
        }
Exemple #3
0
        protected static void addMouseEvents(XsdVisualizer.PaintOptions po, FrameworkElement pnl, IXsdNode node)
        {
            pnl.MouseDown += (sender, args) =>
            {
                if (args.ClickCount == 2)
                {
                    IXsdNode xsdNode = node;
                    if (xsdNode is IXsdHasRef)
                    {
                        IXsdHasRef refer = (IXsdHasRef)xsdNode;
                        if (refer.RefTarget != null)
                        {
                            po.Visualizer.SetRoot(refer.RefTarget);
                            return;
                        }
                    }

                    po.Visualizer.SetRoot(xsdNode);
                }
                args.Handled = true;
            };
            pnl.MouseMove += (sender, args) =>
            {
                po.Visualizer.SetDescription(node);
                args.Handled = true;
            };

            ContextMenu mainMenu = new ContextMenu();

            mainMenu.Items.Add(new MenuItem {
                Header = node.ToString(), IsEnabled = false
            });
            MenuItem item1 = new MenuItem {
                Header = "Hide"
            };

            item1.Click += (e, args) =>
            {
                po.Visualizer.IgnoreNodes.Add(node);
                po.Visualizer.Refresh();
            };
            mainMenu.Items.Add(item1);

            pnl.ContextMenu = mainMenu;
        }