Index: src/org/netbeans/modules/xml/xam/dom/AbstractDocumentComponent.java =================================================================== RCS file: /cvs/xml/xam/src/org/netbeans/modules/xml/xam/dom/Attic/AbstractDocumentComponent.java,v retrieving revision 1.1.2.26.2.1 retrieving revision 1.1.2.26 diff -c -b -r1.1.2.26.2.1 -r1.1.2.26 *** src/org/netbeans/modules/xml/xam/dom/AbstractDocumentComponent.java 13 Sep 2006 18:38:25 -0000 1.1.2.26.2.1 --- src/org/netbeans/modules/xml/xam/dom/AbstractDocumentComponent.java 10 Sep 2006 19:11:53 -0000 1.1.2.26 *************** *** 403,409 **** assert pathToRoot.get(i) instanceof Element; Element e = (Element) pathToRoot.get(i); if (current.referencesSameNode(e)) { ! current.updateReference(e, pathToRoot); if (current.getEffectiveParent() != null) { current = (AbstractDocumentComponent) current.getEffectiveParent(); } else { --- 403,409 ---- assert pathToRoot.get(i) instanceof Element; Element e = (Element) pathToRoot.get(i); if (current.referencesSameNode(e)) { ! current.updateReference(e); if (current.getEffectiveParent() != null) { current = (AbstractDocumentComponent) current.getEffectiveParent(); } else { *************** *** 413,430 **** throw new IllegalArgumentException("Expect new reference node has same Id as current"); //NOI18N } } - } - - /** - * Updates peer node with given peer and the path for context of the update. - * The default behavior just call #updateReference(Element peer). - * Subclass with special need for auxiliary update needs to override. - * - * @param peer the peer node to update with - * @param updatingPath full path for context of the update - */ - protected void updateReference(Element peer, List updatingPath) { - updateReference(peer); } private DocumentModelAccess getAccess() { --- 413,418 ---- Index: src/org/netbeans/modules/xml/xam/dom/AbstractDocumentModel.java =================================================================== RCS file: /cvs/xml/xam/src/org/netbeans/modules/xml/xam/dom/Attic/AbstractDocumentModel.java,v retrieving revision 1.1.2.23.6.1 retrieving revision 1.1.2.23 diff -c -b -r1.1.2.23.6.1 -r1.1.2.23 *** src/org/netbeans/modules/xml/xam/dom/AbstractDocumentModel.java 13 Sep 2006 18:38:25 -0000 1.1.2.23.6.1 --- src/org/netbeans/modules/xml/xam/dom/AbstractDocumentModel.java 31 Aug 2006 17:02:54 -0000 1.1.2.23 *************** *** 261,270 **** public void processSyncUnit(SyncUnit syncOrder) { AbstractDocumentComponent targetComponent = (AbstractDocumentComponent) syncOrder.getTarget(); assert targetComponent != null; - // skip target component whose some ancestor removed in previous processed syncUnit - if (! targetComponent.isInDocumentModel()) { - return; - } syncOrder.updateTargetReference(); if (syncOrder.isComponentChanged()) { --- 261,266 ---- Index: src/org/netbeans/modules/xml/xam/dom/ChangeInfo.java =================================================================== RCS file: /cvs/xml/xam/src/org/netbeans/modules/xml/xam/dom/Attic/ChangeInfo.java,v retrieving revision 1.1.2.4.10.1 retrieving revision 1.1.2.4 diff -c -b -r1.1.2.4.10.1 -r1.1.2.4 *** src/org/netbeans/modules/xml/xam/dom/ChangeInfo.java 13 Sep 2006 18:38:26 -0000 1.1.2.4.10.1 --- src/org/netbeans/modules/xml/xam/dom/ChangeInfo.java 3 Aug 2006 08:09:37 -0000 1.1.2.4 *************** *** 19,27 **** package org.netbeans.modules.xml.xam.dom; - import java.util.ArrayList; - import java.util.Collections; import java.util.List; import org.w3c.dom.Element; import org.w3c.dom.Node; --- 19,26 ---- package org.netbeans.modules.xml.xam.dom; import java.util.List; + import org.netbeans.modules.xml.xam.dom.DocumentComponent; import org.w3c.dom.Element; import org.w3c.dom.Node; *************** *** 56,66 **** public List getRootToParentPath() { return rootToParent; } - public List getParentToRootPath() { - ArrayList ret = new ArrayList(rootToParent); - Collections.reverse(ret); - return ret; - } public boolean isDomainElementAdded() { return domainElement && added; } --- 55,60 ---- *************** *** 72,83 **** } public void markParentAsChanged() { assert parent != null; changed = parent; ! ! assert rootToParent.size() > 1; ! assert parent == rootToParent.get(rootToParent.size()-1); ! rootToParent.remove(rootToParent.size()-1); ! parent = rootToParent.get(rootToParent.size()-1); } public void setParentComponent(DocumentComponent component) { parentComponent = component; --- 66,76 ---- } public void markParentAsChanged() { assert parent != null; + int i = rootToParent.indexOf(parent); changed = parent; ! if (i > 1) { ! parent = rootToParent.get(i-1); ! } } public void setParentComponent(DocumentComponent component) { parentComponent = component; Index: src/org/netbeans/modules/xml/xam/dom/SyncUnit.java =================================================================== RCS file: /cvs/xml/xam/src/org/netbeans/modules/xml/xam/dom/Attic/SyncUnit.java,v retrieving revision 1.1.2.3.10.1 retrieving revision 1.1.2.3 diff -c -b -r1.1.2.3.10.1 -r1.1.2.3 *** src/org/netbeans/modules/xml/xam/dom/SyncUnit.java 13 Sep 2006 18:38:26 -0000 1.1.2.3.10.1 --- src/org/netbeans/modules/xml/xam/dom/SyncUnit.java 7 Aug 2006 06:39:17 -0000 1.1.2.3 *************** *** 24,30 **** package org.netbeans.modules.xml.xam.dom; import java.util.ArrayList; - import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; --- 24,29 ---- *************** *** 121,127 **** public void updateTargetReference() { AbstractDocumentComponent component = (AbstractDocumentComponent) target; if (component != null) { ! component.updateReference(getParentToRootPath()); } } --- 120,127 ---- public void updateTargetReference() { AbstractDocumentComponent component = (AbstractDocumentComponent) target; if (component != null) { ! ChangeInfo change = getLastChange(); ! component.updateReference(change.getParent()); } } *************** *** 130,143 **** return changes.get(changes.size()-1); } else { return null; - } - } - - public List getParentToRootPath() { - if (getLastChange() == null) { - return Collections.emptyList(); - } else { - return getLastChange().getParentToRootPath(); } } } --- 130,135 ----