Author: scabanovich
Date: 2009-06-09 09:49:35 -0400 (Tue, 09 Jun 2009)
New Revision: 15816
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/action/impl/DefaultWizardDataValidator.java
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/action/impl/handlers/DefaultCreateHandler.java
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/engines/impl/EnginesLoader.java
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/filesystems/impl/AbstractExtendedXMLFileImpl.java
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/impl/RegularObjectImpl.java
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/EclipseResourceUtil.java
Log:
https://jira.jboss.org/jira/browse/ JBIDE-4393
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/action/impl/DefaultWizardDataValidator.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/action/impl/DefaultWizardDataValidator.java 2009-06-09
12:31:48 UTC (rev 15815)
+++
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/action/impl/DefaultWizardDataValidator.java 2009-06-09
13:49:35 UTC (rev 15816)
@@ -114,7 +114,9 @@
protected boolean checkChild(XModelObject parent, String entity, Properties data) {
XModelObject o = support.getTarget().getModel().createModelObject(entity, data);
- if(o.getModelEntity().getAttribute(XModelObjectLoaderUtil.ATTR_ID_NAME) != null) return
true;
+ if(o.getModelEntity().getAttribute(XModelObjectLoaderUtil.ATTR_ID_NAME) != null
+ &&
!"true".equals(o.getModelEntity().getProperty("unique"))) return
true;
+ System.out.println(o.getModelEntity().getProperty("unique") + ":" +
o.getPathPart());
if(o != null && parent == support.getTarget().getParent() &&
o.getPathPart().equals(support.getTarget().getPathPart())) return true;
if(o != null) message = DefaultCreateHandler.getContainsMessage(parent, o);
return message == null;
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/action/impl/handlers/DefaultCreateHandler.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/action/impl/handlers/DefaultCreateHandler.java 2009-06-09
12:31:48 UTC (rev 15815)
+++
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/action/impl/handlers/DefaultCreateHandler.java 2009-06-09
13:49:35 UTC (rev 15816)
@@ -145,12 +145,20 @@
public static void addCreatedObject(XModelObject parent, XModelObject child,
Properties whereSelect) throws XModelException {
addCreatedObject(parent, child, true, whereSelect);
}
-
+
public static String getContainsMessage(XModelObject parent, XModelObject child) {
+ return getContainsMessage(parent, child, true);
+ }
+
+ private static String getContainsMessage(XModelObject parent, XModelObject child,
boolean forceUnique) {
String pathpart = child.getPathPart();
XModelObject e = parent.getChildByPath(pathpart);
if(e != null && e != parent && e != parent.getParent()) {
- if(child.getModelEntity().getAttribute(XModelObjectLoaderUtil.ATTR_ID_NAME) != null)
return null;
+ if(child.getModelEntity().getAttribute(XModelObjectLoaderUtil.ATTR_ID_NAME) != null)
{
+ if(!forceUnique ||
!"true".equals(child.getModelEntity().getProperty("unique"))) {
+ return null;
+ }
+ }
String tp = title(parent, true), tc = title(child, false), te = title(e, false);
String mes = (tc.equals(te))
? bundle.getMessage("model", "CONTAINS_OBJECT_1",
@@ -172,7 +180,7 @@
public static void addCreatedObject(XModelObject parent, final XModelObject child,
boolean registerundo, final int whereSelect) throws XModelException {
if(child == null) throw new
XModelException(getMessageById("OBJECT_CREATION_FAILURE"));
- String mes = getContainsMessage(parent, child);
+ String mes = getContainsMessage(parent, child, false);
if(mes != null) throw new XModelException(mes);
String ce = child.getModelEntity().getName();
XChild c = parent.getModelEntity().getChild(ce);
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/engines/impl/EnginesLoader.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/engines/impl/EnginesLoader.java 2009-06-09
12:31:48 UTC (rev 15815)
+++
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/engines/impl/EnginesLoader.java 2009-06-09
13:49:35 UTC (rev 15816)
@@ -84,10 +84,17 @@
c = findAppropriateChild(set, cs[i], map);
if(c == null) {
c = cs[i].copy();
+ object.addChild(c);
} else {
- merge(c, cs[i], fire);
+ boolean has_id =
c.getModelEntity().getAttribute(XModelObjectLoaderUtil.ATTR_ID_NAME) != null;
+ if(has_id) {
+ c.removeFromParent();
+ EnginesLoader.merge(c, cs[i], false);
+ object.addChild(c);
+ } else {
+ EnginesLoader.merge(c, cs[i], fire);
+ }
}
- object.addChild(c);
} else
if(c.getModelEntity().getName().equals(cs[i].getModelEntity().getName())) {
merge(c, cs[i], fire);
} else {
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/filesystems/impl/AbstractExtendedXMLFileImpl.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/filesystems/impl/AbstractExtendedXMLFileImpl.java 2009-06-09
12:31:48 UTC (rev 15815)
+++
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/filesystems/impl/AbstractExtendedXMLFileImpl.java 2009-06-09
13:49:35 UTC (rev 15816)
@@ -291,7 +291,14 @@
c = cs[i].copy();
addChild(c);
} else {
- EnginesLoader.merge(c, cs[i], fire);
+ boolean has_id =
c.getModelEntity().getAttribute(XModelObjectLoaderUtil.ATTR_ID_NAME) != null;
+ if(has_id) {
+ c.removeFromParent();
+ EnginesLoader.merge(c, cs[i], false);
+ addChild(c);
+ } else {
+ EnginesLoader.merge(c, cs[i], fire);
+ }
}
} else
if(c.getModelEntity().getName().equals(cs[i].getModelEntity().getName())) {
EnginesLoader.merge(c, cs[i], fire);
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/impl/RegularObjectImpl.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/impl/RegularObjectImpl.java 2009-06-09
12:31:48 UTC (rev 15815)
+++
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/impl/RegularObjectImpl.java 2009-06-09
13:49:35 UTC (rev 15816)
@@ -14,6 +14,7 @@
import org.jboss.tools.common.model.*;
import org.jboss.tools.common.meta.*;
import org.jboss.tools.common.model.event.XModelTreeEvent;
+import org.jboss.tools.common.model.util.XModelObjectLoaderUtil;
public class RegularObjectImpl extends XModelObjectImpl implements XOrderedObject {
private static final long serialVersionUID = 7942041044569562286L;
@@ -106,8 +107,19 @@
RegularObjectImpl p = (RegularObjectImpl)po;
XModelObject c = p.children.change(this, opp, npp);
if(c != null) {
- if(ov == null) properties.remove(name); else super.set(name, ov);
- elementExists(c, name, value);
+ if(getModelEntity().getAttribute(XModelObjectLoaderUtil.ATTR_ID_NAME) != null)
{
+ int k = 1;
+ while(c != null) {
+ super.set(XModelObjectLoaderUtil.ATTR_ID_NAME, "" + k);
+ npp = getPathPart();
+ c = p.children.change(this, opp, npp);
+ k++;
+ }
+ return;
+ } else {
+ if(ov == null) properties.remove(name); else super.set(name, ov);
+ elementExists(c, name, value);
+ }
}
}
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/EclipseResourceUtil.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/EclipseResourceUtil.java 2009-06-09
12:31:48 UTC (rev 15815)
+++
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/EclipseResourceUtil.java 2009-06-09
13:49:35 UTC (rev 15816)
@@ -210,16 +210,21 @@
}
return false;
}
-
+ static int count = 0;
public static IModelNature getModelNature(IProject p) {
if(p == null || !p.isOpen()) return null;
String[] natures = getModelNatureNames();
for (int i = 0; i < natures.length; i++) {
try {
if(p.hasNature(natures[i])) {
+ long t1 = System.currentTimeMillis();
+ count++;
if(!ModelNature.checkModelNature(p, natures[i])) {
continue;
}
+ long dt = System.currentTimeMillis() - t1;
+ count += (int)dt;
+// System.out.println("--->" + count);
IModelNature n = (IModelNature)p.getNature(natures[i]);
if(n == null) return null;
n = testNature(n);