Author: scabanovich
Date: 2008-05-27 08:57:39 -0400 (Tue, 27 May 2008)
New Revision: 8371
Modified:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/resources/meta/seam-pages.meta
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPagesConstants.java
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPagesLoaderUtil.java
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/SeamPagesProcessHelper.java
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/impl/ReferenceObjectImpl.java
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/impl/SeamPageNavigationImpl.java
Log:
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-05-27
11:59:02 UTC (rev 8370)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/resources/meta/seam-pages.meta 2008-05-27
12:57:39 UTC (rev 8371)
@@ -674,6 +674,7 @@
<XChildEntity name="SeamPageIn"/>
<XChildEntity name="SeamPageAction"/>
<XChildEntity name="SeamPageNavigation12"/>
+ <XChildEntity name="SeamPageNavigationRule12"/>
</XChildrenEntities>
<XEntityRenderer>
<ICONS>
@@ -786,6 +787,7 @@
<XChildEntity maxCount="1" name="SeamPageRaiseEvent20"/>
<XChildEntity name="SeamPageAction"/>
<XChildEntity name="SeamPageNavigation20"/>
+ <XChildEntity name="SeamPageNavigationRule20"/>
</XChildrenEntities>
<XEntityRenderer>
<ICONS>
@@ -1747,6 +1749,124 @@
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData;children=%EntityOrdered%"
XMLSUBPATH="navigation" name="SeamPageNavigation12">
<XChildrenEntities>
+ <XChildEntity name="SeamPageRule12"/>
+ </XChildrenEntities>
+ <XEntityRenderer>
+ <ICONS>
+ <ICON info="main.seam-pages.rule" type="main"/>
+ </ICONS>
+ </XEntityRenderer>
+ <XModelAttributes>
+ <XModelAttribute default="navigation" loader="ElementType"
name="element type">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute PROPERTIES="id=true;category=general"
+ name="from action" xmlname="from-action"/>
+ <XModelAttribute PROPERTIES="category=general" name="evaluate"
xmlname="evaluate"/>
+ <XModelAttribute TRIM="no" name="comment"
visibility="false" xmlname="#comment">
+ <Editor name="Note"/>
+ </XModelAttribute>
+ <XModelAttribute PROPERTIES="id=true;generate=true" name="_id_"
visibility="false"/>
+ </XModelAttributes>
+ <XActionItem kind="list">
+ <XActionItem kind="list" name="CreateActions">
+ <XActionItem HandlerClassName="%Create%" ICON="action.empty"
+ PROPERTIES="validator.add=true" WizardClassName="%Default%"
+ displayName="Add Rule..." kind="action"
name="AddRule">
+ <EntityData EntityName="SeamPageRule12">
+ <AttributeData AttributeName="if outcome"
Mandatory="no"/>
+ <AttributeData AttributeName="if" Mandatory="no"/>
+ </EntityData>
+ </XActionItem>
+ </XActionItem>
+ <XActionItem ICON="action.empty" displayName="Create"
kind="list" name="EditActions"/>
+ <XActionItem ICON="action.copy" displayName="Copy"
kind="list" name="CopyActions">
+ <XActionItem BaseActionName="Copy" HandlerClassName="%Copy%"
+ ICON="action.copy" displayName="Copy" kind="action"
name="Copy"/>
+ <XActionItem BaseActionName="Cut" HandlerClassName="%Cut%"
+ ICON="action.cut" displayName="Cut" kind="action"
name="Cut"/>
+ <XActionItem BaseActionName="Paste"
HandlerClassName="%Paste%"
+ ICON="action.paste" displayName="Paste" kind="action"
name="Paste"/>
+ </XActionItem>
+ <XActionItem ICON="action.delete" displayName="Delete"
kind="list" name="DeleteActions">
+ <XActionItem BaseActionName="Delete"
HandlerClassName="%Delete%"
+ ICON="action.delete" displayName="Delete"
kind="action" name="Delete"/>
+ </XActionItem>
+ <XActionItem ICON="action.empty" kind="list"
name="Properties">
+ <XActionItem HandlerClassName="%Properties%"
ICON="action.empty"
+ displayName="Properties..." kind="action"
name="Properties"/>
+ </XActionItem>
+ <XActionItem displayName="move" kind="list"
name="MoveActions">
+ <XActionItem HIDE="always" HandlerClassName="%Move%"
+ ICON="action.move" displayName="Move" kind="action"
name="Move"/>
+ </XActionItem>
+ </XActionItem>
+ <XDependencies/>
+ </XModelEntity>
+ <XModelEntity
+
ImplementingClass="org.jboss.tools.seam.pages.xml.model.impl.SeamPageNavigationImpl"
+
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData;children=%EntityOrdered%"
+ XMLSUBPATH="navigation" name="SeamPageNavigation20">
+ <XChildrenEntities>
+ <XChildEntity name="SeamPageRule20"/>
+ </XChildrenEntities>
+ <XEntityRenderer>
+ <ICONS>
+ <ICON info="main.seam-pages.rule" type="main"/>
+ </ICONS>
+ </XEntityRenderer>
+ <XModelAttributes>
+ <XModelAttribute default="navigation" loader="ElementType"
name="element type">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute PROPERTIES="id=true;category=general"
+ name="from action" xmlname="from-action"/>
+ <XModelAttribute PROPERTIES="category=general" name="evaluate"
xmlname="evaluate"/>
+ <XModelAttribute TRIM="no" name="comment"
visibility="false" xmlname="#comment">
+ <Editor name="Note"/>
+ </XModelAttribute>
+ <XModelAttribute PROPERTIES="id=true;generate=true" name="_id_"
visibility="false"/>
+ </XModelAttributes>
+ <XActionItem kind="list">
+ <XActionItem kind="list" name="CreateActions">
+ <XActionItem HandlerClassName="%Create%" ICON="action.empty"
+ PROPERTIES="validator.add=true" WizardClassName="%Default%"
+ displayName="Add Rule..." kind="action"
name="AddRule">
+ <EntityData EntityName="SeamPageRule20">
+ <AttributeData AttributeName="if outcome"
Mandatory="no"/>
+ <AttributeData AttributeName="if" Mandatory="no"/>
+ </EntityData>
+ </XActionItem>
+ </XActionItem>
+ <XActionItem ICON="action.empty" displayName="Create"
kind="list" name="EditActions"/>
+ <XActionItem ICON="action.copy" displayName="Copy"
kind="list" name="CopyActions">
+ <XActionItem BaseActionName="Copy" HandlerClassName="%Copy%"
+ ICON="action.copy" displayName="Copy" kind="action"
name="Copy"/>
+ <XActionItem BaseActionName="Cut" HandlerClassName="%Cut%"
+ ICON="action.cut" displayName="Cut" kind="action"
name="Cut"/>
+ <XActionItem BaseActionName="Paste"
HandlerClassName="%Paste%"
+ ICON="action.paste" displayName="Paste" kind="action"
name="Paste"/>
+ </XActionItem>
+ <XActionItem ICON="action.delete" displayName="Delete"
kind="list" name="DeleteActions">
+ <XActionItem BaseActionName="Delete"
HandlerClassName="%Delete%"
+ ICON="action.delete" displayName="Delete"
kind="action" name="Delete"/>
+ </XActionItem>
+ <XActionItem ICON="action.empty" kind="list"
name="Properties">
+ <XActionItem HandlerClassName="%Properties%"
ICON="action.empty"
+ displayName="Properties..." kind="action"
name="Properties"/>
+ </XActionItem>
+ <XActionItem displayName="move" kind="list"
name="MoveActions">
+ <XActionItem HIDE="always" HandlerClassName="%Move%"
+ ICON="action.move" displayName="Move" kind="action"
name="Move"/>
+ </XActionItem>
+ </XActionItem>
+ <XDependencies/>
+ </XModelEntity>
+ <XModelEntity
+
ImplementingClass="org.jboss.tools.seam.pages.xml.model.impl.SeamPageNavigationImpl"
+
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData;children=%EntityOrdered%"
+ XMLSUBPATH="navigation" name="SeamPageNavigationRule12">
+ <XChildrenEntities>
<XChildEntity maxCount="1"
name="SeamPageBeginConversation"/>
<XChildEntity maxCount="1" name="SeamPageEndConversation"/>
<XChildEntity maxCount="1" name="SeamPageStartTask"/>
@@ -1757,7 +1877,6 @@
<XChildEntity name="SeamPageOut"/>
<XChildEntity maxCount="1" name="SeamPageRender"/>
<XChildEntity maxCount="1" name="SeamPageRedirect12"/>
- <XChildEntity name="SeamPageRule12"/>
</XChildrenEntities>
<XEntityRenderer>
<ICONS>
@@ -1774,6 +1893,7 @@
<XModelAttribute TRIM="no" name="comment"
visibility="false" xmlname="#comment">
<Editor name="Note"/>
</XModelAttribute>
+ <XModelAttribute PROPERTIES="id=true;generate=true" name="_id_"
visibility="false"/>
</XModelAttributes>
<XActionItem kind="list">
<XActionItem kind="list" name="CreateActions">
@@ -1786,14 +1906,6 @@
<AttributeData AttributeName="value"/>
</EntityData>
</XActionItem>
- <XActionItem HandlerClassName="%Create%" ICON="action.empty"
- PROPERTIES="validator.add=true" WizardClassName="%Default%"
- displayName="Add Rule..." kind="action"
name="AddRule">
- <EntityData EntityName="SeamPageRule12">
- <AttributeData AttributeName="if outcome"
Mandatory="no"/>
- <AttributeData AttributeName="if" Mandatory="no"/>
- </EntityData>
- </XActionItem>
</XActionItem>
<XActionItem ICON="action.empty" displayName="Create"
kind="list" name="EditActions"/>
<XActionItem ICON="action.copy" displayName="Copy"
kind="list" name="CopyActions">
@@ -1822,7 +1934,7 @@
<XModelEntity
ImplementingClass="org.jboss.tools.seam.pages.xml.model.impl.SeamPageNavigationImpl"
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData;children=%EntityOrdered%"
- XMLSUBPATH="navigation" name="SeamPageNavigation20">
+ XMLSUBPATH="navigation" name="SeamPageNavigationRule20">
<XChildrenEntities>
<XChildEntity maxCount="1"
name="SeamPageBeginConversation"/>
<XChildEntity maxCount="1" name="SeamPageEndConversation"/>
@@ -1835,7 +1947,6 @@
<XChildEntity maxCount="1" name="SeamPageRaiseEvent20"/>
<XChildEntity maxCount="1" name="SeamPageRender"/>
<XChildEntity maxCount="1" name="SeamPageRedirect20"/>
- <XChildEntity name="SeamPageRule20"/>
</XChildrenEntities>
<XEntityRenderer>
<ICONS>
@@ -1852,6 +1963,7 @@
<XModelAttribute TRIM="no" name="comment"
visibility="false" xmlname="#comment">
<Editor name="Note"/>
</XModelAttribute>
+ <XModelAttribute PROPERTIES="id=true;generate=true" name="_id_"
visibility="false"/>
</XModelAttributes>
<XActionItem kind="list">
<XActionItem kind="list" name="CreateActions">
Modified:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPagesConstants.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPagesConstants.java 2008-05-27
11:59:02 UTC (rev 8370)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPagesConstants.java 2008-05-27
12:57:39 UTC (rev 8371)
@@ -19,26 +19,36 @@
public String SUFF_20 = "20"; //$NON-NLS-1$
public String ENT_FILE_SEAM_PAGES = "FileSeamPages"; //$NON-NLS-1$
public String ENT_FILE_SEAM_PAGES_12 = ENT_FILE_SEAM_PAGES + SUFF_12;
- public String ENT_FILE_SEAM_PAGE_12 = "FileSeamPage" + SUFF_12;
+ public String ENT_FILE_SEAM_PAGE = "FileSeamPage";
+ public String ENT_FILE_SEAM_PAGE_12 = ENT_FILE_SEAM_PAGE + SUFF_12;
public String ENT_FILE_SEAM_PAGES_20 = ENT_FILE_SEAM_PAGES + SUFF_20;
- public String ENT_FILE_SEAM_PAGE_20 = "FileSeamPage" + SUFF_20;
//$NON-NLS-1$
+ public String ENT_FILE_SEAM_PAGE_20 = ENT_FILE_SEAM_PAGE + SUFF_20; //$NON-NLS-1$
public String ENT_SEAM_PAGE = "SeamPage"; //$NON-NLS-1$
public String ENT_SEAM_PAGE_12 = ENT_SEAM_PAGE + SUFF_12;
public String ENT_SEAM_PAGE_20 = ENT_SEAM_PAGE + SUFF_20;
+ public String ENT_NAVIGATION = "SeamPageNavigation";
+ public String ENT_NAVIGATION_RULE = "SeamPageNavigationRule";
+
public String ATTR_NAME = "name"; //$NON-NLS-1$
+ public String ATTR_PATH = "path"; //$NON-NLS-1$
public String ATTR_VALUE = "value"; //$NON-NLS-1$
+ public String ATTR_TYPE = "type"; //$NON-NLS-1$
+
+ public String ATTR_VIEW_ID = "view id"; //$NON-NLS-1$
- public String FOLDER_CONVERSATIONS = "Conversations";
- public String FOLDER_PAGES = "Pages";
- public String FOLDER_EXCEPTIONS = "Exceptions";
+ public String FOLDER_CONVERSATIONS = "Conversations"; //$NON-NLS-1$
+ public String FOLDER_PAGES = "Pages"; //$NON-NLS-1$
+ public String FOLDER_EXCEPTIONS = "Exceptions"; //$NON-NLS-1$
- public String ELM_PROCESS = "process";
+ public String ELM_PROCESS = "process"; //$NON-NLS-1$
+ public String ENT_PROCESS = "SeamPagesProcess"; //$NON-NLS-1$
+ public String ENT_PROCESS_ITEM = "SeamPagesProcessItem"; //$NON-NLS-1$
+ public String ENT_PROCESS_ITEM_OUTPUT = "SeamPagesProcessItemOutput";
//$NON-NLS-1$
+ public String TYPE_PAGE = "page"; //$NON-NLS-1$
+ public String TYPE_EXCEPTION = "exception"; //$NON-NLS-1$
+ public String SUBTYPE_UNKNOWN = "unknown"; //$NON-NLS-1$
- public String TYPE_PAGE = "page";
- public String TYPE_EXCEPTION = "exception";
- public String SUBTYPE_UNKNOWN = "unknown";
-
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPagesLoaderUtil.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPagesLoaderUtil.java 2008-05-27
11:59:02 UTC (rev 8370)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPagesLoaderUtil.java 2008-05-27
12:57:39 UTC (rev 8371)
@@ -102,6 +102,31 @@
protected String getChildEntity(XModelEntity entity, Element e) {
String n = e.getNodeName();
+ if("page".equals(entity.getXMLSubPath())) {
+ String suff = (entity.getName().endsWith(SUFF_12))
+ ? SUFF_12
+ : (entity.getName().endsWith(SUFF_20))
+ ? SUFF_20
+ : null;
+ if(suff == null) {
+ System.out.println("Unknown suffix in seam page entity " +
entity.getName());
+ suff = SUFF_20;
+ }
+ if("navigation".equals(n)) {
+ NodeList nl = e.getChildNodes();
+ for (int i = 0; i < nl.getLength(); i++) {
+ Node ni = nl.item(i);
+ if(ni.getNodeType() == Node.ELEMENT_NODE) {
+ if(ni.getNodeName().equals("rule")) {
+ return ENT_NAVIGATION + suff;
+ } else {
+ return ENT_NAVIGATION_RULE + suff;
+ }
+ }
+ }
+ return ENT_NAVIGATION + suff;
+ }
+ }
return super.getChildEntity(entity, e);
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/SeamPagesProcessHelper.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/SeamPagesProcessHelper.java 2008-05-27
11:59:02 UTC (rev 8370)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/SeamPagesProcessHelper.java 2008-05-27
12:57:39 UTC (rev 8371)
@@ -2,6 +2,7 @@
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.Map;
import java.util.Set;
@@ -9,14 +10,15 @@
import org.jboss.tools.jst.web.model.helpers.autolayout.AutoLayout;
import org.jboss.tools.seam.pages.xml.model.SeamPagesConstants;
import org.jboss.tools.seam.pages.xml.model.helpers.autolayout.SeamPagesItems;
+import org.jboss.tools.seam.pages.xml.model.impl.ReferenceObjectImpl;
import org.jboss.tools.seam.pages.xml.model.impl.SeamPagesProcessImpl;
public class SeamPagesProcessHelper implements SeamPagesConstants {
private XModelObject process;
private static XModelObject TEMPLATE;
private XModelObject config;
- private Map<String,XModelObject> groups = new
HashMap<String,XModelObject>();
- private Map<String,XModelObject> exceptions = new
HashMap<String,XModelObject>();
+ private Map<String,XModelObject> pageItems = new
HashMap<String,XModelObject>();
+ private Map<String,XModelObject> exceptionItems = new
HashMap<String,XModelObject>();
private Map<String,XModelObject> targets = new
HashMap<String,XModelObject>();
public SeamPagesProcessHelper(XModelObject process) {
@@ -28,7 +30,8 @@
}
private synchronized void reset() {
- groups.clear();
+ pageItems.clear();
+ exceptionItems.clear();
targets.clear();
this.config = process.getParent();
}
@@ -63,10 +66,141 @@
private void updateProcess0() {
reset();
- //TODO
+ XModelObject[] sourcePages = config.getChildByPath(FOLDER_PAGES).getChildren();
+
+ for (int i = 0; i < sourcePages.length; i++) {
+ String view = sourcePages[i].getAttributeValue(ATTR_VIEW_ID);
+ if(view == null) continue;
+ String pp = toNavigationRulePathPart(view);
+ XModelObject g = findOrCreateItem(view, pp, TYPE_PAGE);
+ ((ReferenceObjectImpl)g).setReference(sourcePages[i]);
+ pageItems.put(pp, g);
+ XModelObject[] ns = sourcePages[i].getChildren();
+ for (int j = 0; j < ns.length; j++) {
+ String entity = ns[j].getModelEntity().getName();
+ if(!entity.startsWith(ENT_NAVIGATION)) continue;
+ if(entity.startsWith(ENT_NAVIGATION_RULE)) {
+ addTarget(ns[j]);
+ } else {
+ XModelObject[] rs = ns[j].getChildren();
+ for (int k = 0; k < rs.length; k++) {
+ addTarget(rs[k]);
+ }
+ }
+ }
+ }
+
+ XModelObject[] sourceExceptions =
config.getChildByPath(FOLDER_EXCEPTIONS).getChildren();
+ for (int i = 0; i < sourceExceptions.length; i++) {
+ String code = sourceExceptions[i].getAttributeValue("class");
+ XModelObject g = findOrCreateItem(code, code, TYPE_EXCEPTION);
+ ((ReferenceObjectImpl)g).setReference(sourceExceptions[i]);
+ exceptionItems.put(code, g);
+ addTarget(sourceExceptions[i]);
+ }
+
+ Iterator<String> it = pageItems.keySet().iterator();
+ while(it.hasNext()) targets.remove(it.next());
+
+ removeObsoletePageItems();
+ removeObsoleteExceptionItems();
+ createPageItems();
+ updatePageItems();
+ updateExceptionItems();
+
+ updatePages();
}
+ private void addTarget(XModelObject rule) {
+ XModelObject target = rule.getChildByPath("target");
+ if(target == null) return;
+ String tvi = target.getAttributeValue(ATTR_VIEW_ID);
+ if(tvi == null) tvi = target.getAttributeValue("error code");
+ if(tvi == null) return;
+ String ppt = toNavigationRulePathPart(tvi);
+ targets.put(ppt, getTemplate());
+ }
+ private XModelObject getTemplate() {
+ if(TEMPLATE == null && process != null) {
+ TEMPLATE = process.getModel().createModelObject(ENT_PROCESS_ITEM, null);
+ }
+ return TEMPLATE;
+ }
+
+ public XModelObject findOrCreateItem(String path, String pp, String type) {
+ if(pp == null) pp = toNavigationRulePathPart(path);
+ XModelObject g = process.getChildByPath(pp);
+ if(g == null) {
+ g = process.getModel().createModelObject(ENT_PROCESS_ITEM, null);
+ g.setAttributeValue(ATTR_NAME, pp);
+ g.setAttributeValue(ATTR_PATH, path);
+ g.setAttributeValue(ATTR_TYPE, type);
+ process.addChild(g);
+ }
+ return g;
+ }
+
+ private void removeObsoletePageItems() {
+ XModelObject[] ps = process.getChildren(ENT_PROCESS_ITEM);
+ for (int i = 0; i < ps.length; i++) {
+ String path = ps[i].getPathPart();
+ String type = ps[i].getAttributeValue(ATTR_TYPE);
+ if(!TYPE_PAGE.equals(type)) continue;
+ if(!pageItems.containsKey(path) && !targets.containsKey(path)) {
+ ps[i].removeFromParent();
+ }
+ }
+ }
+
+ private void removeObsoleteExceptionItems() {
+ XModelObject[] ps = process.getChildren(ENT_PROCESS_ITEM);
+ for (int i = 0; i < ps.length; i++) {
+ String path = ps[i].getPathPart();
+ String type = ps[i].getAttributeValue(ATTR_TYPE);
+ if(!TYPE_EXCEPTION.equals(type)) continue;
+ if(!exceptionItems.containsKey(path)) {
+ ps[i].removeFromParent();
+ }
+ }
+ }
+
+ private void createPageItems() {
+ String[] paths = (String[])targets.keySet().toArray(new String[0]);
+ for (int i = 0; i < paths.length; i++) {
+ String fvi = toFromViewId(paths[i]);
+ XModelObject g = findOrCreateItem(fvi, paths[i], TYPE_PAGE);
+ targets.put(paths[i], g);
+ }
+ }
+
+ private void updatePageItems() {
+ ReferenceObjectImpl[] gs = (ReferenceObjectImpl[])pageItems.values().toArray(new
ReferenceObjectImpl[0]);
+ for (int i = 0; i < gs.length; i++) {
+ updatePageItem(gs[i]);
+ }
+ gs = (ReferenceObjectImpl[])targets.values().toArray(new ReferenceObjectImpl[0]);
+ for (int i = 0; i < gs.length; i++) {
+ gs[i].setReference(null);
+ updatePageItem(gs[i]);
+ }
+ }
+
+ private void updateExceptionItems() {
+ ReferenceObjectImpl[] gs = (ReferenceObjectImpl[])exceptionItems.values().toArray(new
ReferenceObjectImpl[0]);
+ for (int i = 0; i < gs.length; i++) {
+ updateExceptionItem(gs[i]);
+ }
+ }
+
+ private void updatePageItem(XModelObject g) {
+
+ }
+
+ private void updateExceptionItem(XModelObject g) {
+
+ }
+
public void autolayout() {
AutoLayout auto = new AutoLayout();
auto.setItems(new SeamPagesItems());
@@ -75,7 +209,7 @@
public XModelObject getPage(String path) {
path = toNavigationRulePathPart(path);
- XModelObject g = (XModelObject)groups.get(path);
+ XModelObject g = (XModelObject)pageItems.get(path);
if(g == null) g = (XModelObject)targets.get(path);
return g;
}
@@ -88,4 +222,10 @@
return "" + path.replace('/', '#');
}
+ public static String toFromViewId(String pathpart) {
+ if(!pathpart.startsWith("rules:")) return pathpart.replace('#',
'/');
+ pathpart = pathpart.substring(6).replace('#', '/');
+ int i = pathpart.lastIndexOf(':');
+ return (i < 0) ? pathpart : pathpart.substring(0, i);
+ }
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/impl/ReferenceObjectImpl.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/impl/ReferenceObjectImpl.java 2008-05-27
11:59:02 UTC (rev 8370)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/impl/ReferenceObjectImpl.java 2008-05-27
12:57:39 UTC (rev 8371)
@@ -18,45 +18,49 @@
public class ReferenceObjectImpl extends OrderedObjectImpl implements ReferenceObject,
SeamPagesConstants {
private static final long serialVersionUID = 2473449103657311162L;
- protected XModelObject reference;
- protected long referenceTimeStamp = -1;
+ protected XModelObject reference;
+ protected long referenceTimeStamp = -1;
- public ReferenceObjectImpl() {}
+ public ReferenceObjectImpl() {}
- public XModelObject getReference() {
- return reference;
- }
+ public XModelObject getReference() {
+ return reference;
+ }
- public void setReference(XModelObject reference) {
- if(this.reference != reference) {
+ public void setReference(XModelObject reference) {
+ if(this.reference != reference) {
referenceTimeStamp = -1;
- }
+ }
this.reference = reference;
if(reference != null) {
- String shape = get("SHAPE");
- if(shape != null && shape.length() > 0)
reference.set("_shape", shape);
+ String shape = get("SHAPE");
+ if(shape != null && shape.length() > 0)
reference.set("_shape", shape);
}
- }
-
- public boolean isUpToDate() {
- return reference == null || reference.getTimeStamp() == referenceTimeStamp;
- }
-
- public void notifyUpdate() {
+ }
+
+ public boolean isUpToDate() {
+ return reference == null || reference.getTimeStamp() == referenceTimeStamp;
+ }
+
+ public void notifyUpdate() {
referenceTimeStamp = (reference == null) ? -1 : reference.getTimeStamp();
- }
+ }
- public String getPresentationString() {
- String title = (reference != null) ? reference.getPresentationString() :
-/* (TYPE_ACTION.equals(getAttributeValue(ATT_TYPE)) ||
- TYPE_PAGE.equals(getAttributeValue(ATT_TYPE))
- ) ? getAttributeValue(ATT_PATH) : */
+ public String getPresentationString() {
+ String title = (reference != null) ? reference.getPresentationString() :
+ TYPE_PAGE.equals(getAttributeValue(ATTR_TYPE))
+ || TYPE_EXCEPTION.equals(getAttributeValue(ATTR_TYPE))
+ ? getAttributeValue(ATTR_PATH) :
getAttributeValue("title");
- if(title == null) title = getAttributeValue(ATTR_NAME);
- return "" + title;
- }
+ if(title == null) title = getAttributeValue(ATTR_NAME);
+ return "" + title;
+ }
- public String getMainIconName() {
+ public String getMainIconName() {
+
+ if(reference != null && TYPE_EXCEPTION.equals(getAttributeValue(ATTR_TYPE))) {
+ return reference.getMainIconName();
+ }
/*
String type = getAttributeValue(ATT_TYPE);
if(type == null || type.length() == 0) return super.getMainIconName();
Modified:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/impl/SeamPageNavigationImpl.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/impl/SeamPageNavigationImpl.java 2008-05-27
11:59:02 UTC (rev 8370)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/impl/SeamPageNavigationImpl.java 2008-05-27
12:57:39 UTC (rev 8371)
@@ -1,14 +1,13 @@
package org.jboss.tools.seam.pages.xml.model.impl;
import org.jboss.tools.common.model.impl.CustomizedObjectImpl;
+import org.jboss.tools.common.model.util.XModelObjectLoaderUtil;
public class SeamPageNavigationImpl extends CustomizedObjectImpl {
private static final long serialVersionUID = 1L;
public String getPathPart() {
- String v1 = getAttributeValue("from action");
- String v2 = getAttributeValue("evaluation");
- return "" + v1 + ":" + v2;
+ return "navigation" + ":" +
get(XModelObjectLoaderUtil.ATTR_ID_NAME);
}
public String getPresentationString() {