You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by rw...@apache.org on 2005/12/02 17:52:40 UTC
svn commit: r351770 [1/3] - in /portals/jetspeed-2/trunk:
components/page-manager/src/java/JETSPEED-INF/ojb/
components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/
components/page-manager/src/java/org/apache/jetspeed/om/folder/psml/ compo...
Author: rwatler
Date: Fri Dec 2 08:52:05 2005
New Revision: 351770
URL: http://svn.apache.org/viewcvs?rev=351770&view=rev
Log:
- Support MenuDefinitions in DB PageManager for Page/Folder
- Add copyFields() method to GenericMetadata to support copy using different LocalizedField implementations
- Add newMenu*Definition() APIs to Page and Folder to allow proper om implementation types to be created per Page/Folder
Added:
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionElement.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionMetadata.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuExcludeDefinitionImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuIncludeDefinitionImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuOptionsDefinitionImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuSeparatorDefinitionImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElement.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElementList.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionList.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuExcludeDefinitionImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuIncludeDefinitionImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuMetadataLocalizedFieldImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuOptionsDefinitionImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuSeparatorDefinitionImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageMenuDefinitionElement.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageMenuDefinitionElementList.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageMenuDefinitionImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageMenuDefinitionList.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageMenuExcludeDefinitionImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageMenuIncludeDefinitionImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageMenuMetadataLocalizedFieldImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageMenuOptionsDefinitionImpl.java (with props)
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageMenuSeparatorDefinitionImpl.java (with props)
Modified:
portals/jetspeed-2/trunk/components/page-manager/src/java/JETSPEED-INF/ojb/page-manager-repository.xml
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/psml/FolderImpl.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/ContentFragmentImpl.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/ContentPageImpl.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/BaseElementImpl.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageImpl.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageSecurityImpl.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/SecurityConstraintDefList.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/SecurityConstraintList.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/SecurityConstraintsRefList.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/psml/AbstractBaseElement.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/psml/PageImpl.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/AbstractPageManager.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java
portals/jetspeed-2/trunk/components/page-manager/src/test/org/apache/jetspeed/page/TestCastorXmlPageManager.java
portals/jetspeed-2/trunk/components/page-manager/src/test/org/apache/jetspeed/page/TestDatabasePageManager.java
portals/jetspeed-2/trunk/components/registry/src/java/org/apache/jetspeed/om/impl/GenericMetadataImpl.java
portals/jetspeed-2/trunk/etc/schema/phase2-schema.xml
portals/jetspeed-2/trunk/etc/sql/derby/schema/phase2-schema.sql
portals/jetspeed-2/trunk/etc/sql/drop.sql
portals/jetspeed-2/trunk/etc/sql/oracle/drop.sql
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/om/common/GenericMetadata.java
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/om/common/SecuredResource.java
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/om/folder/Folder.java
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/om/page/Page.java
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/om/page/PageSecurity.java
Modified: portals/jetspeed-2/trunk/components/page-manager/src/java/JETSPEED-INF/ojb/page-manager-repository.xml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/JETSPEED-INF/ojb/page-manager-repository.xml?rev=351770&r1=351769&r2=351770&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/JETSPEED-INF/ojb/page-manager-repository.xml (original)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/JETSPEED-INF/ojb/page-manager-repository.xml Fri Dec 2 08:52:05 2005
@@ -222,6 +222,18 @@
<orderby name="sortOrder" sort="ASC"/>
<inverse-foreignkey field-ref="folderId"/>
</collection-descriptor>
+
+ <collection-descriptor
+ name="menus"
+ element-class-ref="org.apache.jetspeed.om.folder.impl.FolderMenuDefinitionImpl"
+ auto-retrieve="true"
+ auto-delete="object"
+ auto-update="object"
+ proxy="true"
+ >
+ <orderby name="name" sort="ASC"/>
+ <inverse-foreignkey field-ref="folderId"/>
+ </collection-descriptor>
</class-descriptor>
<class-descriptor
@@ -381,199 +393,361 @@
/>
</class-descriptor>
- <!-- Page mapping -->
+ <class-descriptor class="org.apache.jetspeed.om.folder.impl.FolderMenuDefinitionElement">
+ <extent-class class-ref="org.apache.jetspeed.om.folder.impl.FolderMenuDefinitionImpl"/>
+ <extent-class class-ref="org.apache.jetspeed.om.folder.impl.FolderMenuExcludeDefinitionImpl"/>
+ <extent-class class-ref="org.apache.jetspeed.om.folder.impl.FolderMenuIncludeDefinitionImpl"/>
+ <extent-class class-ref="org.apache.jetspeed.om.folder.impl.FolderMenuOptionsDefinitionImpl"/>
+ <extent-class class-ref="org.apache.jetspeed.om.folder.impl.FolderMenuSeparatorDefinitionImpl"/>
+ </class-descriptor>
<class-descriptor
- class="org.apache.jetspeed.om.page.impl.PageImpl"
- table="PAGE"
+ class="org.apache.jetspeed.om.folder.impl.FolderMenuDefinitionImpl"
+ table="FOLDER_MENU"
>
- <object-cache class="org.apache.jetspeed.page.impl.DatabasePageManagerCache"/>
-
<field-descriptor
name="id"
- column="PAGE_ID"
+ column="MENU_ID"
jdbc-type="INTEGER"
primarykey="true"
autoincrement="true"
/>
<field-descriptor
- name="parentId"
- column="PARENT_ID"
- jdbc-type="INTEGER"
- access="anonymous"
+ name="ojbConcreteClass"
+ column="CLASS_NAME"
+ jdbc-type="VARCHAR"
/>
- <reference-descriptor
- name="parent"
- class-ref="org.apache.jetspeed.om.folder.impl.FolderImpl"
- auto-retrieve="true"
- auto-delete="none"
- auto-update="none"
- proxy="true"
- >
- <foreignkey field-ref="parentId"/>
- </reference-descriptor>
+ <field-descriptor
+ name="parentId"
+ column="PARENT_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="folderId"
+ column="FOLDER_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="elementOrder"
+ column="ELEMENT_ORDER"
+ jdbc-type="INTEGER"
+ />
+
+ <field-descriptor
+ name="name"
+ column="NAME"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="title"
+ column="TITLE"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="shortTitle"
+ column="SHORT_TITLE"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="options"
+ column="OPTIONS"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="depth"
+ column="DEPTH"
+ jdbc-type="INTEGER"
+ />
+
+ <field-descriptor
+ name="paths"
+ column="IS_PATHS"
+ jdbc-type="INTEGER"
+ conversion="org.apache.ojb.broker.accesslayer.conversions.Boolean2IntFieldConversion"
+ />
+
+ <field-descriptor
+ name="regexp"
+ column="IS_REGEXP"
+ jdbc-type="INTEGER"
+ conversion="org.apache.ojb.broker.accesslayer.conversions.Boolean2IntFieldConversion"
+ />
+
+ <field-descriptor
+ name="profile"
+ column="PROFILE"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="order"
+ column="OPTIONS_ORDER"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="skin"
+ column="SKIN"
+ jdbc-type="VARCHAR"
+ />
<collection-descriptor
- name="fragment"
- element-class-ref="org.apache.jetspeed.om.page.impl.FragmentImpl"
+ name="metadataFields"
+ element-class-ref="org.apache.jetspeed.om.folder.impl.FolderMenuMetadataLocalizedFieldImpl"
auto-retrieve="true"
auto-delete="object"
auto-update="object"
proxy="true"
>
- <inverse-foreignkey field-ref="pageId"/>
+ <inverse-foreignkey field-ref="menuId"/>
</collection-descriptor>
-
+
<collection-descriptor
- name="metadataFields"
- element-class-ref="org.apache.jetspeed.om.page.impl.PageMetadataLocalizedFieldImpl"
+ name="elements"
+ element-class-ref="org.apache.jetspeed.om.folder.impl.FolderMenuDefinitionElement"
auto-retrieve="true"
auto-delete="object"
auto-update="object"
proxy="true"
>
- <inverse-foreignkey field-ref="pageId"/>
+ <orderby name="elementOrder" sort="ASC"/>
+ <inverse-foreignkey field-ref="parentId"/>
</collection-descriptor>
+ </class-descriptor>
+ <class-descriptor
+ class="org.apache.jetspeed.om.folder.impl.FolderMenuExcludeDefinitionImpl"
+ table="FOLDER_MENU"
+ >
<field-descriptor
- name="path"
- column="PATH"
+ name="id"
+ column="MENU_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
+ />
+
+ <field-descriptor
+ name="ojbConcreteClass"
+ column="CLASS_NAME"
jdbc-type="VARCHAR"
/>
<field-descriptor
+ name="parentId"
+ column="PARENT_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="elementOrder"
+ column="ELEMENT_ORDER"
+ jdbc-type="INTEGER"
+ />
+
+ <field-descriptor
name="name"
column="NAME"
jdbc-type="VARCHAR"
/>
+ </class-descriptor>
+ <class-descriptor
+ class="org.apache.jetspeed.om.folder.impl.FolderMenuIncludeDefinitionImpl"
+ table="FOLDER_MENU"
+ >
<field-descriptor
- name="version"
- column="VERSION"
- jdbc-type="VARCHAR"
+ name="id"
+ column="MENU_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
/>
<field-descriptor
- name="title"
- column="TITLE"
+ name="ojbConcreteClass"
+ column="CLASS_NAME"
jdbc-type="VARCHAR"
/>
<field-descriptor
- name="shortTitle"
- column="SHORT_TITLE"
+ name="parentId"
+ column="PARENT_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="elementOrder"
+ column="ELEMENT_ORDER"
+ jdbc-type="INTEGER"
+ />
+
+ <field-descriptor
+ name="name"
+ column="NAME"
jdbc-type="VARCHAR"
/>
<field-descriptor
- name="hidden"
- column="IS_HIDDEN"
+ name="nest"
+ column="IS_NEST"
jdbc-type="INTEGER"
conversion="org.apache.ojb.broker.accesslayer.conversions.Boolean2IntFieldConversion"
/>
+ </class-descriptor>
+ <class-descriptor
+ class="org.apache.jetspeed.om.folder.impl.FolderMenuOptionsDefinitionImpl"
+ table="FOLDER_MENU"
+ >
<field-descriptor
- name="skin"
- column="SKIN"
- jdbc-type="VARCHAR"
+ name="id"
+ column="MENU_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
/>
<field-descriptor
- name="defaultLayoutDecorator"
- column="DEFAULT_LAYOUT_DECORATOR"
+ name="ojbConcreteClass"
+ column="CLASS_NAME"
jdbc-type="VARCHAR"
/>
<field-descriptor
- name="defaultPortletDecorator"
- column="DEFAULT_PORTLET_DECORATOR"
- jdbc-type="VARCHAR"
+ name="parentId"
+ column="PARENT_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
/>
<field-descriptor
- name="subsite"
- column="SUBSITE"
- jdbc-type="VARCHAR"
+ name="elementOrder"
+ column="ELEMENT_ORDER"
+ jdbc-type="INTEGER"
/>
<field-descriptor
- name="user"
- column="USER_PRINCIPAL"
+ name="options"
+ column="OPTIONS"
jdbc-type="VARCHAR"
/>
<field-descriptor
- name="role"
- column="ROLE_PRINCIPAL"
- jdbc-type="VARCHAR"
+ name="depth"
+ column="DEPTH"
+ jdbc-type="INTEGER"
/>
<field-descriptor
- name="group"
- column="GROUP_PRINCIPAL"
+ name="paths"
+ column="IS_PATHS"
+ jdbc-type="INTEGER"
+ conversion="org.apache.ojb.broker.accesslayer.conversions.Boolean2IntFieldConversion"
+ />
+
+ <field-descriptor
+ name="regexp"
+ column="IS_REGEXP"
+ jdbc-type="INTEGER"
+ conversion="org.apache.ojb.broker.accesslayer.conversions.Boolean2IntFieldConversion"
+ />
+
+ <field-descriptor
+ name="profile"
+ column="PROFILE"
jdbc-type="VARCHAR"
/>
<field-descriptor
- name="mediatype"
- column="MEDIATYPE"
+ name="order"
+ column="OPTIONS_ORDER"
jdbc-type="VARCHAR"
/>
<field-descriptor
- name="locale"
- column="LOCALE"
+ name="skin"
+ column="SKIN"
jdbc-type="VARCHAR"
/>
+ </class-descriptor>
+
+ <class-descriptor
+ class="org.apache.jetspeed.om.folder.impl.FolderMenuSeparatorDefinitionImpl"
+ table="FOLDER_MENU"
+ >
+ <field-descriptor
+ name="id"
+ column="MENU_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
+ />
<field-descriptor
- name="extendedAttributeName"
- column="EXT_ATTR_NAME"
+ name="ojbConcreteClass"
+ column="CLASS_NAME"
jdbc-type="VARCHAR"
/>
<field-descriptor
- name="extendedAttributeValue"
- column="EXT_ATTR_VALUE"
+ name="parentId"
+ column="PARENT_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="elementOrder"
+ column="ELEMENT_ORDER"
+ jdbc-type="INTEGER"
+ />
+
+ <field-descriptor
+ name="title"
+ column="TITLE"
jdbc-type="VARCHAR"
/>
<field-descriptor
- name="constraints::owner"
- column="OWNER_PRINCIPAL"
+ name="text"
+ column="TEXT"
jdbc-type="VARCHAR"
/>
- <collection-descriptor
- name="constraints::constraints"
- element-class-ref="org.apache.jetspeed.om.page.impl.PageSecurityConstraintImpl"
- auto-retrieve="true"
- auto-delete="object"
- auto-update="object"
- proxy="true"
- >
- <orderby name="applyOrder" sort="ASC"/>
- <inverse-foreignkey field-ref="pageId"/>
- </collection-descriptor>
+ <field-descriptor
+ name="skin"
+ column="SKIN"
+ jdbc-type="VARCHAR"
+ />
<collection-descriptor
- name="constraints::constraintsRefs"
- element-class-ref="org.apache.jetspeed.om.page.impl.PageSecurityConstraintsRef"
+ name="metadataFields"
+ element-class-ref="org.apache.jetspeed.om.folder.impl.FolderMenuMetadataLocalizedFieldImpl"
auto-retrieve="true"
auto-delete="object"
auto-update="object"
proxy="true"
>
- <orderby name="applyOrder" sort="ASC"/>
- <inverse-foreignkey field-ref="pageId"/>
+ <inverse-foreignkey field-ref="menuId"/>
</collection-descriptor>
</class-descriptor>
<class-descriptor
- class="org.apache.jetspeed.om.page.impl.PageMetadataLocalizedFieldImpl"
- table="PAGE_METADATA"
+ class="org.apache.jetspeed.om.folder.impl.FolderMenuMetadataLocalizedFieldImpl"
+ table="FOLDER_MENU_METADATA"
>
<field-descriptor
name="id"
@@ -584,8 +758,8 @@
/>
<field-descriptor
- name="pageId"
- column="PAGE_ID"
+ name="menuId"
+ column="MENU_ID"
jdbc-type="INTEGER"
access="anonymous"
/>
@@ -610,27 +784,269 @@
/>
</class-descriptor>
+ <!-- Page mapping -->
+
<class-descriptor
- class="org.apache.jetspeed.om.page.impl.PageSecurityConstraintImpl"
- table="PAGE_CONSTRAINT"
+ class="org.apache.jetspeed.om.page.impl.PageImpl"
+ table="PAGE"
>
+ <object-cache class="org.apache.jetspeed.page.impl.DatabasePageManagerCache"/>
+
<field-descriptor
name="id"
- column="CONSTRAINT_ID"
+ column="PAGE_ID"
jdbc-type="INTEGER"
primarykey="true"
autoincrement="true"
/>
<field-descriptor
- name="pageId"
- column="PAGE_ID"
+ name="parentId"
+ column="PARENT_ID"
jdbc-type="INTEGER"
access="anonymous"
/>
- <field-descriptor
- name="applyOrder"
+ <reference-descriptor
+ name="parent"
+ class-ref="org.apache.jetspeed.om.folder.impl.FolderImpl"
+ auto-retrieve="true"
+ auto-delete="none"
+ auto-update="none"
+ proxy="true"
+ >
+ <foreignkey field-ref="parentId"/>
+ </reference-descriptor>
+
+ <collection-descriptor
+ name="fragment"
+ element-class-ref="org.apache.jetspeed.om.page.impl.FragmentImpl"
+ auto-retrieve="true"
+ auto-delete="object"
+ auto-update="object"
+ proxy="true"
+ >
+ <inverse-foreignkey field-ref="pageId"/>
+ </collection-descriptor>
+
+ <collection-descriptor
+ name="metadataFields"
+ element-class-ref="org.apache.jetspeed.om.page.impl.PageMetadataLocalizedFieldImpl"
+ auto-retrieve="true"
+ auto-delete="object"
+ auto-update="object"
+ proxy="true"
+ >
+ <inverse-foreignkey field-ref="pageId"/>
+ </collection-descriptor>
+
+ <field-descriptor
+ name="path"
+ column="PATH"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="name"
+ column="NAME"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="version"
+ column="VERSION"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="title"
+ column="TITLE"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="shortTitle"
+ column="SHORT_TITLE"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="hidden"
+ column="IS_HIDDEN"
+ jdbc-type="INTEGER"
+ conversion="org.apache.ojb.broker.accesslayer.conversions.Boolean2IntFieldConversion"
+ />
+
+ <field-descriptor
+ name="skin"
+ column="SKIN"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="defaultLayoutDecorator"
+ column="DEFAULT_LAYOUT_DECORATOR"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="defaultPortletDecorator"
+ column="DEFAULT_PORTLET_DECORATOR"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="subsite"
+ column="SUBSITE"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="user"
+ column="USER_PRINCIPAL"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="role"
+ column="ROLE_PRINCIPAL"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="group"
+ column="GROUP_PRINCIPAL"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="mediatype"
+ column="MEDIATYPE"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="locale"
+ column="LOCALE"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="extendedAttributeName"
+ column="EXT_ATTR_NAME"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="extendedAttributeValue"
+ column="EXT_ATTR_VALUE"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="constraints::owner"
+ column="OWNER_PRINCIPAL"
+ jdbc-type="VARCHAR"
+ />
+
+ <collection-descriptor
+ name="constraints::constraints"
+ element-class-ref="org.apache.jetspeed.om.page.impl.PageSecurityConstraintImpl"
+ auto-retrieve="true"
+ auto-delete="object"
+ auto-update="object"
+ proxy="true"
+ >
+ <orderby name="applyOrder" sort="ASC"/>
+ <inverse-foreignkey field-ref="pageId"/>
+ </collection-descriptor>
+
+ <collection-descriptor
+ name="constraints::constraintsRefs"
+ element-class-ref="org.apache.jetspeed.om.page.impl.PageSecurityConstraintsRef"
+ auto-retrieve="true"
+ auto-delete="object"
+ auto-update="object"
+ proxy="true"
+ >
+ <orderby name="applyOrder" sort="ASC"/>
+ <inverse-foreignkey field-ref="pageId"/>
+ </collection-descriptor>
+
+ <collection-descriptor
+ name="menus"
+ element-class-ref="org.apache.jetspeed.om.page.impl.PageMenuDefinitionImpl"
+ auto-retrieve="true"
+ auto-delete="object"
+ auto-update="object"
+ proxy="true"
+ >
+ <orderby name="name" sort="ASC"/>
+ <inverse-foreignkey field-ref="pageId"/>
+ </collection-descriptor>
+
+ </class-descriptor>
+
+ <class-descriptor
+ class="org.apache.jetspeed.om.page.impl.PageMetadataLocalizedFieldImpl"
+ table="PAGE_METADATA"
+ >
+ <field-descriptor
+ name="id"
+ column="METADATA_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
+ />
+
+ <field-descriptor
+ name="pageId"
+ column="PAGE_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="name"
+ column="NAME"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="locale"
+ column="LOCALE"
+ jdbc-type="VARCHAR"
+ conversion="org.apache.jetspeed.util.ojb.LocaleFieldConversion"
+ />
+
+ <field-descriptor
+ name="value"
+ column="VALUE"
+ jdbc-type="VARCHAR"
+ />
+ </class-descriptor>
+
+ <class-descriptor
+ class="org.apache.jetspeed.om.page.impl.PageSecurityConstraintImpl"
+ table="PAGE_CONSTRAINT"
+ >
+ <field-descriptor
+ name="id"
+ column="CONSTRAINT_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
+ />
+
+ <field-descriptor
+ name="pageId"
+ column="PAGE_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="applyOrder"
column="APPLY_ORDER"
jdbc-type="INTEGER"
/>
@@ -692,6 +1108,397 @@
<field-descriptor
name="name"
column="NAME"
+ jdbc-type="VARCHAR"
+ />
+ </class-descriptor>
+
+ <class-descriptor class="org.apache.jetspeed.om.page.impl.PageMenuDefinitionElement">
+ <extent-class class-ref="org.apache.jetspeed.om.page.impl.PageMenuDefinitionImpl"/>
+ <extent-class class-ref="org.apache.jetspeed.om.page.impl.PageMenuExcludeDefinitionImpl"/>
+ <extent-class class-ref="org.apache.jetspeed.om.page.impl.PageMenuIncludeDefinitionImpl"/>
+ <extent-class class-ref="org.apache.jetspeed.om.page.impl.PageMenuOptionsDefinitionImpl"/>
+ <extent-class class-ref="org.apache.jetspeed.om.page.impl.PageMenuSeparatorDefinitionImpl"/>
+ </class-descriptor>
+
+ <class-descriptor
+ class="org.apache.jetspeed.om.page.impl.PageMenuDefinitionImpl"
+ table="PAGE_MENU"
+ >
+ <field-descriptor
+ name="id"
+ column="MENU_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
+ />
+
+ <field-descriptor
+ name="ojbConcreteClass"
+ column="CLASS_NAME"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="parentId"
+ column="PARENT_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="pageId"
+ column="PAGE_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="elementOrder"
+ column="ELEMENT_ORDER"
+ jdbc-type="INTEGER"
+ />
+
+ <field-descriptor
+ name="name"
+ column="NAME"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="title"
+ column="TITLE"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="shortTitle"
+ column="SHORT_TITLE"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="options"
+ column="OPTIONS"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="depth"
+ column="DEPTH"
+ jdbc-type="INTEGER"
+ />
+
+ <field-descriptor
+ name="paths"
+ column="IS_PATHS"
+ jdbc-type="INTEGER"
+ conversion="org.apache.ojb.broker.accesslayer.conversions.Boolean2IntFieldConversion"
+ />
+
+ <field-descriptor
+ name="regexp"
+ column="IS_REGEXP"
+ jdbc-type="INTEGER"
+ conversion="org.apache.ojb.broker.accesslayer.conversions.Boolean2IntFieldConversion"
+ />
+
+ <field-descriptor
+ name="profile"
+ column="PROFILE"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="order"
+ column="OPTIONS_ORDER"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="skin"
+ column="SKIN"
+ jdbc-type="VARCHAR"
+ />
+
+ <collection-descriptor
+ name="metadataFields"
+ element-class-ref="org.apache.jetspeed.om.page.impl.PageMenuMetadataLocalizedFieldImpl"
+ auto-retrieve="true"
+ auto-delete="object"
+ auto-update="object"
+ proxy="true"
+ >
+ <inverse-foreignkey field-ref="menuId"/>
+ </collection-descriptor>
+
+ <collection-descriptor
+ name="elements"
+ element-class-ref="org.apache.jetspeed.om.page.impl.PageMenuDefinitionElement"
+ auto-retrieve="true"
+ auto-delete="object"
+ auto-update="object"
+ proxy="true"
+ >
+ <orderby name="elementOrder" sort="ASC"/>
+ <inverse-foreignkey field-ref="parentId"/>
+ </collection-descriptor>
+ </class-descriptor>
+
+ <class-descriptor
+ class="org.apache.jetspeed.om.page.impl.PageMenuExcludeDefinitionImpl"
+ table="PAGE_MENU"
+ >
+ <field-descriptor
+ name="id"
+ column="MENU_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
+ />
+
+ <field-descriptor
+ name="ojbConcreteClass"
+ column="CLASS_NAME"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="parentId"
+ column="PARENT_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="elementOrder"
+ column="ELEMENT_ORDER"
+ jdbc-type="INTEGER"
+ />
+
+ <field-descriptor
+ name="name"
+ column="NAME"
+ jdbc-type="VARCHAR"
+ />
+ </class-descriptor>
+
+ <class-descriptor
+ class="org.apache.jetspeed.om.page.impl.PageMenuIncludeDefinitionImpl"
+ table="PAGE_MENU"
+ >
+ <field-descriptor
+ name="id"
+ column="MENU_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
+ />
+
+ <field-descriptor
+ name="ojbConcreteClass"
+ column="CLASS_NAME"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="parentId"
+ column="PARENT_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="elementOrder"
+ column="ELEMENT_ORDER"
+ jdbc-type="INTEGER"
+ />
+
+ <field-descriptor
+ name="name"
+ column="NAME"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="nest"
+ column="IS_NEST"
+ jdbc-type="INTEGER"
+ conversion="org.apache.ojb.broker.accesslayer.conversions.Boolean2IntFieldConversion"
+ />
+ </class-descriptor>
+
+ <class-descriptor
+ class="org.apache.jetspeed.om.page.impl.PageMenuOptionsDefinitionImpl"
+ table="PAGE_MENU"
+ >
+ <field-descriptor
+ name="id"
+ column="MENU_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
+ />
+
+ <field-descriptor
+ name="ojbConcreteClass"
+ column="CLASS_NAME"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="parentId"
+ column="PARENT_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="elementOrder"
+ column="ELEMENT_ORDER"
+ jdbc-type="INTEGER"
+ />
+
+ <field-descriptor
+ name="options"
+ column="OPTIONS"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="depth"
+ column="DEPTH"
+ jdbc-type="INTEGER"
+ />
+
+ <field-descriptor
+ name="paths"
+ column="IS_PATHS"
+ jdbc-type="INTEGER"
+ conversion="org.apache.ojb.broker.accesslayer.conversions.Boolean2IntFieldConversion"
+ />
+
+ <field-descriptor
+ name="regexp"
+ column="IS_REGEXP"
+ jdbc-type="INTEGER"
+ conversion="org.apache.ojb.broker.accesslayer.conversions.Boolean2IntFieldConversion"
+ />
+
+ <field-descriptor
+ name="profile"
+ column="PROFILE"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="order"
+ column="OPTIONS_ORDER"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="skin"
+ column="SKIN"
+ jdbc-type="VARCHAR"
+ />
+ </class-descriptor>
+
+ <class-descriptor
+ class="org.apache.jetspeed.om.page.impl.PageMenuSeparatorDefinitionImpl"
+ table="PAGE_MENU"
+ >
+ <field-descriptor
+ name="id"
+ column="MENU_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
+ />
+
+ <field-descriptor
+ name="ojbConcreteClass"
+ column="CLASS_NAME"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="parentId"
+ column="PARENT_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="elementOrder"
+ column="ELEMENT_ORDER"
+ jdbc-type="INTEGER"
+ />
+
+ <field-descriptor
+ name="title"
+ column="TITLE"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="text"
+ column="TEXT"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="skin"
+ column="SKIN"
+ jdbc-type="VARCHAR"
+ />
+
+ <collection-descriptor
+ name="metadataFields"
+ element-class-ref="org.apache.jetspeed.om.page.impl.PageMenuMetadataLocalizedFieldImpl"
+ auto-retrieve="true"
+ auto-delete="object"
+ auto-update="object"
+ proxy="true"
+ >
+ <inverse-foreignkey field-ref="menuId"/>
+ </collection-descriptor>
+ </class-descriptor>
+
+ <class-descriptor
+ class="org.apache.jetspeed.om.page.impl.PageMenuMetadataLocalizedFieldImpl"
+ table="PAGE_MENU_METADATA"
+ >
+ <field-descriptor
+ name="id"
+ column="METADATA_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
+ />
+
+ <field-descriptor
+ name="menuId"
+ column="MENU_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="name"
+ column="NAME"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="locale"
+ column="LOCALE"
+ jdbc-type="VARCHAR"
+ conversion="org.apache.jetspeed.util.ojb.LocaleFieldConversion"
+ />
+
+ <field-descriptor
+ name="value"
+ column="VALUE"
jdbc-type="VARCHAR"
/>
</class-descriptor>
Added: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionElement.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionElement.java?rev=351770&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionElement.java (added)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionElement.java Fri Dec 2 08:52:05 2005
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.om.folder.impl;
+
+/**
+ * BaseMenuDefinitionElement
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id:$
+ */
+public abstract class BaseMenuDefinitionElement
+{
+ private int id;
+ private String ojbConcreteClass = getClass().getName();
+ private int elementOrder;
+
+ /**
+ * getElementOrder
+ *
+ * @return element order
+ */
+ public int getElementOrder()
+ {
+ return elementOrder;
+ }
+
+ /**
+ * setElementOrder
+ *
+ * @param order element order
+ */
+ public void setElementOrder(int order)
+ {
+ elementOrder = order;
+ }
+}
Propchange: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionElement.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionImpl.java?rev=351770&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionImpl.java (added)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionImpl.java Fri Dec 2 08:52:05 2005
@@ -0,0 +1,275 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.om.folder.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.jetspeed.om.folder.MenuDefinition;
+
+/**
+ * BaseMenuDefinitionImpl
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id:$
+ */
+public abstract class BaseMenuDefinitionImpl extends BaseMenuDefinitionMetadata implements MenuDefinition
+{
+ private String name;
+ private String options;
+ private int depth;
+ private boolean paths;
+ private boolean regexp;
+ private String profile;
+ private String order;
+ private String skin;
+ private String title;
+ private String shortTitle;
+ private List elements;
+
+ /**
+ * accessElements
+ *
+ * Access mutable persistent collection member for List wrappers.
+ *
+ * @return persistent collection
+ */
+ public List accessElements()
+ {
+ // create initial collection if necessary
+ if (elements == null)
+ {
+ elements = new ArrayList(4);
+ }
+ return elements;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getName()
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#setName(java.lang.String)
+ */
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getOptions()
+ */
+ public String getOptions()
+ {
+ return options;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#setOptions(java.lang.String)
+ */
+ public void setOptions(String options)
+ {
+ this.options = options;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getDepth()
+ */
+ public int getDepth()
+ {
+ return depth;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#setDepth(int)
+ */
+ public void setDepth(int depth)
+ {
+ this.depth = depth;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getPaths()
+ */
+ public boolean isPaths()
+ {
+ return paths;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#setPaths(boolean)
+ */
+ public void setPaths(boolean paths)
+ {
+ this.paths = paths;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getRegexp()
+ */
+ public boolean isRegexp()
+ {
+ return regexp;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#setRegexp(boolean)
+ */
+ public void setRegexp(boolean regexp)
+ {
+ this.regexp = regexp;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getProfile()
+ */
+ public String getProfile()
+ {
+ return profile;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#setProfile(java.lang.String)
+ */
+ public void setProfile(String locatorName)
+ {
+ profile = locatorName;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getOrder()
+ */
+ public String getOrder()
+ {
+ return order;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#setOrder(java.lang.String)
+ */
+ public void setOrder(String order)
+ {
+ this.order = order;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getSkin()
+ */
+ public String getSkin()
+ {
+ return skin;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#setSkin(java.lang.String)
+ */
+ public void setSkin(String name)
+ {
+ skin = name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getTitle()
+ */
+ public String getTitle()
+ {
+ return title;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#setTitle(java.lang.String)
+ */
+ public void setTitle(String title)
+ {
+ this.title = title;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getShortTitle()
+ */
+ public String getShortTitle()
+ {
+ return shortTitle;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#setShortTitle(java.lang.String)
+ */
+ public void setShortTitle(String title)
+ {
+ this.shortTitle = title;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getMenuElements()
+ */
+ public abstract List getMenuElements();
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#setMenuElements(java.util.List)
+ */
+ public void setMenuElements(List elements)
+ {
+ // set menu elements by replacing
+ // existing entries with new elements if
+ // new collection is specified
+ List menuElements = getMenuElements();
+ if (elements != menuElements)
+ {
+ // replace all menu elements
+ menuElements.clear();
+ if (elements != null)
+ {
+ menuElements.addAll(elements);
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ public boolean equals(Object o)
+ {
+ if (o instanceof BaseMenuDefinitionImpl)
+ {
+ if (name != null)
+ {
+ return name.equals(((BaseMenuDefinitionImpl)o).getName());
+ }
+ else
+ {
+ return (((BaseMenuDefinitionImpl)o).getName() == null);
+ }
+ }
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#hashCode()
+ */
+ public int hashCode()
+ {
+ if (name != null)
+ {
+ return name.hashCode();
+ }
+ return 0;
+ }
+}
Propchange: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionMetadata.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionMetadata.java?rev=351770&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionMetadata.java (added)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionMetadata.java Fri Dec 2 08:52:05 2005
@@ -0,0 +1,155 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.om.folder.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Locale;
+
+import org.apache.jetspeed.om.common.GenericMetadata;
+import org.apache.jetspeed.om.page.PageMetadataImpl;
+
+/**
+ * BaseMenuDefinitionMetadata
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id:$
+ */
+public abstract class BaseMenuDefinitionMetadata extends BaseMenuDefinitionElement
+{
+ private Collection metadataFields;
+
+ private PageMetadataImpl pageMetadata;
+
+ /**
+ * newPageMetadata
+ *
+ * Construct page manager specific metadata implementation.
+ *
+ * @param fields mutable fields collection
+ * @return page metadata
+ */
+ public abstract PageMetadataImpl newPageMetadata(Collection fields);
+
+ /**
+ * getPageMetadata
+ *
+ * Get page manager specific metadata implementation.
+ *
+ * @return page metadata
+ */
+ public PageMetadataImpl getPageMetadata()
+ {
+ if (pageMetadata == null)
+ {
+ if (metadataFields == null)
+ {
+ metadataFields = new ArrayList(1);
+ }
+ pageMetadata = newPageMetadata(metadataFields);
+ }
+ return pageMetadata;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getTitle()
+ * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#getTitle()
+ */
+ public String getTitle()
+ {
+ // no title available by default
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getShortTitle()
+ */
+ public String getShortTitle()
+ {
+ // no short title available by default
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#getText()
+ */
+ public String getText()
+ {
+ // no text available by default
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getTitle(java.util.Locale)
+ * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#getTitle(java.util.Locale)
+ */
+ public String getTitle(Locale locale)
+ {
+ // get title from metadata or use default title
+ String title = getPageMetadata().getText("title", locale);
+ if (title == null)
+ {
+ title = getTitle();
+ }
+ return title;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getShortTitle(java.util.Locale)
+ */
+ public String getShortTitle(Locale locale)
+ {
+ // get short title from metadata or use title from metadata,
+ // default short title, or default title
+ String shortTitle = getPageMetadata().getText("short-title", locale);
+ if (shortTitle == null)
+ {
+ shortTitle = getPageMetadata().getText("title", locale);
+ if (shortTitle == null)
+ {
+ shortTitle = getShortTitle();
+ if (shortTitle == null)
+ {
+ shortTitle = getTitle();
+ }
+ }
+ }
+ return shortTitle;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#getText(java.util.Locale)
+ */
+ public String getText(Locale locale)
+ {
+ // get title from metadata or use default title
+ String text = getPageMetadata().getText("text", locale);
+ if (text == null)
+ {
+ text = getText();
+ }
+ return text;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getMetadata()
+ * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#getMetadata()
+ */
+ public GenericMetadata getMetadata()
+ {
+ return getPageMetadata();
+ }
+}
Propchange: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuDefinitionMetadata.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuExcludeDefinitionImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuExcludeDefinitionImpl.java?rev=351770&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuExcludeDefinitionImpl.java (added)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuExcludeDefinitionImpl.java Fri Dec 2 08:52:05 2005
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.om.folder.impl;
+
+import org.apache.jetspeed.om.folder.MenuExcludeDefinition;
+
+/**
+ * BaseMenuExcludeDefinitionImpl
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id:$
+ */
+public abstract class BaseMenuExcludeDefinitionImpl extends BaseMenuDefinitionElement implements MenuExcludeDefinition
+{
+ private String name;
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuExcludeDefinition#getName()
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuExcludeDefinition#setName(java.lang.String)
+ */
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+}
Propchange: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuExcludeDefinitionImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuIncludeDefinitionImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuIncludeDefinitionImpl.java?rev=351770&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuIncludeDefinitionImpl.java (added)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuIncludeDefinitionImpl.java Fri Dec 2 08:52:05 2005
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.om.folder.impl;
+
+import org.apache.jetspeed.om.folder.MenuIncludeDefinition;
+
+/**
+ * BaseMenuIncludeDefinitionImpl
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id:$
+ */
+public abstract class BaseMenuIncludeDefinitionImpl extends BaseMenuDefinitionElement implements MenuIncludeDefinition
+{
+ private String name;
+ private boolean nest;
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuIncludeDefinition#getName()
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuIncludeDefinition#setName(java.lang.String)
+ */
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuIncludeDefinition#isNest()
+ */
+ public boolean isNest()
+ {
+ return nest;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuIncludeDefinition#setNest(boolean)
+ */
+ public void setNest(boolean nest)
+ {
+ this.nest = nest;
+ }
+}
Propchange: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuIncludeDefinitionImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuOptionsDefinitionImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuOptionsDefinitionImpl.java?rev=351770&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuOptionsDefinitionImpl.java (added)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuOptionsDefinitionImpl.java Fri Dec 2 08:52:05 2005
@@ -0,0 +1,147 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.om.folder.impl;
+
+import org.apache.jetspeed.om.folder.MenuOptionsDefinition;
+
+/**
+ * BaseMenuOptionsDefinitionImpl
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id:$
+ */
+public abstract class BaseMenuOptionsDefinitionImpl extends BaseMenuDefinitionElement implements MenuOptionsDefinition
+{
+ private String options;
+ private int depth;
+ private boolean paths;
+ private boolean regexp;
+ private String profile;
+ private String order;
+ private String skin;
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuOptionsDefinition#getOptions()
+ */
+ public String getOptions()
+ {
+ return options;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuOptionsDefinition#setOptions(java.lang.String)
+ */
+ public void setOptions(String options)
+ {
+ this.options = options;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuOptionsDefinition#getDepth()
+ */
+ public int getDepth()
+ {
+ return depth;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuOptionsDefinition#setDepth(int)
+ */
+ public void setDepth(int depth)
+ {
+ this.depth = depth;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuOptionsDefinition#isPaths()
+ */
+ public boolean isPaths()
+ {
+ return paths;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuOptionsDefinition#setPaths(boolean)
+ */
+ public void setPaths(boolean paths)
+ {
+ this.paths = paths;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuOptionsDefinition#isRegexp()
+ */
+ public boolean isRegexp()
+ {
+ return regexp;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuOptionsDefinition#setRegexp(boolean)
+ */
+ public void setRegexp(boolean regexp)
+ {
+ this.regexp = regexp;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuOptionsDefinition#getProfile()
+ */
+ public String getProfile()
+ {
+ return profile;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuOptionsDefinition#setProfile(java.lang.String)
+ */
+ public void setProfile(String locatorName)
+ {
+ profile = locatorName;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuOptionsDefinition#getOrder()
+ */
+ public String getOrder()
+ {
+ return order;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuOptionsDefinition#setOrder(java.lang.String)
+ */
+ public void setOrder(String order)
+ {
+ this.order = order;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuOptionsDefinition#getSkin()
+ */
+ public String getSkin()
+ {
+ return skin;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuOptionsDefinition#setSkin(java.lang.String)
+ */
+ public void setSkin(String name)
+ {
+ skin = name;
+ }
+}
Propchange: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuOptionsDefinitionImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuSeparatorDefinitionImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuSeparatorDefinitionImpl.java?rev=351770&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuSeparatorDefinitionImpl.java (added)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuSeparatorDefinitionImpl.java Fri Dec 2 08:52:05 2005
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.om.folder.impl;
+
+import org.apache.jetspeed.om.folder.MenuSeparatorDefinition;
+
+/**
+ * BaseMenuSeparatorDefinitionImpl
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id:$
+ */
+public abstract class BaseMenuSeparatorDefinitionImpl extends BaseMenuDefinitionMetadata implements MenuSeparatorDefinition
+{
+ private String skin;
+ private String title;
+ private String text;
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#getSkin()
+ */
+ public String getSkin()
+ {
+ return skin;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#setSkin(java.lang.String)
+ */
+ public void setSkin(String name)
+ {
+ skin = name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#getTitle()
+ */
+ public String getTitle()
+ {
+ return title;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#setTitle(java.lang.String)
+ */
+ public void setTitle(String title)
+ {
+ this.title = title;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#getText()
+ */
+ public String getText()
+ {
+ return text;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#setText(java.lang.String)
+ */
+ public void setText(String text)
+ {
+ this.text = text;
+ }
+}
Propchange: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/BaseMenuSeparatorDefinitionImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java?rev=351770&r1=351769&r2=351770&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java (original)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java Fri Dec 2 08:52:05 2005
@@ -26,6 +26,11 @@
import org.apache.jetspeed.om.common.SecuredResource;
import org.apache.jetspeed.om.folder.Folder;
import org.apache.jetspeed.om.folder.FolderNotFoundException;
+import org.apache.jetspeed.om.folder.MenuDefinition;
+import org.apache.jetspeed.om.folder.MenuExcludeDefinition;
+import org.apache.jetspeed.om.folder.MenuIncludeDefinition;
+import org.apache.jetspeed.om.folder.MenuOptionsDefinition;
+import org.apache.jetspeed.om.folder.MenuSeparatorDefinition;
import org.apache.jetspeed.om.page.Link;
import org.apache.jetspeed.om.page.Page;
import org.apache.jetspeed.om.page.PageMetadataImpl;
@@ -56,6 +61,7 @@
private List pages;
private List pageSecurity;
private List orders;
+ private List menus;
private FolderOrderList documentOrder;
private boolean documentOrderComparatorValid;
@@ -63,6 +69,7 @@
private NodeSet allNodeSet;
private NodeSet foldersNodeSet;
private NodeSet pagesNodeSet;
+ private FolderMenuDefinitionList menuDefinitions;
public FolderImpl()
{
@@ -87,6 +94,23 @@
}
/**
+ * accessMenus
+ *
+ * Access mutable persistent collection member for List wrappers.
+ *
+ * @return persistent collection
+ */
+ List accessMenus()
+ {
+ // create initial collection if necessary
+ if (menus == null)
+ {
+ menus = new ArrayList(2);
+ }
+ return menus;
+ }
+
+ /**
* addFolder
*
* Adds a folder to the persistent collection and resets cached node sets.
@@ -488,15 +512,74 @@
*/
public List getMenuDefinitions()
{
- return null; // NYI
+ // return mutable menu definition list
+ // by using list wrapper to manage
+ // element uniqueness
+ if (menuDefinitions == null)
+ {
+ menuDefinitions = new FolderMenuDefinitionList(this);
+ }
+ return menuDefinitions;
}
/* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.Folder#newMenuDefinition()
+ */
+ public MenuDefinition newMenuDefinition()
+ {
+ return new FolderMenuDefinitionImpl();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.Folder#newMenuExcludeDefinition()
+ */
+ public MenuExcludeDefinition newMenuExcludeDefinition()
+ {
+ return new FolderMenuExcludeDefinitionImpl();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.Folder#newMenuIncludeDefinition()
+ */
+ public MenuIncludeDefinition newMenuIncludeDefinition()
+ {
+ return new FolderMenuIncludeDefinitionImpl();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.Folder#newMenuOptionsDefinition()
+ */
+ public MenuOptionsDefinition newMenuOptionsDefinition()
+ {
+ return new FolderMenuOptionsDefinitionImpl();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.Folder#newMenuSeparatorDefinition()
+ */
+ public MenuSeparatorDefinition newMenuSeparatorDefinition()
+ {
+ return new FolderMenuSeparatorDefinitionImpl();
+ }
+
+ /* (non-Javadoc)
* @see org.apache.jetspeed.om.folder.Folder#setMenuDefinitions(java.util.List)
*/
public void setMenuDefinitions(List definitions)
{
- // NYI
+ // set menu definitions by replacing
+ // existing entries with new elements if
+ // new collection is specified
+ List menuDefinitions = getMenuDefinitions();
+ if (definitions != menuDefinitions)
+ {
+ // replace all menu definitions
+ menuDefinitions.clear();
+ if (definitions != null)
+ {
+ menuDefinitions.addAll(definitions);
+ }
+ }
}
/* (non-Javadoc)
Added: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElement.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElement.java?rev=351770&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElement.java (added)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElement.java Fri Dec 2 08:52:05 2005
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.om.folder.impl;
+
+/**
+ * FolderMenuDefinitionElement
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id:$
+ */
+public interface FolderMenuDefinitionElement
+{
+ // new interface defined only to facilitate OJB table/class mapping
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.impl.BaseMenuDefinitionElement#getElementOrder()
+ */
+ int getElementOrder();
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.impl.BaseMenuDefinitionElement#setElementOrder(int)
+ */
+ void setElementOrder(int order);
+}
Propchange: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElement.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElementList.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElementList.java?rev=351770&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElementList.java (added)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElementList.java Fri Dec 2 08:52:05 2005
@@ -0,0 +1,215 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.om.folder.impl;
+
+import java.util.AbstractList;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.jetspeed.om.folder.MenuDefinition;
+import org.apache.jetspeed.om.folder.MenuExcludeDefinition;
+import org.apache.jetspeed.om.folder.MenuIncludeDefinition;
+import org.apache.jetspeed.om.folder.MenuOptionsDefinition;
+import org.apache.jetspeed.om.folder.MenuSeparatorDefinition;
+
+/**
+ * FolderMenuDefinitionElementList
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id$
+ */
+class FolderMenuDefinitionElementList extends AbstractList
+{
+ private FolderMenuDefinitionImpl menuDefinition;
+
+ FolderMenuDefinitionElementList(FolderMenuDefinitionImpl menuDefinition)
+ {
+ super();
+ this.menuDefinition = menuDefinition;
+ }
+
+ /**
+ * validateMenuElementForAdd
+ *
+ * Validates element to be added to this list.
+ *
+ * @param menuElement element to add
+ * @return list element to add
+ */
+ private FolderMenuDefinitionElement validateMenuElementForAdd(Object menuElement)
+ {
+ // validate element instance class
+ if (menuElement == null)
+ {
+ throw new NullPointerException("Unable to add null to list.");
+ }
+ if (!(menuElement instanceof FolderMenuDefinitionElement))
+ {
+ // duplicate menu element from equivalent types
+ if (menuElement instanceof MenuDefinition)
+ {
+ MenuDefinition origMenuElement = (MenuDefinition)menuElement;
+ FolderMenuDefinitionImpl dupMenuElement = new FolderMenuDefinitionImpl();
+ // TODO: move this logic to copy methods on implementations
+ dupMenuElement.setName(origMenuElement.getName());
+ dupMenuElement.setOptions(origMenuElement.getOptions());
+ dupMenuElement.setDepth(origMenuElement.getDepth());
+ dupMenuElement.setPaths(origMenuElement.isPaths());
+ dupMenuElement.setRegexp(origMenuElement.isRegexp());
+ dupMenuElement.setProfile(origMenuElement.getProfile());
+ dupMenuElement.setOrder(origMenuElement.getOrder());
+ dupMenuElement.setSkin(origMenuElement.getSkin());
+ dupMenuElement.setTitle(origMenuElement.getTitle());
+ dupMenuElement.setShortTitle(origMenuElement.getShortTitle());
+ dupMenuElement.setMenuElements(origMenuElement.getMenuElements());
+ dupMenuElement.getMetadata().copyFields(origMenuElement.getMetadata().getFields());
+ menuElement = dupMenuElement;
+ }
+ else if (menuElement instanceof MenuExcludeDefinition)
+ {
+ MenuExcludeDefinition origMenuElement = (MenuExcludeDefinition)menuElement;
+ FolderMenuExcludeDefinitionImpl dupMenuElement = new FolderMenuExcludeDefinitionImpl();
+ // TODO: move this logic to copy methods on implementations
+ dupMenuElement.setName(origMenuElement.getName());
+ menuElement = dupMenuElement;
+ }
+ else if (menuElement instanceof MenuIncludeDefinition)
+ {
+ MenuIncludeDefinition origMenuElement = (MenuIncludeDefinition)menuElement;
+ FolderMenuIncludeDefinitionImpl dupMenuElement = new FolderMenuIncludeDefinitionImpl();
+ // TODO: move this logic to copy methods on implementations
+ dupMenuElement.setName(origMenuElement.getName());
+ dupMenuElement.setNest(origMenuElement.isNest());
+ menuElement = dupMenuElement;
+ }
+ else if (menuElement instanceof MenuOptionsDefinition)
+ {
+ MenuOptionsDefinition origMenuElement = (MenuOptionsDefinition)menuElement;
+ FolderMenuOptionsDefinitionImpl dupMenuElement = new FolderMenuOptionsDefinitionImpl();
+ // TODO: move this logic to copy methods on implementations
+ dupMenuElement.setOptions(origMenuElement.getOptions());
+ dupMenuElement.setDepth(origMenuElement.getDepth());
+ dupMenuElement.setPaths(origMenuElement.isPaths());
+ dupMenuElement.setRegexp(origMenuElement.isRegexp());
+ dupMenuElement.setProfile(origMenuElement.getProfile());
+ dupMenuElement.setOrder(origMenuElement.getOrder());
+ dupMenuElement.setSkin(origMenuElement.getSkin());
+ menuElement = dupMenuElement;
+ }
+ else if (menuElement instanceof MenuSeparatorDefinition)
+ {
+ MenuSeparatorDefinition origMenuElement = (MenuSeparatorDefinition)menuElement;
+ FolderMenuSeparatorDefinitionImpl dupMenuElement = new FolderMenuSeparatorDefinitionImpl();
+ // TODO: move this logic to copy methods on implementations
+ dupMenuElement.setSkin(origMenuElement.getSkin());
+ dupMenuElement.setTitle(origMenuElement.getTitle());
+ dupMenuElement.setText(origMenuElement.getText());
+ dupMenuElement.getMetadata().copyFields(origMenuElement.getMetadata().getFields());
+ menuElement = dupMenuElement;
+ }
+ else
+ {
+ throw new ClassCastException("Unable to create menu element list instance from: " + menuElement.getClass().getName() + ".");
+ }
+ }
+ return (FolderMenuDefinitionElement)menuElement;
+ }
+
+ /* (non-Javadoc)
+ * @see java.util.List#add(int,java.lang.Object)
+ */
+ public void add(int index, Object element)
+ {
+ // implement for modifiable AbstractList:
+ // validate index
+ if ((index < 0) || (index > menuDefinition.accessElements().size()))
+ {
+ throw new IndexOutOfBoundsException("Unable to add to list at index: " + index);
+ }
+ // verify element
+ FolderMenuDefinitionElement menuElement = validateMenuElementForAdd(element);
+ // add to underlying ordered list
+ menuDefinition.accessElements().add(index, menuElement);
+ // set element order in added element
+ if (index > 0)
+ {
+ menuElement.setElementOrder(((FolderMenuDefinitionElement)menuDefinition.accessElements().get(index-1)).getElementOrder() + 1);
+ }
+ else
+ {
+ menuElement.setElementOrder(0);
+ }
+ // maintain element order in subsequent elements
+ for (int i = index, limit = menuDefinition.accessElements().size() - 1; (i < limit); i++)
+ {
+ FolderMenuDefinitionElement nextMenuElement = (FolderMenuDefinitionElement)menuDefinition.accessElements().get(i + 1);
+ if (nextMenuElement.getElementOrder() <= menuElement.getElementOrder())
+ {
+ // adjust element order for next element
+ nextMenuElement.setElementOrder(menuElement.getElementOrder() + 1);
+ menuElement = nextMenuElement;
+ }
+ else
+ {
+ // element order maintained for remaining list elements
+ break;
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.util.List#get(int)
+ */
+ public Object get(int index)
+ {
+ // implement for modifiable AbstractList
+ return menuDefinition.accessElements().get(index);
+ }
+
+ /* (non-Javadoc)
+ * @see java.util.List#remove(int)
+ */
+ public Object remove(int index)
+ {
+ // implement for modifiable AbstractList
+ return menuDefinition.accessElements().remove(index);
+ }
+
+ /* (non-Javadoc)
+ * @see java.util.List#set(int,java.lang.Object)
+ */
+ public Object set(int index, Object element)
+ {
+ // implement for modifiable AbstractList:
+ // verify element
+ FolderMenuDefinitionElement newMenuElement = validateMenuElementForAdd(element);
+ // set in underlying ordered list
+ FolderMenuDefinitionElement menuElement = (FolderMenuDefinitionElement)menuDefinition.accessElements().set(index, newMenuElement);
+ // set element order in new element
+ newMenuElement.setElementOrder(menuElement.getElementOrder());
+ // return element
+ return menuElement;
+ }
+
+ /* (non-Javadoc)
+ * @see java.util.List#size()
+ */
+ public int size()
+ {
+ // implement for modifiable AbstractList
+ return menuDefinition.accessElements().size();
+ }
+}
Propchange: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElementList.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionImpl.java?rev=351770&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionImpl.java (added)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionImpl.java Fri Dec 2 08:52:05 2005
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.om.folder.impl;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.jetspeed.om.folder.MenuDefinition;
+import org.apache.jetspeed.om.page.PageMetadataImpl;
+
+/**
+ * FolderMenuDefinitionImpl
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id:$
+ */
+public class FolderMenuDefinitionImpl extends BaseMenuDefinitionImpl implements MenuDefinition, FolderMenuDefinitionElement
+{
+ // new class defined only to facilitate OJB table/class mapping
+
+ private FolderMenuDefinitionElementList menuElements;
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.impl.BaseMenuDefinitionMetadata#newPageMetadata()
+ */
+ public PageMetadataImpl newPageMetadata(Collection fields)
+ {
+ PageMetadataImpl pageMetadata = new PageMetadataImpl(FolderMenuMetadataLocalizedFieldImpl.class);
+ pageMetadata.setFields(fields);
+ return pageMetadata;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.folder.MenuDefinition#getMenuElements()
+ */
+ public List getMenuElements()
+ {
+ // return mutable menu element list
+ // by using list wrapper to manage
+ // element order
+ if (menuElements == null)
+ {
+ menuElements = new FolderMenuDefinitionElementList(this);
+ }
+ return menuElements;
+ }
+}
Propchange: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org