示例#1
0
 public IGMN(Vector maxMin)
 {
     this.initialGauss = maxMin;
     this.initialGauss.Multiply(INITIAL_VARIANCE);
     cortical = new List<IGMNData>();
     xtree = new XTree<IGMNData>();
 }
		public ActionResult Diff(string sourceXml, string targetXml)
		{
			try
			{
                var doc1 = new XmlDocument();
                doc1.LoadXml(sourceXml);

                var doc2 = new XmlDocument();
                doc2.LoadXml(targetXml);

                var tree1 = new XTree(doc1);
                var tree2 = new XTree(doc2);
                XDiff.Diff(tree1, tree2);

                var writer = new XdtDiffWriter();
                var patch = writer.GetDiff(tree2);


                return Content(Beautify(patch), "text/xml");
			}
			catch (Exception e)
			{
                return ErrorXml(e.Message);
			}
		}
示例#3
0
 public override void WriteDiff(XTree tree, string file)
 {
     using (var writer = XmlWriter.Create(file, new XmlWriterSettings() { Indent = true }))
     {
         writer.WriteStartDocument();
         WriteElement(tree.Root, writer);
         writer.WriteEndDocument();
     }
 }
示例#4
0
        public void AttributeMarkedChanged()
        {
            var doc1 = new XmlDocument();
            doc1.LoadXml(@"
                <root>
                    <child1 name1='child1' type1='elem1'>child1</child1>
                    <child2 name1='child2' type1='elem2'>child2</child2>
                </root>"
            );

            // reordered xml but same values
            var doc2 = new XmlDocument();
            doc2.LoadXml(@"
                <root>
                    <child1 type1='elem1' name1='DIFFERENT'>child1</child1>
                    <child2 name1='child2' type1='elem2'>child2</child2>
                </root>"
            );

            var tree1 = new XTree(doc1);
            var tree2 = new XTree(doc2);
            XDiff.Diff(tree1, tree2);

            Assert.AreEqual(tree1.Root.Match, MatchType.Change);
            Assert.AreEqual(tree2.Root.Match, MatchType.Change);

            Assert.AreEqual(tree1.Root.Children.Length, 2);
            Assert.AreEqual(tree2.Root.Children.Length, 2);

            Assert.AreEqual(tree1.Root.Elements.Length, 2);
            Assert.AreEqual(tree2.Root.Elements.Length, 2);

            Assert.AreEqual(tree1.Root.Elements[0].Match, MatchType.Change);
            Assert.AreEqual(tree2.Root.Elements[0].Match, MatchType.Change);

            Assert.AreEqual(tree1.Root.Elements[1].Match, MatchType.Match);
            Assert.AreEqual(tree2.Root.Elements[1].Match, MatchType.Match);

            Assert.AreEqual(tree1.Root.Elements[0].Attributes.Length, 2);
            Assert.AreEqual(tree2.Root.Elements[0].Attributes.Length, 2);

            Assert.AreEqual(tree1.Root.Elements[0].Texts.Length, 1);
            Assert.AreEqual(tree2.Root.Elements[0].Texts.Length, 1);

            Assert.AreEqual(tree1.Root.Elements[0].Texts[0].Match, MatchType.Match);
            Assert.AreEqual(tree2.Root.Elements[0].Texts[0].Match, MatchType.Match);

            Assert.AreEqual(tree1.Root.Elements[0].Attributes[0].Match, MatchType.Change);
            Assert.AreEqual(tree2.Root.Elements[0].Attributes[0].Match, MatchType.Match);

            Assert.AreEqual(tree1.Root.Elements[0].Attributes[1].Match, MatchType.Match);
            Assert.AreEqual(tree2.Root.Elements[0].Attributes[1].Match, MatchType.Change);

            Assert.AreEqual(tree1.Root.Elements[0].Attributes[0].Matching, tree2.Root.Elements[0].Attributes[1]);
        }
示例#5
0
        /// <summary>
        /// Get the diff patch for the tree
        /// </summary>
        public XmlDocument GetDiff(XTree tree)
        {
            var doc = new XmlDocument();
            var root = WriteElement(tree.Root.Matching, tree.Root, doc, string.Empty);

            var attr = doc.CreateAttribute(XmlNamespace, XdtPrefix, XmlNamespaceUri);
            attr.Value = XdtNamespace;
            root.Attributes.Append(attr);

            return doc;
        }
示例#6
0
        /// <summary>
        /// Get the diff patch for the tree
        /// </summary>
        public XmlDocument GetDiff(XTree tree)
        {
            var doc  = new XmlDocument();
            var root = WriteElement(tree.Root.Matching, tree.Root, doc, string.Empty, 1);

            var attr = doc.CreateAttribute(XmlNamespace, XdtPrefix, XmlNamespaceUri);

            attr.Value = XdtNamespace;
            root.Attributes.Append(attr);

            return(doc);
        }
示例#7
0
 public override void AssignChildComponents(XComponent parent, ref List <uint> children)
 {
     if (children.Count == 1)
     {
         XTree      xparent = (XTree)parent;
         XTreeModel child   = (XTreeModel)X.Tools.GetXComponentByID(children[0]);
         if (child.GetType() == typeof(XTreeModel))
         {
             xparent.model_editor = child;
             xparent.Load(X.Content);
         }
     }
 }
示例#8
0
        protected override void InitDict()
        {
            var tree = new XTree();

            tree.LoadList += tree_LoadList;
            tree.InitTree("");
            var list = tree.OutTree();

            list.Insert(0, new item()
            {
                id = "0", name = "无"
            });
            dict.Add("dict", list);
        }
        private static List <String> CompileXmlChanges(int fileVersion, string origPath, string newPath)
        {
            XmlDocument origDoc = new XmlDocument();
            FileStream  origFs  = new FileStream(origPath, FileMode.Open);

            origDoc.Load(origFs);
            origFs.Dispose();

            XmlDocument newDoc = new XmlDocument();
            FileStream  newFs  = new FileStream(newPath, FileMode.Open);

            newDoc.Load(newFs);
            newFs.Dispose();

            var tree1 = new XTree(origDoc);
            var tree2 = new XTree(newDoc);

            XDiff.Diff(tree1, tree2);

            var res = new List <String>();

            List <string> missingFromNew = CompileXmlChangesForNode(Enumerable.Empty <string>().ToImmutableHashSet(), "", "", tree1.Root);

            if (missingFromNew.Any())
            {
                res.Add("Missing nodes:");
                res.AddRange(missingFromNew);
            }

            ImmutableHashSet <string> canIgnore =
                AddedFields.Where(kv => kv.Key >= fileVersion).SelectMany(kv => kv.Value).ToImmutableHashSet();

            List <string> extra = CompileXmlChangesForNode(canIgnore, "", "", tree2.Root);

            if (extra.Any())
            {
                res.Add("Additional nodes:");
                res.AddRange(extra);
            }

            return(res);
        }
示例#10
0
        private XmlDocument GetPatch(string sourceXml, string targetXml)
        {
            var doc1 = new XmlDocument();

            doc1.LoadXml(sourceXml);

            // reordered xml but same values
            var doc2 = new XmlDocument();

            doc2.LoadXml(targetXml);

            var tree1 = new XTree(doc1);
            var tree2 = new XTree(doc2);

            XDiff.Diff(tree1, tree2);

            var writer = new XdtDiffWriter();

            return(writer.GetDiff(tree2));
        }
示例#11
0
        public override void WriteToXML(System.Xml.XmlWriter writer, object obj)
        {
            XTree actor = (XTree)obj;

            writer.WriteStartElement("sceneitem");
            writer.WriteAttributeString("Type", actor.GetType().ToString());
            writer.WriteAttributeString("ComponentID", actor.ComponentID.ToString());
            writer.WriteAttributeString("AutoDraw", actor.AutoDraw.ToString());
            writer.WriteAttributeString("Name", actor.Name);
            writer.WriteAttributeString("DrawOrder", actor.DrawOrder.ToString());
            writer.WriteAttributeString("Immovable", actor.Immovable.ToString());
            writer.WriteAttributeString("Mass", actor.Mass.ToString());
            writer.WriteAttributeString("model_editor", actor.model_editor.ComponentID.ToString());
            writer.WriteAttributeString("Rotation", actor.Rotation.ToString());
            writer.WriteAttributeString("Translation", actor.Translation.ToString());
            writer.WriteAttributeString("Scale", actor.Scale.ToString());
            writer.WriteAttributeString("Velocity", actor.Velocity.ToString());
            writer.WriteAttributeString("CollisionEnabled", actor.CollisionEnabled.ToString());
            writer.WriteAttributeString("RenderLeaves", actor.RenderLeaves.ToString());
            writer.WriteEndElement();
        }
示例#12
0
        protected override XResp Execute()
        {
            var r = new Resp_List();

            var tree = new XTree();

            tree.LoadList += tree_LoadList;
            tree.InitTree("", 5);

            var data = tree.OutTree();

            if (!string.IsNullOrEmpty(key))
            {
                r.items = data.Where(o => o.name.Contains(key)).ToList();
            }
            else
            {
                r.items = data;
            }

            return(r);
        }
示例#13
0
    unsafe public void Create()
    {
        xc.XInitXCGUI("");
        int hWindow = XWnd.Create(0, 0, 500, 300, "xcgui", 0, 15);

        int hTree = XTree.Create(0, 0, 200, 300, hWindow);

        XTree.SetItemTemplateXML(hTree, "..\\..\\Tree_Item.xml");

        int hAdapter = XAdapterTree.Create();

        XTree.BindAdapter(hTree, hAdapter);
        XAdapterTree.AddColumn(hAdapter, "name");

        int nID = XAdapterTree.InsertItemText(hAdapter, "1", xcConst.XC_ID_ROOT, xcConst.XC_ID_LAST);

        XAdapterTree.InsertItemText(hAdapter, "1.1", nID, xcConst.XC_ID_LAST);

        XWnd.ShowWindow(hWindow, 5);
        xc.XRunXCGUI();
        xc.XExitXCGUI();
    }
        public void DifferentXmlTextsAreDifferent()
        {
            var doc1 = new XmlDocument();
            doc1.LoadXml(@"
                <root>
                    <child1 name1='child1' type1='elem1'>child1</child1>
                    <child2 name2='child2' type2='elem2'>child2</child2>
                </root>"
            );

            var doc2 = new XmlDocument();
            doc2.LoadXml(@"
                <root>
                    <child1 name1='child1' type1='elem1'>child1</child1>
                    <child2 name2='child2' type2='elem2'>DIFFERENT</child2>
                </root>"
            );

            var tree1 = new XTree(doc1);
            var tree2 = new XTree(doc2);

            Assert.IsFalse(Enumerable.SequenceEqual(tree1.Root.Hash, tree2.Root.Hash));
        }
示例#15
0
    void Awake()
    {
        _xTree = new XTree();
        var list = new List <IPositionComponent>(Xpoints.Count);

        foreach (var point in Xpoints)
        {
            var posComponent = new ComponentTestImpimentation(new System.Numerics.Vector3(point, 0, 0));
            list.Add(posComponent);
        }
        _xTree.GenerateTree(list);

//        _tree = new KdTree();
//        points.Add(playerPos);
//
//        var list = new List<IPositionComponent>(points.Count);
//        foreach (var point in points)
//        {
//            var posComponent = new ComponentTestImpimentation(point.ConvertToSystemNumericsVector3());
//            list.Add(posComponent);
//        }
//
//        _tree.GenerateTree(list);
    }
示例#16
0
 public abstract void WriteDiff(XTree tree, string file);
示例#17
0
        /// <summary>
        /// Write the diff / patch to the given file
        /// </summary>
        public override void WriteDiff(XTree tree, string file)
        {
            var doc = GetDiff(tree);

            doc.Save(file);
        }
示例#18
0
 /// <summary>
 /// Write the diff / patch to the given file
 /// </summary>
 public override void WriteDiff(XTree tree, string file)
 {
     var doc = GetDiff(tree);
     doc.Save(file);
 }
        private void AssertCanTransform(string sourceXml, string targetXml)
        {
            var doc1 = new XmlDocument();
            doc1.LoadXml(sourceXml);

            // reordered xml but same values
            var doc2 = new XmlDocument();
            doc2.LoadXml(targetXml);

            var tree1 = new XTree(doc1);
            var tree2 = new XTree(doc2);
            XDiff.Diff(tree1, tree2);

            var writer = new XdtDiffWriter();
            var patch = writer.GetDiff(tree2);
            var transformed = Transform(doc1, patch);

            var transformedTree = new XTree(transformed);

            Assert.IsFalse(Enumerable.SequenceEqual(tree1.Root.Hash, tree2.Root.Hash));
            Assert.IsTrue(Enumerable.SequenceEqual(transformedTree.Root.Hash, tree2.Root.Hash));
        }
示例#20
0
        /// <summary>
        /// Write the diff / patch to the given file
        /// </summary>
        public override void WriteDiff(XTree tree, string file)
        {
            var doc = GetDiff(tree);

            doc.Save(new FileStream(file, FileMode.Create));
        }
示例#21
0
        private void InitMainMenu()
        {
            try
            {
                navBarNavigate.BeginUpdate();
                navBarNavigate.PaintStyleKind = NavBarViewKind.NavigationPane;
                navBarNavigate.Groups.Clear();
                navBarNavigate.Items.Clear();

                var navBarGroupBusiness = new NavBarGroup()
                {
                    Name       = "navBarGroupBusiness",
                    Caption    = "Business",
                    GroupStyle = NavBarGroupStyle.ControlContainer,
                    SmallImage = ImageResource.menu_business_16x16,
                    LargeImage = ImageResource.menu_business_32x32
                };
                var navBarGroupSystem = new NavBarGroup()
                {
                    Name       = "navBarGroupSystem",
                    Caption    = "System",
                    SmallImage = ImageResource.menu_system_16x16,
                    LargeImage = ImageResource.menu_system_32x32
                };

                navBarNavigate.OptionsNavPane.ShowExpandButton = false;
                //navBarNavigate.Groups.AddRange(new NavBarGroup[] { navBarGroupBusiness, navBarGroupAnalysis, navBarGroupSystem });
                navBarNavigate.Groups.AddRange(new NavBarGroup[] { navBarGroupBusiness, navBarGroupSystem });
                navBarGroupBusiness.ControlContainer = new NavBarGroupControlContainer();

                mainMenu = new XTree()
                {
                    Name = "mainMenu", Dock = DockStyle.Fill
                };
                if (mainMenu != null)
                {
                    navBarGroupBusiness.ControlContainer.Controls.Add(mainMenu);

                    mainMenu.OptionsBehavior.PopulateServiceColumns = true;
                    mainMenu.OptionsBehavior.AllowExpandOnDblClick  = true;
                    mainMenu.OptionsView.ShowColumns             = false;
                    mainMenu.OptionsView.ShowIndicator           = false;
                    mainMenu.OptionsView.ShowHorzLines           = false;
                    mainMenu.OptionsView.ShowVertLines           = false;
                    mainMenu.OptionsView.AutoWidth               = true;
                    mainMenu.OptionsView.EnableAppearanceEvenRow = false;
                    mainMenu.OptionsView.EnableAppearanceOddRow  = false;

                    imageCollection.Clear();
                    imageCollection.AddImage(ImageResource.tree_group_collapse_16x16);
                    imageCollection.AddImage(ImageResource.tree_group_expand_16x16);
                    imageCollection.AddImage(ImageResource.tree_item_normal3_16x16);
                    imageCollection.AddImage(ImageResource.tree_item_hot3_16x16);
                    imageCollection.AddImage(ImageResource.tree_item_not3_16x16);

                    mainMenu.StateImageList = imageCollection;

                    mainMenu.GetStateImage += delegate(object sender, GetStateImageEventArgs e)
                    {
                        if (e.Node.HasChildren)
                        {
                            if (e.Node.Expanded)
                            {
                                e.NodeImageIndex = 1;
                            }
                            else
                            {
                                e.NodeImageIndex = 0;
                            }
                        }
                        else
                        {
                            if (e.Node.GetValue("VIEW_YN").ToStringNullToEmpty().Equals("N"))
                            {
                                e.NodeImageIndex = 4;
                            }
                            else
                            {
                                if (e.Node.GetValue("BOOKMARK_YN").ToStringNullToEmpty().Equals("Y"))
                                {
                                    e.NodeImageIndex = 3;
                                }
                                else
                                {
                                    e.NodeImageIndex = 2;
                                }
                            }
                        }
                    };

                    mainMenu.GetSelectImage += delegate(object sender, GetSelectImageEventArgs e)
                    {
                        if (e.Node.HasChildren)
                        {
                            e.NodeImageIndex = 1;
                        }
                    };

                    mainMenu.MouseDoubleClick += delegate(object sender, MouseEventArgs e)
                    {
                        try
                        {
                            if (e.Button == MouseButtons.Left && e.Clicks == 2)
                            {
                                var tree = sender as XTree;
                                var info = tree.CalcHitInfo(tree.PointToClient(MousePosition));

                                if (info.HitInfoType == HitInfoType.Cell && !info.Node.HasChildren)
                                {
                                    OpenForm(new MenuData()
                                    {
                                        MENU_ID   = info.Node["MENU_ID"].ToIntegerNullToZero(),
                                        MENU_NAME = info.Node["MENU_NAME"].ToStringNullToEmpty(),
                                        CAPTION   = info.Node["MENU_NAME"].ToStringNullToEmpty(),
                                        IMAGE     = imageCollection.Images[2],
                                        ASSEMBLY  = info.Node["ASSEMBLY"].ToStringNullToEmpty(),
                                        NAMESPACE = info.Node["NAMESPACE"].ToStringNullToEmpty(),
                                        INSTANCE  = info.Node["INSTANCE"].ToStringNullToEmpty(),
                                        FORM_TYPE = info.Node["FORM_TYPE"].ToStringNullToEmpty(),
                                        VIEW_YN   = info.Node["VIEW_YN"].ToStringNullToEmpty(),
                                        EDIT_YN   = info.Node["EDIT_YN"].ToStringNullToEmpty()
                                    });
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            MsgBox.Show(ex);
                        }
                    };

                    mainMenu.MouseClick += delegate(object sender, MouseEventArgs e)
                    {
                        try
                        {
                            var tree = sender as XTree;
                            var info = tree.CalcHitInfo(tree.PointToClient(MousePosition));

                            if (e.Button == MouseButtons.Right && ModifierKeys == Keys.None && tree.State == TreeListState.Regular)
                            {
                                if (info.HitInfoType == HitInfoType.Cell && info.Node.HasChildren == false)
                                {
                                    barPopupButtonBookmark.Visibility = BarItemVisibility.Always;
                                }
                                else
                                {
                                    barPopupButtonBookmark.Visibility = BarItemVisibility.Never;
                                }
                                popupMenuOfMainMenu.ShowPopup(MousePosition);
                            }
                        }
                        catch (Exception ex)
                        {
                            MsgBox.Show(ex);
                        }
                    };

                    mainMenu.AddColumn("MENU_NAME");
                    mainMenu.AddColumn("MENU_ID", false);
                    mainMenu.AddColumn("PARENT_ID", false);
                    mainMenu.AddColumn("HIER_ID", false);
                    mainMenu.AddColumn("ASSEMBLY", false);
                    mainMenu.AddColumn("NAMESPACE", false);
                    mainMenu.AddColumn("INSTANCE", false);
                    mainMenu.AddColumn("CHILD_COUNT", false);
                    mainMenu.AddColumn("BOOKMARK_YN", false);
                    mainMenu.AddColumn("FORM_TYPE", false);
                    mainMenu.AddColumn("VIEW_YN", false);
                    mainMenu.AddColumn("EDIT_YN", false);

                    mainMenu.ParentFieldName = "PARENT_ID";
                    mainMenu.KeyFieldName    = "MENU_ID";
                    mainMenu.RootValue       = "MENU_GROUP_BIZ";

                    LoadMainMenu();
                    LoadSystemMenu();
                }

                navBarNavigate.EndUpdate();
            }
            catch (Exception ex)
            {
                MsgBox.Show(ex);
            }
        }
        private XmlDocument GetPatch(string sourceXml, string targetXml)
        {
            var doc1 = new XmlDocument();
            doc1.LoadXml(sourceXml);

            // reordered xml but same values
            var doc2 = new XmlDocument();
            doc2.LoadXml(targetXml);

            var tree1 = new XTree(doc1);
            var tree2 = new XTree(doc2);
            XDiff.Diff(tree1, tree2);

            var writer = new XdtDiffWriter();
            return writer.GetDiff(tree2);
        }
        public void IsomorphicXmlAreEqual()
        {
            var doc1 = new XmlDocument();
            doc1.LoadXml(@"
                <root>
                    <child1 name1='child1' type1='elem1'>child1</child1>
                    <child2 name2='child2' type2='elem2'>child2</child2>
                </root>"
            );

            // reordered xml but same values
            var doc2 = new XmlDocument();
            doc2.LoadXml(@"
                <root>
                    <child2 type2='elem2' name2='child2'>child2</child2>
                    <child1 type1='elem1' name1='child1'>child1</child1>
                </root>"
            );

            var tree1 = new XTree(doc1);
            var tree2 = new XTree(doc2);

            Assert.IsTrue(Enumerable.SequenceEqual(tree1.Root.Hash, tree2.Root.Hash));
        }
        public void SingleElement()
        {
            var doc1 = new XmlDocument();
            doc1.LoadXml("<root></root>");
            var tree1 = new XTree(doc1);

            Assert.AreEqual(tree1.Root.Children.Length, 0);
        }
示例#25
0
 public Form1()
 {
     InitializeComponent();
     tree = new XTree<SimpleData>();
 }
示例#26
0
 public abstract void WriteDiff(XTree tree, string file);