Author: scabanovich
Date: 2007-08-15 08:50:18 -0400 (Wed, 15 Aug 2007)
New Revision: 3140
Added:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/options/impl/DeleteGroupHandler.java
Modified:
trunk/common/plugins/org.jboss.tools.common.model/plugin.xml
trunk/common/plugins/org.jboss.tools.common.model/resources/meta/studio_page.meta
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/options/impl/SharableElementImpl.java
Log:
JBIDE-704
Modified: trunk/common/plugins/org.jboss.tools.common.model/plugin.xml
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.model/plugin.xml 2007-08-15 10:58:55 UTC
(rev 3139)
+++ trunk/common/plugins/org.jboss.tools.common.model/plugin.xml 2007-08-15 12:50:18 UTC
(rev 3140)
@@ -311,6 +311,8 @@
class="org.jboss.tools.common.model.options.impl.SharableElementImpl"/>
<xclass id="org.jboss.tools.common.model.options.impl.SharableStudioImpl"
class="org.jboss.tools.common.model.options.impl.SharableStudioImpl"/>
+ <xclass id="org.jboss.tools.common.model.options.impl.DeleteGroupHandler"
+ class="org.jboss.tools.common.model.options.impl.DeleteGroupHandler"/>
<xclass id="org.jboss.tools.common.model.project.ClassPathUpdateWizard"
class="org.jboss.tools.common.model.project.ClassPathUpdateWizard"/>
<xclass id="org.jboss.tools.common.model.project.WatcherLoader"
Modified:
trunk/common/plugins/org.jboss.tools.common.model/resources/meta/studio_page.meta
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/resources/meta/studio_page.meta 2007-08-15
10:58:55 UTC (rev 3139)
+++
trunk/common/plugins/org.jboss.tools.common.model/resources/meta/studio_page.meta 2007-08-15
12:50:18 UTC (rev 3140)
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE XModelEntityGroup PUBLIC "-//Red Hat, Inc.//DTD Meta 1.0//EN"
"meta.dtd">
+<!DOCTYPE XModelEntityGroup PUBLIC "-//Red Hat, Inc.//DTD Meta 1.0//EN"
+ "meta.dtd">
<XModelEntityGroup>
<VERSION MODULE="Model" VERSION="1.0"/>
<MAPPINGS/>
@@ -92,7 +93,7 @@
</XActionItem>
<XActionItem ICON="action.delete" displayName="Delete"
kind="list" name="DeleteActions">
<XActionItem BaseActionName="Delete"
-
HandlerClassName="org.jboss.tools.common.meta.action.impl.handlers.DefaultRemoveHandler"
+
HandlerClassName="org.jboss.tools.common.model.options.impl.DeleteGroupHandler"
ICON="action.delete" displayName="Delete"
kind="action" name="Delete"/>
</XActionItem>
<XActionItem ICON="action.empty" kind="list"
name="Properties">
@@ -210,7 +211,7 @@
</XActionItem>
<XActionItem ICON="action.delete" displayName="Delete"
kind="list" name="DeleteActions">
<XActionItem BaseActionName="Delete"
-
HandlerClassName="org.jboss.tools.common.meta.action.impl.handlers.DefaultRemoveHandler"
+
HandlerClassName="org.jboss.tools.common.model.options.impl.DeleteGroupHandler"
ICON="action.delete" displayName="Delete"
kind="action" name="Delete"/>
</XActionItem>
<XActionItem ICON="action.empty" kind="list"
name="Properties">
Added:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/options/impl/DeleteGroupHandler.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/options/impl/DeleteGroupHandler.java
(rev 0)
+++
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/options/impl/DeleteGroupHandler.java 2007-08-15
12:50:18 UTC (rev 3140)
@@ -0,0 +1,20 @@
+package org.jboss.tools.common.model.options.impl;
+
+import org.jboss.tools.common.meta.action.impl.handlers.DefaultRemoveHandler;
+import org.jboss.tools.common.model.XModelObject;
+
+public class DeleteGroupHandler extends DefaultRemoveHandler {
+
+ public DeleteGroupHandler() {}
+
+ public boolean isEnabled(XModelObject object) {
+ if(!super.isEnabled(object)) return false;
+ if(!(object instanceof SharableElementImpl)) return false;
+ SharableElementImpl e = (SharableElementImpl)object;
+ String name = e.getAttributeValue("name");
+ if(!(e.getParent() instanceof SharableElementImpl)) return false;
+ SharableElementImpl p = (SharableElementImpl)e.getParent();
+ return p.canRemoveChild(name);
+ }
+
+}
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/options/impl/SharableElementImpl.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/options/impl/SharableElementImpl.java 2007-08-15
10:58:55 UTC (rev 3139)
+++
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/options/impl/SharableElementImpl.java 2007-08-15
12:50:18 UTC (rev 3140)
@@ -134,15 +134,21 @@
}
public void removeSharableChild(String name) {
+ if(canRemoveChild(name)) {
+ children.remove(name);
+ }
+ }
+
+ public boolean canRemoveChild(String name) {
SharableElementImpl s = (SharableElementImpl)children.get(name);
- if(s == null) return;
+ if(s == null) return false;
for (int i = 0; i < LIST.length; i++) {
XScope sc = s.getXScope(LIST[i]);
if(sc.exists() &&
!XStudioLoaderPeer.instance().isScopeEditable(LIST[i]))
- return;
+ return false;
}
- children.remove(name);
+ return true;
}
public SharableElement findSharableChild(String childname) {