Author: dazarov
Date: 2008-06-27 08:09:50 -0400 (Fri, 27 Jun 2008)
New Revision: 8981
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PagesModelImpl.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1189
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PagesModelImpl.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PagesModelImpl.java 2008-06-27
12:00:03 UTC (rev 8980)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PagesModelImpl.java 2008-06-27
12:09:50 UTC (rev 8981)
@@ -291,11 +291,27 @@
public void nodeChanged(XModelTreeEvent event) {
if(getData() == null) return;
XModelObject diagramXML = (XModelObject)getData();
- if(!event.getModelObject().getPath().startsWith(diagramXML.getPath())) {
+ String newPath = event.getModelObject().getPath();
+ if(!newPath.startsWith(diagramXML.getPath())) {
return;
}
- PagesElement item = findElement(event.getInfo().toString());
+ String oldPath = event.getInfo().toString();
+
+ PagesElement item = findElement(oldPath);
if(item != null) {
+ if(!oldPath.equals(newPath)){
+ elementsByPath.remove(oldPath);
+ elementsByPath.put(newPath, item);
+ String[] keys = (String[])linksByPath.keySet().toArray(new String[0]);
+ for (int i = 0; i < keys.length; i++) {
+ if(keys[i].startsWith(oldPath + "/")) {
+ Link o = linksByPath.get(keys[i]);
+ if(o == null) continue;
+ String key = newPath + keys[i].substring(oldPath.length());
+ linksByPath.put(key, o);
+ }
+ }
+ }
item.dataChanged();
}
Link link = findLink(event.getInfo().toString());