Author: scabanovich
Date: 2008-11-10 09:19:29 -0500 (Mon, 10 Nov 2008)
New Revision: 11635
Added:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/ViewIdsTree.java
Modified:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/plugin.xml
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/resources/meta/seam-pages-wizards.meta
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/resources/meta/seam-pages.meta
Log:
JBIDE-2286
Modified: trunk/seam/plugins/org.jboss.tools.seam.pages.xml/plugin.xml
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.pages.xml/plugin.xml 2008-11-10 13:13:25 UTC
(rev 11634)
+++ trunk/seam/plugins/org.jboss.tools.seam.pages.xml/plugin.xml 2008-11-10 14:19:29 UTC
(rev 11635)
@@ -94,6 +94,8 @@
<xclass
id="org.jboss.tools.seam.pages.xml.model.helpers.autolayout.SeamPagesItems"
class="org.jboss.tools.seam.pages.xml.model.helpers.autolayout.SeamPagesItems"/>
+ <xclass id="org.jboss.tools.seam.pages.xml.model.ViewIdsTree"
+ class="org.jboss.tools.seam.pages.xml.model.ViewIdsTree"/>
</extension>
<extension point="org.eclipse.wst.xml.core.catalogContributions">
Modified:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/resources/meta/seam-pages-wizards.meta
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/resources/meta/seam-pages-wizards.meta 2008-11-10
13:13:25 UTC (rev 11634)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/resources/meta/seam-pages-wizards.meta 2008-11-10
14:19:29 UTC (rev 11635)
@@ -80,8 +80,9 @@
</XModelAttribute>
<XModelAttribute PROPERTIES="category=general" name="view id"
xmlname="view-id">
<Constraint loader="Tree">
- <value name="JSFPageTree"/>
+ <value name="SeamViewIdTree"/>
<value name="extensions=jsp,html,htm,xhtml,xml"/>
+ <value name="hideRoot=true"/>
</Constraint>
<Editor name="TreeChooser"/>
</XModelAttribute>
Modified:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/resources/meta/seam-pages.meta
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/resources/meta/seam-pages.meta 2008-11-10
13:13:25 UTC (rev 11634)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/resources/meta/seam-pages.meta 2008-11-10
14:19:29 UTC (rev 11635)
@@ -15,7 +15,9 @@
<MAPPING name="FilteredTreeConstraints">
<PAIR name="FileSystems$144"
value="org.jboss.tools.seam.pages.xml.model.impl.SeamPagesFilteredTreeConstraint"/>
</MAPPING>
- <MAPPING name="FilteredTrees"/>
+ <MAPPING name="FilteredTrees">
+ <PAIR name="SeamViewIdTree"
value="org.jboss.tools.seam.pages.xml.model.ViewIdsTree"/>
+ </MAPPING>
<MAPPING name="Handlers"/>
<MAPPING name="Implementations">
<PAIR name="SeamPageTask"
value="org.jboss.tools.seam.pages.xml.model.impl.SeamPageTaskImpl"/>
@@ -3170,9 +3172,10 @@
<XModelAttribute PROPERTIES="id=true" default="target"
name="name" visibility="false"/>
<XModelAttribute PROPERTIES="category=general" name="view id"
xmlname="view-id">
<Constraint loader="Tree">
- <value name="JSFPageTree"/>
+ <value name="SeamViewIdTree"/>
<value name="extensions=jsp,html,htm,xhtml,xml"/>
<value name="linkAction=OpenPage"/>
+ <value name="hideRoot=true"/>
</Constraint>
<Editor name="TreeChooser"/>
</XModelAttribute>
@@ -3253,9 +3256,10 @@
<XModelAttribute PROPERTIES="id=true" default="target"
name="name" visibility="false"/>
<XModelAttribute PROPERTIES="category=general" name="view id"
xmlname="view-id">
<Constraint loader="Tree">
- <value name="JSFPageTree"/>
+ <value name="SeamViewIdTree"/>
<value name="extensions=jsp,html,htm,xhtml,xml"/>
<value name="linkAction=OpenPage"/>
+ <value name="hideRoot=true"/>
</Constraint>
<Editor name="TreeChooser"/>
</XModelAttribute>
@@ -3336,9 +3340,10 @@
<XModelAttribute PROPERTIES="id=true" default="target"
name="name" visibility="false"/>
<XModelAttribute PROPERTIES="category=general" name="view id"
xmlname="view-id">
<Constraint loader="Tree">
- <value name="JSFPageTree"/>
+ <value name="SeamViewIdTree"/>
<value name="extensions=jsp,html,htm,xhtml,xml"/>
<value name="linkAction=OpenPage"/>
+ <value name="hideRoot=true"/>
</Constraint>
<Editor name="TreeChooser"/>
</XModelAttribute>
@@ -3409,9 +3414,10 @@
<XModelAttribute PROPERTIES="id=true" default="target"
name="name" visibility="false"/>
<XModelAttribute PROPERTIES="category=general" name="view id"
xmlname="view-id">
<Constraint loader="Tree">
- <value name="JSFPageTree"/>
+ <value name="SeamViewIdTree"/>
<value name="extensions=jsp,html,htm,xhtml,xml"/>
<value name="linkAction=OpenPage"/>
+ <value name="hideRoot=true"/>
</Constraint>
<Editor name="TreeChooser"/>
</XModelAttribute>
Added:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/ViewIdsTree.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/ViewIdsTree.java
(rev 0)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/ViewIdsTree.java 2008-11-10
14:19:29 UTC (rev 11635)
@@ -0,0 +1,81 @@
+package org.jboss.tools.seam.pages.xml.model;
+
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.common.model.filesystems.FileSystemsHelper;
+import org.jboss.tools.jst.web.model.tree.WebPagesTree;
+import org.jboss.tools.seam.pages.xml.model.helpers.SeamPagesDiagramStructureHelper;
+
+public class ViewIdsTree extends WebPagesTree {
+ Map<String, XModelObject> pageMap;
+ XModelObject root;
+ XModelObject webRoot;
+ XModelObject pages;
+
+ public void setConstraint(Object object) {
+ super.setConstraint(object);
+
+ Object[] os = (Object[])object;
+ XModelObject c = (XModelObject)os[1];
+
+ root = FileSystemsHelper.getFileSystems(c.getModel());
+ webRoot = FileSystemsHelper.getWebRoot(c.getModel());
+
+ XModelObject f = SeamPagesDiagramStructureHelper.getInstance().getParentFile(c);
+ pages = f.getChildByPath("Pages");
+ XModelObject[] ps = pages.getChildren();
+
+ pageMap = new TreeMap<String, XModelObject>();
+
+ for (int i = 0; i < ps.length; i++) {
+ String viewId = ps[i].getAttributeValue(SeamPagesConstants.ATTR_VIEW_ID);
+ if(viewId == null || viewId.length() == 0 || viewId.indexOf('*') >=
0) continue;
+ pageMap.put(viewId, ps[i]);
+ }
+ }
+
+ public XModelObject getRoot() {
+ return root;
+ }
+
+ public XModelObject[] getChildren(XModelObject object) {
+ if(object == root) return new XModelObject[]{webRoot, pages};
+ if(object == pages) return pageMap.values().toArray(new XModelObject[0]);
+ return super.getChildren(object);
+ }
+
+ public String getValue(XModelObject object) {
+ if(isLocalPage(object)) {
+ return object.getAttributeValue(SeamPagesConstants.ATTR_VIEW_ID);
+ }
+ return super.getValue(object);
+ }
+
+ public XModelObject find(String value) {
+ if(value != null && pageMap.containsKey(value)) {
+ return pageMap.get(value);
+ }
+ return super.find(value);
+ }
+
+ public boolean isSelectable(XModelObject object) {
+ if(isLocalPage(object)) {
+ return true;
+ }
+ return super.isSelectable(object);
+ }
+
+ public boolean hasChildren(XModelObject object) {
+ if(isLocalPage(object)) {
+ return false;
+ }
+ return super.hasChildren(object);
+ }
+
+ private boolean isLocalPage(XModelObject object) {
+ return (object != null && object.getParent() == pages);
+ }
+
+}
Show replies by date