Author: scabanovich
Date: 2008-05-27 06:44:40 -0400 (Tue, 27 May 2008)
New Revision: 8354
Added:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/
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/SeamPagesUpdateHelper.java
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/SeamPagesUpdateManager.java
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/autolayout/
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/autolayout/SeamPagesItems.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/SeamPagesProcessImpl.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.meta
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/FileSeamPagesImpl.java
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPageFileLoader.java
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPages12FileLoader.java
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/SeamPagesFileLoader.java
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPagesLoaderUtil.java
Log:
Modified: trunk/seam/plugins/org.jboss.tools.seam.pages.xml/plugin.xml
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.pages.xml/plugin.xml 2008-05-27 10:42:46 UTC
(rev 8353)
+++ trunk/seam/plugins/org.jboss.tools.seam.pages.xml/plugin.xml 2008-05-27 10:44:40 UTC
(rev 8354)
@@ -43,6 +43,11 @@
class="org.jboss.tools.seam.pages.xml.model.impl.SeamPageHTTPErrorImpl"/>
<xclass id="org.jboss.tools.seam.pages.xml.model.impl.SeamPageTaskImpl"
class="org.jboss.tools.seam.pages.xml.model.impl.SeamPageTaskImpl"/>
+
+ <xclass
id="org.jboss.tools.seam.pages.xml.model.impl.SeamPagesProcessImpl"
+ class="org.jboss.tools.seam.pages.xml.model.impl.SeamPagesProcessImpl"/>
+ <xclass
id="org.jboss.tools.seam.pages.xml.model.impl.ReferenceObjectImpl"
+ class="org.jboss.tools.seam.pages.xml.model.impl.ReferenceObjectImpl"/>
</extension>
<extension point="org.eclipse.wst.xml.core.catalogContributions">
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
10:42:46 UTC (rev 8353)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/resources/meta/seam-pages.meta 2008-05-27
10:44:40 UTC (rev 8354)
@@ -28,6 +28,7 @@
</GROUP>
<GROUP name="main">
<GROUP name="seam-pages">
+ <ICON name="action" path="images/struts/action.gif"/>
<ICON name="attribute" path="images/jsf/attribute.gif"/>
<ICON name="data-source"
path="images/struts/data_source.gif"/>
<ICON name="exception"
path="images/struts/exception.gif"/>
@@ -365,9 +366,10 @@
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData"
XMLSUBPATH="pages" name="FileSeamPages12">
<XChildrenEntities>
- <XChildEntity name="SeamPageConversation"/>
- <XChildEntity name="SeamPage12"/>
- <XChildEntity name="SeamPageException12"/>
+ <XChildEntity maxCount="1" name="SeamPageFolderConversation"
required="yes"/>
+ <XChildEntity maxCount="1" name="SeamPageFolderPage12"
required="yes"/>
+ <XChildEntity maxCount="1" name="SeamPageFolderException12"
required="yes"/>
+ <XChildEntity maxCount="1" name="SeamPagesProcess"
required="yes"/>
</XChildrenEntities>
<XEntityRenderer>
<ICONS>
@@ -375,7 +377,7 @@
</ICONS>
</XEntityRenderer>
<XModelAttributes>
- <XModelAttribute default="components" loader="ElementType"
name="element type">
+ <XModelAttribute default="pages configuration"
loader="ElementType" name="element type">
<Editor name="Uneditable"/>
</XModelAttribute>
<XModelAttribute PROPERTIES="category=general" name="name"
xmlname="NAME"/>
@@ -447,32 +449,20 @@
</XActionItem>
<XActionItem ICON="action.empty" displayName="New"
group="1"
kind="list" name="CreateActions">
- <XActionItem HandlerClassName="%Create%"
+ <XActionItem HandlerClassName="%Redirect%"
ICON="action.new.struts.webapp.res_ref"
- PROPERTIES="validator.add=true" WizardClassName="%Default%"
- displayName="Page..." kind="action"
name="AddPage">
- <EntityData EntityName="SeamPage12">
- <AttributeData AttributeName="view id"/>
- </EntityData>
- </XActionItem>
- <XActionItem HandlerClassName="%Create%"
+
PROPERTIES="validator.add=true;sourcepath=Pages;actionpath=CreateActions/AddPage"
+ WizardClassName="%Default%" displayName="Page..."
kind="action" name="AddPage"/>
+ <XActionItem HandlerClassName="%Redirect%"
ICON="action.new.struts.webapp.res_ref"
- PROPERTIES="validator.add=true" WizardClassName="%Default%"
- displayName="Conversation..." kind="action"
name="AddConversation">
- <EntityData EntityName="SeamPageConversation">
- <AttributeData AttributeName="name"/>
- <AttributeData AttributeName="parameter name"/>
- <AttributeData AttributeName="parameter value"
Mandatory="no"/>
- </EntityData>
- </XActionItem>
- <XActionItem HandlerClassName="%Create%"
+
PROPERTIES="validator.add=true;sourcepath=Conversations;actionpath=CreateActions/AddConversation"
+ WizardClassName="%Default%" displayName="Conversation..."
+ kind="action" name="AddConversation"/>
+ <XActionItem HandlerClassName="%Redirect%"
ICON="action.new.struts.webapp.res_ref"
- PROPERTIES="validator.add=true" WizardClassName="%Default%"
- displayName="Exception..." kind="action"
name="AddException">
- <EntityData EntityName="SeamPageException12">
- <AttributeData AttributeName="class"/>
- </EntityData>
- </XActionItem>
+
PROPERTIES="validator.add=true;sourcepath=Exceptions;actionpath=CreateActions/AddException"
+ WizardClassName="%Default%" displayName="Exception..."
+ kind="action" name="AddException"/>
</XActionItem>
<XActionItem ICON="action.copy" displayName="Copy"
kind="list" name="CopyActions">
<XActionItem BaseActionName="Copy" HandlerClassName="%Copy%"
@@ -524,9 +514,10 @@
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData"
XMLSUBPATH="pages" name="FileSeamPages20">
<XChildrenEntities>
- <XChildEntity name="SeamPageConversation"/>
- <XChildEntity name="SeamPage20"/>
- <XChildEntity name="SeamPageException20"/>
+ <XChildEntity maxCount="1" name="SeamPageFolderConversation"
required="yes"/>
+ <XChildEntity maxCount="1" name="SeamPageFolderPage20"
required="yes"/>
+ <XChildEntity maxCount="1" name="SeamPageFolderException20"
required="yes"/>
+ <XChildEntity maxCount="1" name="SeamPagesProcess"
required="yes"/>
</XChildrenEntities>
<XEntityRenderer>
<ICONS>
@@ -534,7 +525,7 @@
</ICONS>
</XEntityRenderer>
<XModelAttributes>
- <XModelAttribute default="pages" loader="ElementType"
name="element type">
+ <XModelAttribute default="pages configuration"
loader="ElementType" name="element type">
<Editor name="Uneditable"/>
</XModelAttribute>
<XModelAttribute PROPERTIES="category=general" name="name"
xmlname="NAME"/>
@@ -610,32 +601,20 @@
</XActionItem>
<XActionItem ICON="action.empty" displayName="New"
group="1"
kind="list" name="CreateActions">
- <XActionItem HandlerClassName="%Create%"
+ <XActionItem HandlerClassName="%Redirect%"
ICON="action.new.struts.webapp.res_ref"
- PROPERTIES="validator.add=true" WizardClassName="%Default%"
- displayName="Page..." kind="action"
name="AddPage">
- <EntityData EntityName="SeamPage20">
- <AttributeData AttributeName="view id"/>
- </EntityData>
- </XActionItem>
- <XActionItem HandlerClassName="%Create%"
+
PROPERTIES="validator.add=true;sourcepath=Pages;actionpath=CreateActions/AddPage"
+ WizardClassName="%Default%" displayName="Page..."
kind="action" name="AddPage"/>
+ <XActionItem HandlerClassName="%Redirect%"
ICON="action.new.struts.webapp.res_ref"
- PROPERTIES="validator.add=true" WizardClassName="%Default%"
- displayName="Conversation..." kind="action"
name="AddConversation">
- <EntityData EntityName="SeamPageConversation">
- <AttributeData AttributeName="name"/>
- <AttributeData AttributeName="parameter name"/>
- <AttributeData AttributeName="parameter value"
Mandatory="no"/>
- </EntityData>
- </XActionItem>
- <XActionItem HandlerClassName="%Create%"
+
PROPERTIES="validator.add=true;sourcepath=Conversations;actionpath=CreateActions/AddConversation"
+ WizardClassName="%Default%" displayName="Conversation..."
+ kind="action" name="AddConversation"/>
+ <XActionItem HandlerClassName="%Redirect%"
ICON="action.new.struts.webapp.res_ref"
- PROPERTIES="validator.add=true" WizardClassName="%Default%"
- displayName="Exception..." kind="action"
name="AddException">
- <EntityData EntityName="SeamPageException20">
- <AttributeData AttributeName="class"/>
- </EntityData>
- </XActionItem>
+
PROPERTIES="validator.add=true;sourcepath=Exceptions;actionpath=CreateActions/AddException"
+ WizardClassName="%Default%" displayName="Exception..."
+ kind="action" name="AddException"/>
</XActionItem>
<XActionItem ICON="action.copy" displayName="Copy"
kind="list" name="CopyActions">
<XActionItem BaseActionName="Copy" HandlerClassName="%Copy%"
@@ -874,7 +853,7 @@
<XChildrenEntities/>
<XEntityRenderer>
<ICONS>
- <ICON info="main.seam.event" type="main"/>
+ <ICON info="main.seam-pages.action" type="main"/>
</ICONS>
</XEntityRenderer>
<XModelAttributes>
@@ -1233,7 +1212,7 @@
<XDependencies/>
</XModelEntity>
<XModelEntity ImplementingClass="%Custom%"
-
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData;children=%Ordered%"
+
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData;children=%EntityOrdered%"
XMLSUBPATH="exception" name="SeamPageException12">
<XChildrenEntities>
<XChildEntity maxCount="1" name="SeamPageEndConversation"/>
@@ -1242,7 +1221,7 @@
</XChildrenEntities>
<XEntityRenderer>
<ICONS>
- <ICON info="main.seam.component" type="main"/>
+ <ICON info="main.seam-pages.exception" type="main"/>
</ICONS>
</XEntityRenderer>
<XModelAttributes>
@@ -1284,7 +1263,7 @@
<XDependencies/>
</XModelEntity>
<XModelEntity ImplementingClass="%Custom%"
-
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData;children=%Ordered%"
+
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData;children=%EntityOrdered%"
XMLSUBPATH="exception" name="SeamPageException20">
<XChildrenEntities>
<XChildEntity maxCount="1" name="SeamPageEndConversation"/>
@@ -1293,7 +1272,7 @@
</XChildrenEntities>
<XEntityRenderer>
<ICONS>
- <ICON info="main.seam.component" type="main"/>
+ <ICON info="main.seam-pages.exception" type="main"/>
</ICONS>
</XEntityRenderer>
<XModelAttributes>
@@ -1334,6 +1313,258 @@
</XActionItem>
<XDependencies/>
</XModelEntity>
+ <XModelEntity ImplementingClass="%Ordered%"
+
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData"
name="SeamPageFolderConversation">
+ <XChildrenEntities>
+ <XChildEntity name="SeamPageConversation"/>
+ </XChildrenEntities>
+ <XEntityRenderer>
+ <ICONS>
+ <ICON info="default.folder" type="main"/>
+ </ICONS>
+ </XEntityRenderer>
+ <XModelAttributes>
+ <XModelAttribute default="conversation list"
loader="ElementType" name="element type">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute default="Conversations" name="name"
xmlname="NAME">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ </XModelAttributes>
+ <XActionItem kind="list">
+ <XActionItem ICON="action.empty" displayName="New"
group="1"
+ kind="list" name="CreateActions">
+ <XActionItem HandlerClassName="%Create%"
+ ICON="action.new.struts.webapp.res_ref"
+ PROPERTIES="validator.add=true" WizardClassName="%Default%"
+ displayName="Conversation..." kind="action"
name="AddConversation">
+ <EntityData EntityName="SeamPageConversation">
+ <AttributeData AttributeName="name"/>
+ <AttributeData AttributeName="parameter name"/>
+ <AttributeData AttributeName="parameter value"
Mandatory="no"/>
+ </EntityData>
+ </XActionItem>
+ </XActionItem>
+ <XActionItem ICON="action.copy" displayName="Copy"
kind="list" name="CopyActions">
+ <XActionItem BaseActionName="Cut" HandlerClassName="%Cut%"
+ ICON="action.cut" displayName="Cut" kind="action"
name="Cut"/>
+ <XActionItem BaseActionName="Copy"
HandlerClassName="%CopyChildren%"
+ ICON="action.copy" displayName="Copy" kind="action"
name="Copy"/>
+ <XActionItem BaseActionName="Paste"
HandlerClassName="%Paste%"
+ ICON="action.paste" displayName="Paste" kind="action"
name="Paste"/>
+ </XActionItem>
+ <XActionItem kind="list" name="DeleteActions">
+ <XActionItem BaseActionName="Delete"
+ HandlerClassName="%DeleteChildren%" 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>
+ <XDependencies/>
+ </XModelEntity>
+ <XModelEntity ImplementingClass="%Ordered%"
+
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData"
name="SeamPageFolderException12">
+ <XChildrenEntities>
+ <XChildEntity name="SeamPageException12"/>
+ </XChildrenEntities>
+ <XEntityRenderer>
+ <ICONS>
+ <ICON info="default.folder" type="main"/>
+ </ICONS>
+ </XEntityRenderer>
+ <XModelAttributes>
+ <XModelAttribute default="exception list" loader="ElementType"
name="element type">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute default="Exceptions" name="name"
xmlname="NAME">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ </XModelAttributes>
+ <XActionItem kind="list">
+ <XActionItem ICON="action.empty" displayName="New"
group="1"
+ kind="list" name="CreateActions">
+ <XActionItem HandlerClassName="%Create%"
+ ICON="action.new.struts.webapp.res_ref"
+ PROPERTIES="validator.add=true" WizardClassName="%Default%"
+ displayName="Exception..." kind="action"
name="AddException">
+ <EntityData EntityName="SeamPageException12">
+ <AttributeData AttributeName="class"/>
+ </EntityData>
+ </XActionItem>
+ </XActionItem>
+ <XActionItem ICON="action.copy" displayName="Copy"
kind="list" name="CopyActions">
+ <XActionItem BaseActionName="Cut" HandlerClassName="%Cut%"
+ ICON="action.cut" displayName="Cut" kind="action"
name="Cut"/>
+ <XActionItem BaseActionName="Copy"
HandlerClassName="%CopyChildren%"
+ ICON="action.copy" displayName="Copy" kind="action"
name="Copy"/>
+ <XActionItem BaseActionName="Paste"
HandlerClassName="%Paste%"
+ ICON="action.paste" displayName="Paste" kind="action"
name="Paste"/>
+ </XActionItem>
+ <XActionItem kind="list" name="DeleteActions">
+ <XActionItem BaseActionName="Delete"
+ HandlerClassName="%DeleteChildren%" 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>
+ <XDependencies/>
+ </XModelEntity>
+ <XModelEntity ImplementingClass="%Ordered%"
+
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData"
name="SeamPageFolderException20">
+ <XChildrenEntities>
+ <XChildEntity name="SeamPageException20"/>
+ </XChildrenEntities>
+ <XEntityRenderer>
+ <ICONS>
+ <ICON info="default.folder" type="main"/>
+ </ICONS>
+ </XEntityRenderer>
+ <XModelAttributes>
+ <XModelAttribute default="exception list" loader="ElementType"
name="element type">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute default="Exceptions" name="name"
xmlname="NAME">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ </XModelAttributes>
+ <XActionItem kind="list">
+ <XActionItem ICON="action.empty" displayName="New"
group="1"
+ kind="list" name="CreateActions">
+ <XActionItem HandlerClassName="%Create%"
+ ICON="action.new.struts.webapp.res_ref"
+ PROPERTIES="validator.add=true" WizardClassName="%Default%"
+ displayName="Exception..." kind="action"
name="AddException">
+ <EntityData EntityName="SeamPageException20">
+ <AttributeData AttributeName="class"/>
+ </EntityData>
+ </XActionItem>
+ </XActionItem>
+ <XActionItem ICON="action.copy" displayName="Copy"
kind="list" name="CopyActions">
+ <XActionItem BaseActionName="Cut" HandlerClassName="%Cut%"
+ ICON="action.cut" displayName="Cut" kind="action"
name="Cut"/>
+ <XActionItem BaseActionName="Copy"
HandlerClassName="%CopyChildren%"
+ ICON="action.copy" displayName="Copy" kind="action"
name="Copy"/>
+ <XActionItem BaseActionName="Paste"
HandlerClassName="%Paste%"
+ ICON="action.paste" displayName="Paste" kind="action"
name="Paste"/>
+ </XActionItem>
+ <XActionItem kind="list" name="DeleteActions">
+ <XActionItem BaseActionName="Delete"
+ HandlerClassName="%DeleteChildren%" 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>
+ <XDependencies/>
+ </XModelEntity>
+ <XModelEntity ImplementingClass="%Ordered%"
+
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData"
name="SeamPageFolderPage12">
+ <XChildrenEntities>
+ <XChildEntity name="SeamPage12"/>
+ </XChildrenEntities>
+ <XEntityRenderer>
+ <ICONS>
+ <ICON info="default.folder" type="main"/>
+ </ICONS>
+ </XEntityRenderer>
+ <XModelAttributes>
+ <XModelAttribute default="page list" loader="ElementType"
name="element type">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute default="Pages" name="name"
xmlname="NAME">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ </XModelAttributes>
+ <XActionItem kind="list">
+ <XActionItem ICON="action.empty" displayName="New"
group="1"
+ kind="list" name="CreateActions">
+ <XActionItem HandlerClassName="%Create%"
+ ICON="action.new.struts.webapp.res_ref"
+ PROPERTIES="validator.add=true" WizardClassName="%Default%"
+ displayName="Page..." kind="action"
name="AddPage">
+ <EntityData EntityName="SeamPage12">
+ <AttributeData AttributeName="view id"/>
+ </EntityData>
+ </XActionItem>
+ </XActionItem>
+ <XActionItem ICON="action.copy" displayName="Copy"
kind="list" name="CopyActions">
+ <XActionItem BaseActionName="Cut" HandlerClassName="%Cut%"
+ ICON="action.cut" displayName="Cut" kind="action"
name="Cut"/>
+ <XActionItem BaseActionName="Copy"
HandlerClassName="%CopyChildren%"
+ ICON="action.copy" displayName="Copy" kind="action"
name="Copy"/>
+ <XActionItem BaseActionName="Paste"
HandlerClassName="%Paste%"
+ ICON="action.paste" displayName="Paste" kind="action"
name="Paste"/>
+ </XActionItem>
+ <XActionItem kind="list" name="DeleteActions">
+ <XActionItem BaseActionName="Delete"
+ HandlerClassName="%DeleteChildren%" 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>
+ <XDependencies/>
+ </XModelEntity>
+ <XModelEntity ImplementingClass="%Ordered%"
+
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData"
name="SeamPageFolderPage20">
+ <XChildrenEntities>
+ <XChildEntity name="SeamPage20"/>
+ </XChildrenEntities>
+ <XEntityRenderer>
+ <ICONS>
+ <ICON info="default.folder" type="main"/>
+ </ICONS>
+ </XEntityRenderer>
+ <XModelAttributes>
+ <XModelAttribute default="page list" loader="ElementType"
name="element type">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute default="Pages" name="name"
xmlname="NAME">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ </XModelAttributes>
+ <XActionItem kind="list">
+ <XActionItem ICON="action.empty" displayName="New"
group="1"
+ kind="list" name="CreateActions">
+ <XActionItem HandlerClassName="%Create%"
+ ICON="action.new.struts.webapp.res_ref"
+ PROPERTIES="validator.add=true" WizardClassName="%Default%"
+ displayName="Page..." kind="action"
name="AddPage">
+ <EntityData EntityName="SeamPage20">
+ <AttributeData AttributeName="view id"/>
+ </EntityData>
+ </XActionItem>
+ </XActionItem>
+ <XActionItem ICON="action.copy" displayName="Copy"
kind="list" name="CopyActions">
+ <XActionItem BaseActionName="Cut" HandlerClassName="%Cut%"
+ ICON="action.cut" displayName="Cut" kind="action"
name="Cut"/>
+ <XActionItem BaseActionName="Copy"
HandlerClassName="%CopyChildren%"
+ ICON="action.copy" displayName="Copy" kind="action"
name="Copy"/>
+ <XActionItem BaseActionName="Paste"
HandlerClassName="%Paste%"
+ ICON="action.paste" displayName="Paste" kind="action"
name="Paste"/>
+ </XActionItem>
+ <XActionItem kind="list" name="DeleteActions">
+ <XActionItem BaseActionName="Delete"
+ HandlerClassName="%DeleteChildren%" 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>
+ <XDependencies/>
+ </XModelEntity>
<XModelEntity
ImplementingClass="org.jboss.tools.seam.pages.xml.model.impl.SeamPageHTTPErrorImpl"
PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.seam.xml.ui.editor.form.SeamXMLFormLayoutData;children=%Ordered%"
@@ -2291,6 +2522,329 @@
</XActionItem>
<XDependencies/>
</XModelEntity>
+ <XModelEntity
+ AdoptManagerClass="org.jboss.tools.jsf.model.handlers.ProcessAdopt"
+
ImplementingClass="org.jboss.tools.seam.pages.xml.model.impl.SeamPagesProcessImpl"
name="SeamPagesProcess">
+ <XChildrenEntities>
+ <XChildEntity name="SeamPagesProcessItem"/>
+ <XChildEntity name="JSFProcessComment"/>
+ </XChildrenEntities>
+ <XEntityRenderer>
+ <ICONS>
+ <ICON info="main.jsf.process" type="main"/>
+ </ICONS>
+ </XEntityRenderer>
+ <XModelAttributes>
+ <XModelAttribute default="folder" loader="ElementType"
name="element type">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute default="process" name="name"
visibility="false" xmlname="NAME">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="module" visibility="false"
xmlname="MODULE">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute default="no" name="hide comments"
visibility="false" xmlname="HIDE_COMMENTS">
+ <Constraint loader="List">
+ <value name="no"/>
+ <value name="yes"/>
+ </Constraint>
+ <Editor name="List"/>
+ </XModelAttribute>
+ </XModelAttributes>
+ <XActionItem kind="list">
+ <XActionItem ICON="action.empty" displayName="New"
kind="list" name="CreateActions"/>
+ <XActionItem HIDE="always"
+ HandlerClassName="org.jboss.tools.jsf.model.handlers.CreateCommentHandler"
+ ICON="action.empty" WizardClassName="%OneParameter%"
+ displayName="Create Comment..." kind="action"
name="CreateComment">
+ <EntityData EntityName="JSFProcessComment">
+ <AttributeData AttributeName="comment"/>
+ </EntityData>
+ </XActionItem>
+ <XActionItem
+
HandlerClassName="org.jboss.tools.jst.web.model.handlers.AutolayoutWebProcessHandler"
+ ICON="action.empty"
+
PROPERTIES="items-class=org.jboss.tools.jsf.model.helpers.autolayout.JSFItems"
+ displayName="Auto Layout" kind="action"
name="AutoLayout"/>
+ <XActionItem HIDE="disabled"
+
HandlerClassName="org.jboss.tools.jst.web.model.handlers.FindItemOnDiagramHandler"
+ ICON="action.empty"
+
PROPERTIES="help=JSFProcess_SelectItem;wizard=org.jboss.tools.jsf.ui.editor.wizard.SelectItemWizard"
+ displayName="Select Element" kind="action"
name="SelectItem"/>
+ <XActionItem HIDE="always"
+
HandlerClassName="org.jboss.tools.jst.web.model.handlers.ShowHideCommentsHandler"
+ ICON="action.empty" PROPERTIES="commentEntity=JSFProcessComment"
+ displayName="Show/Hide Comments" kind="action"
name="ShowHideComments"/>
+ <XActionItem displayName="Verify" kind="list"
name="ProcessVerifyActions">
+ <XActionItem kind="list" name="StaticActions">
+ <XActionItem BaseActionName="VerifyAll"
+
HandlerClassName="org.jboss.tools.jsf.model.handlers.JSFProcessRegirectHandler"
+ ICON="action.vrules.verify"
+ PROPERTIES="actionpath=VerifyActions/StaticActions/VerifyAll"
+ displayName="Verify" kind="action"
name="VerifyAll"/>
+ </XActionItem>
+ </XActionItem>
+ <XActionItem ICON="action.copy" displayName="Copy"
kind="list" name="CopyActions">
+ <XActionItem BaseActionName="Paste"
+ HandlerClassName="org.jboss.tools.jsf.model.handlers.ProcessPasteHandler"
+ ICON="action.paste" PROPERTIES="actionpath=CopyActions/Paste"
+ displayName="Paste" kind="action" name="Paste"/>
+ </XActionItem>
+ <XActionItem ICON="action.delete" displayName="Delete"
kind="list" name="DeleteActions"/>
+ <XActionItem ICON="action.empty" kind="list"
name="Properties">
+ <XActionItem HIDE="always"
+
HandlerClassName="org.jboss.tools.jsf.model.handlers.JSFProcessRegirectHandler"
+ ICON="action.empty"
PROPERTIES="actionpath=Properties/Properties"
+ displayName="Properties..." kind="action"
name="Properties"/>
+ </XActionItem>
+ </XActionItem>
+ <XDependencies/>
+ </XModelEntity>
+ <XModelEntity
+
ImplementingClass="org.jboss.tools.seam.pages.xml.model.impl.ReferenceObjectImpl"
+ XMLSUBPATH="PROCESS-ITEM" name="SeamPagesProcessItem">
+ <XChildrenEntities>
+ <XChildEntity name="SeamPagesProcessItemOutput"/>
+ </XChildrenEntities>
+ <XEntityRenderer>
+ <ICONS>
+ <ICON info="main.file.jsp_file" type="main"/>
+ </ICONS>
+ </XEntityRenderer>
+ <XModelAttributes>
+ <XModelAttribute default="navigation-rule" loader="ElementType"
name="element type">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="name" xmlname="NAME">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="title" xmlname="TITLE">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="id" xmlname="ID">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="type" xmlname="TYPE">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="subtype" xmlname="SUBTYPE">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="path" xmlname="PATH">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="shape" xmlname="SHAPE">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute COPYABLE="no" default="false"
name="confirmed" visibility="false">
+ <Constraint loader="List">
+ <value name="true"/>
+ <value name="false"/>
+ </Constraint>
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ </XModelAttributes>
+ <XActionItem kind="list">
+ <XActionItem ICON="action.empty" displayName="New"
group="1"
+ kind="list" name="CreateActions">
+ <XActionItem
+
HandlerClassName="org.jboss.tools.jsf.model.handlers.JSFItemRegirectHandler"
+ ICON="action.new.jsf.case"
+ PROPERTIES="actionpath=CreateActions/CreateCase"
+ WizardClassName="%Default%" displayName="Case..."
kind="action" name="CreateCase"/>
+ </XActionItem>
+ <XActionItem HIDE="disabled"
+ HandlerClassName="org.jboss.tools.jsf.model.handlers.OpenPageHandler"
+ ICON="action.empty" PROPERTIES="actionpath=Open"
+ displayName="Open Page" kind="action"
name="OpenPage"/>
+ <XActionItem kind="list" name="EditActions">
+ <XActionItem HandlerClassName="%SpecialWizard%"
ICON="action.empty"
+
PROPERTIES="support=org.jboss.tools.jsf.model.handlers.RenameViewSupport;validator.edit=true"
+ displayName="Rename..." kind="action"
name="Rename">
+ <EntityData EntityName="JSFNavigationRuleRename">
+ <AttributeData AttributeName="from-view-id"
Mandatory="no"/>
+ <AttributeData AttributeName="rename file"
Mandatory="no"/>
+ </EntityData>
+ </XActionItem>
+ </XActionItem>
+ <XActionItem kind="list" name="RunActions">
+ <XActionItem HIDE="disabled"
+
HandlerClassName="org.jboss.tools.jsf.model.handlers.run.RunOnServerHandler"
+ ICON="action.empty" displayName="Run on Server"
kind="action" name="RunPageOnServer"/>
+ </XActionItem>
+ <XActionItem HIDE="always"
+ HandlerClassName="org.jboss.tools.jsf.model.handlers.HiddenLinksHandler"
+ ICON="action.empty" displayName="Show/Hide Links"
kind="action" name="Links"/>
+ <XActionItem HIDE="disabled"
+
HandlerClassName="org.jboss.tools.struts.model.handlers.SelectInNavigatorHandler"
+ ICON="action.empty" displayName="Select in Tree Views"
kind="action" name="Select"/>
+ <XActionItem kind="list" name="BreakPointActions"/>
+ <XActionItem displayName="Verify" kind="list"
name="ProcessVerifyActions">
+ <XActionItem kind="list" name="StaticActions">
+ <XActionItem BaseActionName="VerifyAll"
+
HandlerClassName="org.jboss.tools.jsf.model.handlers.JSFItemRegirectHandler"
+ ICON="action.vrules.verify"
+ PROPERTIES="actionpath=VerifyActions/StaticActions/VerifyAll"
+ displayName="Verify" kind="action"
name="VerifyAll"/>
+ </XActionItem>
+ </XActionItem>
+ <XActionItem ICON="action.copy" displayName="Copy"
kind="list" name="CopyActions">
+ <XActionItem BaseActionName="Cut" HandlerClassName="%Cut%"
+ ICON="action.cut" PROPERTIES="actionpath=CopyActions/Cut"
+ displayName="Cut" kind="action" name="Cut"/>
+ <XActionItem BaseActionName="Copy" HandlerClassName="%Copy%"
+ ICON="action.copy" PROPERTIES="actionpath=CopyActions/Copy"
+ displayName="Copy" kind="action" name="Copy"/>
+ <XActionItem BaseActionName="Paste"
+ HandlerClassName="%DiagramPaste%" ICON="action.paste"
+ PROPERTIES="actionpath=CopyActions/Paste" displayName="Paste"
+ kind="action" name="Paste"/>
+ </XActionItem>
+ <XActionItem ICON="action.delete" displayName="Delete"
kind="list" name="DeleteActions">
+ <XActionItem BaseActionName="Delete"
+
HandlerClassName="org.jboss.tools.jsf.model.handlers.JSFItemRegirectHandler"
+ ICON="action.delete"
PROPERTIES="actionpath=DeleteActions/Delete"
+ displayName="Delete" kind="action" name="Delete"/>
+ </XActionItem>
+ <XActionItem displayName="move" kind="list"
name="MoveActions">
+ <XActionItem HIDE="always"
+ HandlerClassName="org.jboss.tools.jsf.model.handlers.OutputMoveHandler"
+ ICON="action.empty" displayName="Move" kind="action"
name="Move"/>
+ </XActionItem>
+ <XActionItem ICON="action.empty" kind="list"
name="Properties">
+ <XActionItem
+
HandlerClassName="org.jboss.tools.jsf.model.handlers.JSFItemRegirectHandler"
+ ICON="action.empty"
PROPERTIES="actionpath=Properties/Properties"
+ displayName="Properties..." kind="action"
name="Properties"/>
+ </XActionItem>
+ </XActionItem>
+ <XDependencies/>
+ </XModelEntity>
+ <XModelEntity
+
ImplementingClass="org.jboss.tools.seam.pages.xml.model.impl.ReferenceObjectImpl"
+ XMLSUBPATH="PROCESS-ITEM-OUTPUT"
name="SeamPagesProcessItemOutput">
+ <XChildrenEntities/>
+ <XEntityRenderer>
+ <ICONS>
+ <ICON info="main.jsf.process-item-output" type="main"/>
+ </ICONS>
+ </XEntityRenderer>
+ <XModelAttributes>
+ <XModelAttribute default="navigation-case" loader="ElementType"
name="element type">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="name" xmlname="NAME">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="title" xmlname="TITLE">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="id" xmlname="ID">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="type" xmlname="TYPE">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="subtype" xmlname="SUBTYPE">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="path" xmlname="PATH">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="shape" xmlname="SHAPE">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute name="target" xmlname="TARGET">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
+ <XModelAttribute default="no" name="hidden"
xmlname="HIDDEN">
+ <Constraint loader="List">
+ <value name="yes"/>
+ <value name="no"/>
+ </Constraint>
+ <Editor name="List"/>
+ </XModelAttribute>
+ <XModelAttribute default="no" name="shortcut"
xmlname="SHORTCUT">
+ <Constraint loader="List">
+ <value name="yes"/>
+ <value name="no"/>
+ </Constraint>
+ <Editor name="List"/>
+ </XModelAttribute>
+ </XModelAttributes>
+ <XActionItem kind="list">
+ <XActionItem ICON="action.empty" displayName="Create"
kind="list" name="CreateActions"/>
+ <XActionItem
+
HandlerClassName="org.jboss.tools.jsf.model.handlers.AutolayoutTransitionHandler"
+ ICON="action.empty" displayName="Auto Layout"
kind="action" name="Autolayout"/>
+ <XActionItem HIDE="disabled"
+ HandlerClassName="org.jboss.tools.jsf.model.handlers.OpenPageHandler"
+ ICON="action.empty" PROPERTIES="actionpath=Open"
+ displayName="Open Page" kind="action"
name="OpenPage"/>
+ <XActionItem kind="list" name="RunActions">
+ <XActionItem HIDE="disabled"
+
HandlerClassName="org.jboss.tools.jsf.model.handlers.run.RunOnServerHandler"
+ ICON="action.empty" displayName="Run on Server"
kind="action" name="RunPageOnServer"/>
+ </XActionItem>
+ <XActionItem HIDE="disabled"
+
HandlerClassName="org.jboss.tools.struts.model.handlers.SelectInNavigatorHandler"
+ ICON="action.empty" displayName="Select in Tree Views"
kind="action" name="Select"/>
+ <XActionItem kind="list" name="LinkActions">
+ <XActionItem HIDE="disabled"
+ HandlerClassName="org.jboss.tools.jsf.model.handlers.ModifyLinkHandler"
+ ICON="action.empty" PROPERTIES="value=no;property=shortcut"
+ displayName="Show as Transition" kind="action"
name="AsTransition"/>
+ <XActionItem HIDE="disabled"
+ HandlerClassName="org.jboss.tools.jsf.model.handlers.ModifyLinkHandler"
+ ICON="action.empty" PROPERTIES="value=yes;property=shortcut"
+ displayName="Show as Shortcut" kind="action"
name="AsSrortcut"/>
+ <XActionItem HIDE="always"
+ HandlerClassName="org.jboss.tools.jsf.model.handlers.ModifyLinkHandler"
+ ICON="action.empty" PROPERTIES="value=yes;property=hidden"
+ displayName="Hide" kind="action" name="Hide"/>
+ </XActionItem>
+ <XActionItem kind="list" name="BreakPointActions"/>
+ <XActionItem displayName="Verify" kind="list"
name="ProcessVerifyActions">
+ <XActionItem kind="list" name="StaticActions">
+ <XActionItem BaseActionName="VerifyAll"
+
HandlerClassName="org.jboss.tools.jsf.model.handlers.JSFItemRegirectHandler"
+ ICON="action.vrules.verify"
+ PROPERTIES="actionpath=VerifyActions/StaticActions/VerifyAll"
+ displayName="Verify" kind="action"
name="VerifyAll"/>
+ </XActionItem>
+ </XActionItem>
+ <XActionItem ICON="action.copy" displayName="Copy"
kind="list" name="CopyActions">
+ <XActionItem BaseActionName="Cut" HandlerClassName="%Cut%"
+ ICON="action.cut" PROPERTIES="actionpath=CopyActions/Cut"
+ displayName="Cut" kind="action" name="Cut"/>
+ <XActionItem BaseActionName="Copy" HandlerClassName="%Copy%"
+ ICON="action.copy" PROPERTIES="actionpath=CopyActions/Copy"
+ displayName="Copy" kind="action" name="Copy"/>
+ <XActionItem BaseActionName="Paste"
+ HandlerClassName="%DiagramPaste%" ICON="action.paste"
+ PROPERTIES="actionpath=CopyActions/Paste" displayName="Paste"
+ kind="action" name="Paste"/>
+ </XActionItem>
+ <XActionItem ICON="action.delete" displayName="Delete"
kind="list" name="DeleteActions">
+ <XActionItem BaseActionName="Delete"
+ HandlerClassName="org.jboss.tools.jsf.model.handlers.DeleteOutputHandler"
+ ICON="action.delete" displayName="Delete"
kind="action" name="Delete"/>
+ </XActionItem>
+ <XActionItem displayName="move" kind="list"
name="MoveActions">
+ <XActionItem HIDE="always"
+ HandlerClassName="org.jboss.tools.jsf.model.handlers.OutputMoveHandler"
+ ICON="action.empty" displayName="Move" kind="action"
name="Move"/>
+ </XActionItem>
+ <XActionItem ICON="action.empty" kind="list"
name="Properties">
+ <XActionItem
+
HandlerClassName="org.jboss.tools.jsf.model.handlers.JSFItemRegirectHandler"
+ ICON="action.empty"
PROPERTIES="actionpath=Properties/Properties"
+ displayName="Properties..." kind="action"
name="Properties"/>
+ </XActionItem>
+ </XActionItem>
+ <XDependencies/>
+ </XModelEntity>
<XEntityExtension name="FileFolder">
<XChildrenEntities>
<XChildEntity name="FileSeamPages12"/>
Modified:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/FileSeamPagesImpl.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/FileSeamPagesImpl.java 2008-05-27
10:42:46 UTC (rev 8353)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/FileSeamPagesImpl.java 2008-05-27
10:44:40 UTC (rev 8354)
@@ -10,11 +10,51 @@
******************************************************************************/
package org.jboss.tools.seam.pages.xml.model;
-import org.jboss.tools.common.model.filesystems.impl.SimpleFileImpl;
+import org.jboss.tools.common.model.XModelException;
+import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.common.model.impl.OrderedByEntityChildren;
+import org.jboss.tools.common.model.impl.RegularChildren;
+import org.jboss.tools.common.model.loaders.XObjectLoader;
+import org.jboss.tools.common.model.util.XModelObjectLoaderUtil;
+import org.jboss.tools.jst.web.model.AbstractWebFileImpl;
+import org.jboss.tools.jst.web.model.WebProcessLoader;
+import org.jboss.tools.seam.pages.xml.model.impl.SeamPagesProcessImpl;
-public class FileSeamPagesImpl extends SimpleFileImpl {
+public class FileSeamPagesImpl extends AbstractWebFileImpl implements SeamPagesConstants
{
private static final long serialVersionUID = 1L;
public FileSeamPagesImpl() {}
+ protected RegularChildren createChildren() {
+ return new OrderedByEntityChildren();
+ }
+
+ protected String getProcessEntity() {
+ return "SeamPagesProcess";
+ }
+
+ protected boolean hasDTD() {
+ return SeamPagesConstants.ENT_FILE_SEAM_PAGES_12.equals(getModelEntity().getName());
+ }
+
+ protected void mergeAll(XModelObject f, boolean update) throws XModelException {
+ SeamPagesProcessImpl process = (SeamPagesProcessImpl)provideWebProcess();
+ boolean b = (process != null && process.isPrepared());
+ if(b) process.getHelper().addUpdateLock(this);
+ merge(f, !update);
+ if(b) {
+ process.getHelper().removeUpdateLock(this);
+ process.getHelper().updateProcess();
+ }
+
+ if(process != null) {
+ if(!process.isPrepared()/* || update*/ || isForceLoadOn()) {
+ XObjectLoader loader = XModelObjectLoaderUtil.getObjectLoader(this);
+ ((WebProcessLoader)loader).reloadProcess(this);
+ }
+ if(process.isPrepared())
+ process.autolayout();
+ }
+ }
+
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPageFileLoader.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPageFileLoader.java 2008-05-27
10:42:46 UTC (rev 8353)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPageFileLoader.java 2008-05-27
10:44:40 UTC (rev 8354)
@@ -10,7 +10,6 @@
******************************************************************************/
package org.jboss.tools.seam.pages.xml.model;
-import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.loaders.impl.SimpleWebFileLoader;
import org.jboss.tools.common.model.util.XModelObjectLoaderUtil;
@@ -30,8 +29,4 @@
return false;
}
- public String serializeObject(XModelObject object) {
- return super.serializeObject(object);
- }
-
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPages12FileLoader.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPages12FileLoader.java 2008-05-27
10:42:46 UTC (rev 8353)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPages12FileLoader.java 2008-05-27
10:44:40 UTC (rev 8354)
@@ -10,23 +10,8 @@
******************************************************************************/
package org.jboss.tools.seam.pages.xml.model;
-import org.jboss.tools.common.model.loaders.impl.SimpleWebFileLoader;
-import org.jboss.tools.common.model.util.XModelObjectLoaderUtil;
-
-public class SeamPages12FileLoader extends SimpleWebFileLoader {
+public class SeamPages12FileLoader extends SeamPagesFileLoader {
public SeamPages12FileLoader() {}
- protected XModelObjectLoaderUtil createUtil() {
- return new SeamPagesLoaderUtil();
- }
-
- protected boolean isCheckingDTD() {
- return true;
- }
-
- protected boolean isCheckingSchema() {
- return false;
- }
-
}
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
10:42:46 UTC (rev 8353)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPagesConstants.java 2008-05-27
10:44:40 UTC (rev 8354)
@@ -13,6 +13,7 @@
public interface SeamPagesConstants {
public String PUBLIC_ID_12 = "-//JBoss/Seam Pages Configuration DTD 1.2//EN";
//$NON-NLS-1$
public String SYSTEM_ID_12 = "http://jboss.com/products/seam/pages-1.2.dtd";
//$NON-NLS-1$
+ public String DOC_QUALIFIEDNAME = "pages";
public String SUFF_12 = "12"; //$NON-NLS-1$
public String SUFF_20 = "20"; //$NON-NLS-1$
@@ -28,5 +29,16 @@
public String ATTR_NAME = "name"; //$NON-NLS-1$
public String ATTR_VALUE = "value"; //$NON-NLS-1$
+
+ public String FOLDER_CONVERSATIONS = "Conversations";
+ public String FOLDER_PAGES = "Pages";
+ public String FOLDER_EXCEPTIONS = "Exceptions";
+ public String ELM_PROCESS = "process";
+
+
+ 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/SeamPagesFileLoader.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPagesFileLoader.java 2008-05-27
10:42:46 UTC (rev 8353)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPagesFileLoader.java 2008-05-27
10:44:40 UTC (rev 8354)
@@ -10,28 +10,213 @@
******************************************************************************/
package org.jboss.tools.seam.pages.xml.model;
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
+
+import org.jboss.tools.common.model.XModelException;
import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.common.model.XModelObjectConstants;
+import org.jboss.tools.common.model.filesystems.FileAuxiliary;
+import org.jboss.tools.common.model.filesystems.impl.AbstractExtendedXMLFileImpl;
+import org.jboss.tools.common.model.filesystems.impl.AbstractXMLFileImpl;
+import org.jboss.tools.common.model.filesystems.impl.FileAnyImpl;
+import org.jboss.tools.common.model.filesystems.impl.FolderLoader;
import org.jboss.tools.common.model.loaders.impl.SimpleWebFileLoader;
+import org.jboss.tools.common.model.plugin.ModelPlugin;
+import org.jboss.tools.common.model.util.EntityXMLRegistration;
+import org.jboss.tools.common.model.util.XMLUtil;
import org.jboss.tools.common.model.util.XModelObjectLoaderUtil;
+import org.jboss.tools.jst.web.model.WebProcessLoader;
+import org.jboss.tools.seam.pages.xml.model.impl.SeamPagesProcessImpl;
+import org.w3c.dom.Document;
+import org.w3c.dom.DocumentType;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
-public class SeamPagesFileLoader extends SimpleWebFileLoader {
-
+public class SeamPagesFileLoader implements WebProcessLoader, SeamPagesConstants {
+ public static String AUXILIARY_FILE_EXTENSION = "spdia";
+ private FileAuxiliary aux = new FileAuxiliary(AUXILIARY_FILE_EXTENSION, false);
+ XModelObjectLoaderUtil util = createUtil();
+
public SeamPagesFileLoader() {}
- protected XModelObjectLoaderUtil createUtil() {
- return new SeamPagesLoaderUtil();
- }
+ public void load(XModelObject object) {
+// String entity = object.getModelEntity().getName();
+
+ String body = XModelObjectLoaderUtil.getTempBody(object);
+
+ int resolution =
EntityXMLRegistration.getInstance().resolve(object.getModelEntity());
+ if(EntityXMLRegistration.isSystemId(body)) resolution =
EntityXMLRegistration.UNRESOLVED;
+ String[] errors =
+ XMLUtil.getXMLErrors(new StringReader(body), resolution == EntityXMLRegistration.DTD,
resolution == EntityXMLRegistration.SCHEMA);
+ boolean hasErrors = (errors != null && errors.length > 0);
+ if(hasErrors) {
+ object.setAttributeValue("isIncorrect", "yes");
+ object.setAttributeValue("incorrectBody", body);
+ object.set("actualBodyTimeStamp", "-1");
+ } else {
+ object.setAttributeValue("isIncorrect", "no");
+ object.set("correctBody", body);
+ object.set("actualBodyTimeStamp", "0");
+ object.setAttributeValue("incorrectBody", "");
+ }
+ Document doc = XMLUtil.getDocument(new StringReader(body));
+ if(doc == null) {
+ XModelObjectLoaderUtil.addRequiredChildren(object);
+ return;
+ }
+ Element element = doc.getDocumentElement();
+ util.load(element, object);
+ String loadingError = util.getError();
+
+// ((FileSeamPagesImpl)object).updateRuleIndices();
+
+ setEncoding(object, body);
+ if(object.getModelEntity().getAttribute("systemId") != null) {
+ NodeList nl = doc.getChildNodes();
+ for (int i = 0; i < nl.getLength(); i++) {
+ Node n = nl.item(i);
+ if(n instanceof DocumentType) {
+ DocumentType dt = (DocumentType)n;
+ object.setAttributeValue("systemId", dt.getSystemId());
+ if(dt.getPublicId() == null) {
+ object.setAttributeValue("publicId", "null");
+ }
+ }
+ }
+ }
+ reloadProcess(object);
+ object.set("actualBodyTimeStamp", "" + object.getTimeStamp());
+
+ ((AbstractXMLFileImpl)object).setLoaderError(loadingError);
+ if(!hasErrors && loadingError != null) {
+ object.setAttributeValue("isIncorrect", "yes");
+ object.setAttributeValue("incorrectBody", body);
+ object.set("actualBodyTimeStamp", "" + object.getTimeStamp());
+ }
+ }
- protected boolean isCheckingDTD() {
- return false;
- }
+ protected void setEncoding(XModelObject object, String body) {
+ String encoding = XModelObjectLoaderUtil.getEncoding(body);
+ if(encoding == null) encoding = "";
+ object.setAttributeValue(XModelObjectConstants.ATTR_NAME_ENCODING, encoding);
+ }
- protected boolean isCheckingSchema() {
- return false;
- }
+ public void reloadProcess(XModelObject object) {
+ SeamPagesProcessImpl process =
(SeamPagesProcessImpl)object.getChildByPath(ELM_PROCESS);
+ if(process == null) return;
+ process.setReference(object);
+ if(!object.isActive()) return;
+ String bodyAux = (object.getParent() == null ? null : aux.read(object.getParent(),
object));
+ if (bodyAux != null) {
+ Document doc2 = XMLUtil.getDocument(new StringReader(bodyAux));
+ if (doc2 == null) {
+ //JSFModelPlugin.log("Unable to parse aux body of "+object.getPath());
+ } else {
+ util.load(doc2.getDocumentElement(), process);
+ }
+ }
+ process.setReference(null);
+ process.firePrepared();
+ }
+
+ public boolean update(XModelObject object) throws XModelException {
+ XModelObject p = object.getParent();
+ if (p == null) return true;
+ FolderLoader fl = (FolderLoader)p;
+ String body = fl.getBodySource(FileAnyImpl.toFileName(object)).get();
+ AbstractExtendedXMLFileImpl f = (AbstractExtendedXMLFileImpl)object;
+ f.setUpdateLock();
+ try {
+ f.edit(body, true);
+ } finally {
+ f.releaseUpdateLock();
+ }
+ object.setModified(false);
+ XModelObjectLoaderUtil.updateModifiedOnSave(object);
+ return true;
+ }
- public String serializeObject(XModelObject object) {
- return super.serializeObject(object);
+ public boolean save(XModelObject object) {
+ if (!object.isModified()) return true;
+ FileAnyImpl file = (FileAnyImpl)object;
+ String text = file.getAsText();
+ XModelObjectLoaderUtil.setTempBody(object, text);
+ if("yes".equals(object.get("isIncorrect"))) {
+ return true;
+ }
+ return saveLayout(object);
+ }
+
+ public boolean saveLayout(XModelObject object) {
+ if(object == null || !object.isActive()) return false;
+ XModelObjectLoaderUtil util = new XModelObjectLoaderUtil();
+ try {
+ XModelObject process = object.getChildByPath(ELM_PROCESS);
+ if(process == null) return true;
+ process.setModified(true);
+ Element element = XMLUtil.createDocumentElement("PROCESS");
+ util.saveAttributes(element, process);
+ util.saveChildren(element, process);
+ StringWriter sw = new StringWriter();
+ XModelObjectLoaderUtil.serialize(element, sw);
+ XModelObjectLoaderUtil.setTempBody(process, sw.toString());
+ aux.write(object.getParent(), object, process);
+ return true;
+ } catch (IOException exc) {
+ ModelPlugin.getPluginLog().logError(exc);
+ return false;
+ }
+ }
+
+ public String serializeMainObject(XModelObject object) {
+// String entity = object.getModelEntity().getName();
+ String systemId = object.getAttributeValue("systemId");
+ String publicId = object.getAttributeValue("publicId");
+ if("null".equals(publicId)) publicId = null;
+
+ if(systemId != null) {
+ if(systemId != null && systemId.length() == 0) systemId = SYSTEM_ID_12;
+ if(publicId != null && publicId.length() == 0) publicId = PUBLIC_ID_12;
+ }
+
+ Element element = (systemId == null && publicId == null)
+ ? XMLUtil.createDocumentElement(object.getModelEntity().getXMLSubPath())
+ : XMLUtil.createDocumentElement(object.getModelEntity().getXMLSubPath(),
DOC_QUALIFIEDNAME, publicId, systemId, null);
+
+ util.setup(null, false);
+ util.saveAttributes(element, object);
+ util.saveChildren(element, object);
+ util.saveFinalComment(element, object);
+ element.removeAttribute("NAME");
+ element.removeAttribute("EXTENSION");
+ try {
+ return SimpleWebFileLoader.serialize(element, object);
+ } catch (IOException e) {
+ ModelPlugin.getPluginLog().logError(e);
+ return null;
+ } catch (XModelException e) {
+ ModelPlugin.getPluginLog().logError(e);
+ return null;
+ }
+ }
+
+ public String mainObjectToString(XModelObject object) {
+ return "" + serializeMainObject(object);
+ }
+
+ public String serializeObject(XModelObject object) {
+ return serializeMainObject(object);
+ }
+
+ public void loadFragment(XModelObject object, Element element) {
+ util.load(element, object);
+ }
+
+ protected XModelObjectLoaderUtil createUtil() {
+ return new SeamPagesLoaderUtil();
}
}
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
10:42:46 UTC (rev 8353)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/SeamPagesLoaderUtil.java 2008-05-27
10:44:40 UTC (rev 8354)
@@ -20,6 +20,7 @@
import org.w3c.dom.NodeList;
public class SeamPagesLoaderUtil extends XModelObjectLoaderUtil implements
SeamPagesConstants {
+ static String[] folders = new String[]{"Conversations", "Pages",
"Exceptions"};
public SeamPagesLoaderUtil() {}
@@ -63,8 +64,16 @@
public boolean saveChildren(Element element, XModelObject o) {
String entity = o.getModelEntity().getName();
String childrenLoader = o.getModelEntity().getProperty("childrenLoader");
//$NON-NLS-1$
-
- return super.saveChildren(element, o);
+ if(o.getFileType() == XModelObject.FILE) {
+ for (int i = 0; i < folders.length; i++) {
+ XModelObject c = o.getChildByPath(folders[i]);
+ if(c != null) super.saveChildren(element, c);
+ }
+ super.saveChildren(element, o);
+ return true;
+ } else {
+ return super.saveChildren(element, o);
+ }
}
private boolean savePropertyMapChildren(Element element, XModelObject o) {
@@ -80,7 +89,15 @@
public void loadChildren(Element element, XModelObject o) {
// String entity = o.getModelEntity().getName();
- super.loadChildren(element, o);
+ if(o.getFileType() == XModelObject.FILE) {
+ super.loadChildren(element, o);
+ for (int i = 0; i < folders.length; i++) {
+ XModelObject c = o.getChildByPath(folders[i]);
+ if(c != null) super.loadChildren(element, c);
+ }
+ } else {
+ super.loadChildren(element, o);
+ }
}
protected String getChildEntity(XModelEntity entity, Element e) {
Added:
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
(rev 0)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/SeamPagesProcessHelper.java 2008-05-27
10:44:40 UTC (rev 8354)
@@ -0,0 +1,91 @@
+package org.jboss.tools.seam.pages.xml.model.helpers;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.tools.common.model.XModelObject;
+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.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> targets = new
HashMap<String,XModelObject>();
+
+ public SeamPagesProcessHelper(XModelObject process) {
+ this.process = process;
+ }
+
+ public static SeamPagesProcessHelper getHelper(XModelObject process) {
+ return ((SeamPagesProcessImpl)process).getHelper();
+ }
+
+ private synchronized void reset() {
+ groups.clear();
+ targets.clear();
+ this.config = process.getParent();
+ }
+
+ public void restoreRefs() {
+ ((SeamPagesProcessImpl)process).setReference(process.getParent());
+ }
+
+ Set<Object> updateLocks = new HashSet<Object>();
+
+ public boolean isUpdateLocked() {
+ return updateLocks.size() > 0;
+ }
+
+ public void addUpdateLock(Object lock) {
+ updateLocks.add(lock);
+ }
+
+ public void removeUpdateLock(Object lock) {
+ updateLocks.remove(lock);
+ }
+
+ public void updateProcess() {
+ if(isUpdateLocked()) return;
+ addUpdateLock(this);
+ try {
+ updateProcess0();
+ } finally {
+ removeUpdateLock(this);
+ }
+ }
+
+ private void updateProcess0() {
+ reset();
+ //TODO
+ }
+
+
+ public void autolayout() {
+ AutoLayout auto = new AutoLayout();
+ auto.setItems(new SeamPagesItems());
+ auto.setProcess(process);
+ }
+
+ public XModelObject getPage(String path) {
+ path = toNavigationRulePathPart(path);
+ XModelObject g = (XModelObject)groups.get(path);
+ if(g == null) g = (XModelObject)targets.get(path);
+ return g;
+ }
+
+ public void updatePages() {
+ //TODO
+ }
+
+ public static String toNavigationRulePathPart(String path) {
+ return "" + path.replace('/', '#');
+ }
+
+}
Added:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/SeamPagesUpdateHelper.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/SeamPagesUpdateHelper.java
(rev 0)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/SeamPagesUpdateHelper.java 2008-05-27
10:44:40 UTC (rev 8354)
@@ -0,0 +1,51 @@
+package org.jboss.tools.seam.pages.xml.model.helpers;
+
+import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.common.model.event.XModelTreeEvent;
+import org.jboss.tools.jst.web.model.helpers.WebProcessUpdateHelper;
+import org.jboss.tools.seam.pages.xml.model.SeamPagesConstants;
+import org.jboss.tools.seam.pages.xml.model.impl.SeamPagesProcessImpl;
+
+public class SeamPagesUpdateHelper implements WebProcessUpdateHelper {
+ private XModelObject config;
+ private SeamPagesProcessImpl process;
+ private SeamPagesProcessHelper helper;
+
+ public SeamPagesUpdateHelper(SeamPagesProcessImpl process) {
+ this.process = process;
+ this.helper = process.getHelper();
+ this.config = process.getParent();
+ SeamPagesUpdateManager.getInstance(process.getModel()).register(config.getPath(),
this);
+ }
+
+ public void unregister() {
+ SeamPagesUpdateManager.getInstance(process.getModel()).unregister(config.getPath(),
this);
+ }
+
+ public boolean isActive() {
+ return process.isActive();
+ }
+
+ public void nodeChanged(XModelTreeEvent event, String localPath) {
+ if(localPath == null || localPath.length() == 0) {
+ return;
+ } else if(localPath.startsWith(SeamPagesConstants.FOLDER_PAGES)
+ || localPath.startsWith(SeamPagesConstants.FOLDER_EXCEPTIONS)
+ ) {
+ helper.updateProcess();
+ }
+ }
+
+ public void structureChanged(XModelTreeEvent event, String localPath) {
+ if(localPath == null) return;
+ if(localPath.startsWith(SeamPagesConstants.FOLDER_PAGES)
+ || localPath.startsWith(SeamPagesConstants.FOLDER_EXCEPTIONS)
+ ) {
+ helper.updateProcess();
+ if(!helper.isUpdateLocked()) {
+ helper.autolayout();
+ }
+ }
+ }
+
+}
Added:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/SeamPagesUpdateManager.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/SeamPagesUpdateManager.java
(rev 0)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/SeamPagesUpdateManager.java 2008-05-27
10:44:40 UTC (rev 8354)
@@ -0,0 +1,18 @@
+package org.jboss.tools.seam.pages.xml.model.helpers;
+
+import org.jboss.tools.common.model.XModel;
+import org.jboss.tools.jst.web.model.helpers.WebProcessUpdateManager;
+
+public class SeamPagesUpdateManager extends WebProcessUpdateManager {
+
+ public static synchronized SeamPagesUpdateManager getInstance(XModel model) {
+ SeamPagesUpdateManager instance =
(SeamPagesUpdateManager)model.getManager("JSFUpdateManager");
+ if (instance == null) {
+ instance = new SeamPagesUpdateManager();
+ model.addManager("SeamPagesUpdateManager", instance);
+ model.addModelTreeListener(instance);
+ }
+ return instance;
+ }
+
+}
Added:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/autolayout/SeamPagesItems.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/autolayout/SeamPagesItems.java
(rev 0)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/helpers/autolayout/SeamPagesItems.java 2008-05-27
10:44:40 UTC (rev 8354)
@@ -0,0 +1,7 @@
+package org.jboss.tools.seam.pages.xml.model.helpers.autolayout;
+
+import org.jboss.tools.jst.web.model.helpers.autolayout.Items;
+
+public class SeamPagesItems extends Items {
+
+}
Added:
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
(rev 0)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/impl/ReferenceObjectImpl.java 2008-05-27
10:44:40 UTC (rev 8354)
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.seam.pages.xml.model.impl;
+
+import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.common.model.impl.*;
+import org.jboss.tools.jst.web.model.ReferenceObject;
+import org.jboss.tools.seam.pages.xml.model.SeamPagesConstants;
+
+public class ReferenceObjectImpl extends OrderedObjectImpl implements ReferenceObject,
SeamPagesConstants {
+ private static final long serialVersionUID = 2473449103657311162L;
+ protected XModelObject reference;
+ protected long referenceTimeStamp = -1;
+
+ public ReferenceObjectImpl() {}
+
+ public XModelObject getReference() {
+ return 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);
+ }
+ }
+
+ 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) : */
+ getAttributeValue("title");
+ if(title == null) title = getAttributeValue(ATTR_NAME);
+ return "" + title;
+ }
+
+ public String getMainIconName() {
+/*
+ String type = getAttributeValue(ATT_TYPE);
+ if(type == null || type.length() == 0) return super.getMainIconName();
+ if(type.equals(TYPE_ACTION)) {
+ String subtype = getAttributeValue(ATT_SUBTYPE);
+ return "main.struts.action";
+ }
+ if(type.equals(TYPE_FORWARD)) return "main.struts.forward";
+ if(type.equals(TYPE_EXCEPTION)) return "main.struts.exception";
+ if(type.equals(TYPE_PAGE)) {
+ String subtype = getAttributeValue(ATT_SUBTYPE);
+ if(subtype == null) {}
+ else if(subtype.equals(SUBTYPE_JSP)) return "main.file.jsp_file";
+ else if(subtype.equals(SUBTYPE_HTML)) return
"main.file.html_file";
+ else if(subtype.equals(SUBTYPE_TILE)) return
"main.struts.tiles.definition";
+ else return "main.file.unknow_file";
+ } else if(type.equals(TYPE_LINK)) {
+ String subtype = getAttributeValue(ATT_SUBTYPE);
+ if(subtype == null) {}
+ else if(subtype.equals(SUBTYPE_FORWARD)) return
"main.struts.forward";
+ else if(subtype.equals(TYPE_EXCEPTION)) return
"main.struts.exception";
+ }
+*/
+ return super.getMainIconName();
+ }
+
+ public Image getImage() {
+ return (reference != null) ? reference.getImage() : super.getImage();
+ }
+
+ public void set(String name, String value) {
+ if("SHAPE".equals(name) && reference != null) {
+ reference.set("_shape", value);
+ }
+ super.set(name, value);
+ }
+
+}
+
Added:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/impl/SeamPagesProcessImpl.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/impl/SeamPagesProcessImpl.java
(rev 0)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/impl/SeamPagesProcessImpl.java 2008-05-27
10:44:40 UTC (rev 8354)
@@ -0,0 +1,89 @@
+package org.jboss.tools.seam.pages.xml.model.impl;
+
+import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.common.model.impl.OrderedObjectImpl;
+import org.jboss.tools.jst.web.model.WebProcess;
+import org.jboss.tools.seam.pages.xml.model.SeamPagesConstants;
+import org.jboss.tools.seam.pages.xml.model.helpers.SeamPagesProcessHelper;
+import org.jboss.tools.seam.pages.xml.model.helpers.SeamPagesUpdateHelper;
+
+public class SeamPagesProcessImpl extends OrderedObjectImpl implements WebProcess,
SeamPagesConstants {
+ private static final long serialVersionUID = 1981573715076399163L;
+ protected XModelObject reference;
+ protected SeamPagesProcessHelper phelper = new SeamPagesProcessHelper(this);
+ protected SeamPagesUpdateHelper uhelper = null;
+ protected boolean isPrepared = false;
+
+ public XModelObject getReference() {
+ return reference;
+ }
+
+ public void setReference(XModelObject reference) {
+ this.reference = reference;
+ if(reference != null) {
+ String shape = get("SHAPE");
+ if(shape != null && shape.length() > 0) reference.set("_shape",
shape);
+ }
+ }
+
+ public boolean isPrepared() {
+ return isPrepared;
+ }
+
+ public void firePrepared() {
+ isPrepared = true;
+ fireStructureChanged(3, getPath());
+ }
+
+ public void autolayout() {
+ phelper.autolayout();
+ }
+
+ protected void loadChildren() {
+ if (isPrepared && reference == null && isActive()) {
+ restoreRefs();
+ registerListener();
+ updateProcess();
+ }
+ }
+
+ protected void restoreRefs() {
+ phelper.restoreRefs();
+ }
+
+ protected void updateProcess() {
+ phelper.updateProcess();
+ }
+
+ protected void registerListener() {
+ if (uhelper == null) {
+ uhelper = new SeamPagesUpdateHelper(this);
+ }
+ }
+
+ protected void deactivate() {
+ if (uhelper != null) {
+ uhelper.unregister();
+ uhelper = null;
+ }
+ }
+
+ public SeamPagesProcessHelper getHelper() {
+ return phelper;
+ }
+
+ protected void changeTimeStamp() {
+ boolean actualBody = false;
+ String abts = null;
+ XModelObject parent = (XModelObject)getParent();
+ if(parent != null) {
+ abts = parent.get("actualBodyTimeStamp");
+ actualBody = (abts != null && (abts.equals("0") ||
abts.equals("" + parent.getTimeStamp())));
+ }
+ super.changeTimeStamp();
+ if(actualBody && !abts.equals("0")) {
+ parent.set("actualBodyTimeStamp", "" + parent.getTimeStamp());
+ }
+ }
+
+}