[jboss-cvs] JBossBlog SVN: r102 - in trunk-esial/blog-core: src/etc/META-INF and 12 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Mar 22 12:37:07 EDT 2007
Author: acrignon
Date: 2007-03-22 12:37:07 -0400 (Thu, 22 Mar 2007)
New Revision: 102
Added:
trunk-esial/blog-core/src/java/org/jboss/blog/model/AbstractBlogCategory.java
trunk-esial/blog-core/src/java/org/jboss/blog/model/BlogCategory.java
trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/BlogCategoryImpl.java
trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogCategory.hbm.xml
trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogCategory.java
trunk-esial/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogCategory.java
trunk-esial/blog-core/src/java/org/jboss/blog/ui/CategoryEdit.java
trunk-esial/blog-core/src/web/views/blog_man.xhtml
trunk-esial/blog-core/src/web/views/cat_man.xhtml
trunk-esial/blog-core/src/web/views/cat_mod.xhtml
trunk-esial/blog-core/src/web/views/cat_new.xhtml
Modified:
trunk-esial/blog-core/build.xml
trunk-esial/blog-core/src/etc/META-INF/acl-mapping.xml
trunk-esial/blog-core/src/etc/META-INF/acl-permissions.xml
trunk-esial/blog-core/src/etc/META-INF/jboss-service.xml
trunk-esial/blog-core/src/etc/conf/hibernate/hibernate.cfg.xml
trunk-esial/blog-core/src/java/org/jboss/blog/BlogName.java
trunk-esial/blog-core/src/java/org/jboss/blog/model/BlogModel.java
trunk-esial/blog-core/src/java/org/jboss/blog/model/BlogPost.java
trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/BlogModelImpl.java
trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/BlogPostImpl.java
trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/EmptyBlogModel.java
trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/EmptyBlogPost.java
trunk-esial/blog-core/src/java/org/jboss/blog/service/model/rome/RomeBlogPost.java
trunk-esial/blog-core/src/java/org/jboss/blog/service/model/rome/RomeParsingBlogModelService.java
trunk-esial/blog-core/src/java/org/jboss/blog/service/store/BlogStoreService.java
trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.hbm.xml
trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.java
trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml
trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.java
trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java
trunk-esial/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogModel.java
trunk-esial/blog-core/src/java/org/jboss/blog/tools/UITools.java
trunk-esial/blog-core/src/java/org/jboss/blog/ui/BlogView.java
trunk-esial/blog-core/src/java/org/jboss/blog/ui/IdEdit.java
trunk-esial/blog-core/src/java/org/jboss/blog/ui/PostEdit.java
trunk-esial/blog-core/src/java/org/jboss/blog/ui/SelectableBlogName.java
trunk-esial/blog-core/src/java/org/jboss/blog/ui/State.java
trunk-esial/blog-core/src/web/WEB-INF/faces-config.xml
trunk-esial/blog-core/src/web/views/admin_panel.xhtml
trunk-esial/blog-core/src/web/views/blog_del.xhtml
trunk-esial/blog-core/src/web/views/blog_edit.xhtml
trunk-esial/blog-core/src/web/views/blog_new.xhtml
trunk-esial/blog-core/src/web/views/blog_view.xhtml
trunk-esial/blog-core/src/web/views/id_edit.xhtml
trunk-esial/blog-core/src/web/views/view.xhtml
Log:
Modified: trunk-esial/blog-core/build.xml
===================================================================
--- trunk-esial/blog-core/build.xml 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/build.xml 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,147 +1,147 @@
-<?xml version='1.0' encoding='UTF-8'?>
-
-<project name="JBoss Blog" default="build">
- <!-- Configuration of deployment -->
- <property name="jboss.home" value="C:\\jboss-4.0.5.GA" />
- <property name="jboss.conf" value="default" />
- <!-- Unset this property if jboss portal is deployed -->
- <property name="jboss.portal.present" value="true" />
-
- <!-- Configuration of source/ target directories -->
- <property name="src" value="src"/>
- <property name="src.java" value="${src}/java"/>
- <property name="src.meta" value="${src}/etc"/>
- <property name="src.web" value="${src}/web"/>
- <property name="build" value="build"/>
- <property name="dist" value="dist"/>
-
- <!-- Name of the service archive which will contain the blog application -->
- <property name="sar.name" value="jboss-blog.sar" />
- <!-- Name of the web application that will be contained in the sar -->
- <property name="war.name" value="jboss-blog.war" />
-
- <!-- Helper properties: built using the above ones -->
- <property name="dist.main.dir" value="${dist}/${sar.name}" />
- <property name="dist.lib.dir" value="${dist.main.dir}/lib" />
- <property name="dist.war.dir" value="${dist.main.dir}/${war.name}" />
- <property name="deploy.dir" value="${jboss.home}/server/${jboss.conf}/deploy" />
-
- <!-- Dependency jars filesets definitions -->
- <fileset id="rome.jars" dir="../lib/rome"><include name="**/*.jar"/></fileset>
- <fileset id="jboss.jars" dir="../lib/jboss"><include name="**/*.jar"/></fileset>
- <fileset id="jboss.portal.jars" dir="../lib/jboss-portal"><include name="**/*.jar"/></fileset>
- <fileset id="jboss.jaae.jars" dir="../lib/jboss-jaae"><include name="**/*.jar"/></fileset>
- <fileset id="portlet.jars" dir="../lib/portlet"><include name="**/*.jar"/></fileset>
- <fileset id="facelets.jars" dir="../lib/facelets"><include name="**/*.jar"/></fileset>
- <fileset id="myfaces.jars" dir="../lib/myfaces"><include name="**/*.jar"/></fileset>
- <fileset id="jstl.jars" dir="../lib/jstl"><include name="**/*.jar"/></fileset>
- <fileset id="hibernate.jars" dir="../lib/hibernate"><include name="**/*.jar"/></fileset>
- <fileset id="servlet.jars" dir="../lib/servlet"><include name="**/*.jar"/></fileset>
- <fileset id="freemarker.jars" dir="../lib/freemarker"><include name="**/*.jar"/></fileset>
- <fileset id="log4j.jar" dir="../lib/xdoclet"><include name="log4j.jar"/></fileset>
-
- <fileset id="jboss.portal.identity.jars" dir="../lib/jboss-portal">
- <include name="**/portal-identity-lib.jar"/></fileset>
-
- <!-- Classpath for building the application: includes all dependency jars -->
- <path id="base.jars">
- <fileset refid="rome.jars" />
- <fileset refid="jboss.jars" />
- <fileset refid="jboss.portal.jars" />
- <fileset refid="jboss.jaae.jars" />
- <fileset refid="portlet.jars" />
- <fileset refid="facelets.jars" />
- <fileset refid="myfaces.jars" />
- <fileset refid="jstl.jars" />
- <fileset refid="hibernate.jars" />
- <fileset refid="servlet.jars" />
- <fileset refid="freemarker.jars" />
- <fileset refid="log4j.jar" />
- </path>
-
- <!-- XDoclet task definition -->
- <path id="xdoclet.jars">
- <fileset dir="../lib/xdoclet"><include name="**/*.jar"/></fileset>
- </path>
-
- <taskdef name="jmxdoclet"
- classname="xdoclet.modules.jmx.JMXDocletTask"
- classpathref="xdoclet.jars"/>
- <taskdef name="hibernatedoclet"
- classname="xdoclet.modules.hibernate.HibernateDocletTask"
- classpathref="xdoclet.jars" />
-
- <!-- BUILD TARGETS -->
-
- <target name="init">
-
- </target>
-
- <target name="copy-libs-for-servlet" unless="jboss.portal.present">
- <copy todir="${dist.lib.dir}"><fileset refid="myfaces.jars"/></copy>
- <copy todir="${dist.lib.dir}"><fileset refid="facelets.jars"/></copy>
- </target>
-
- <target name="build" depends="init,clean">
- <mkdir dir="${build}" />
- <!-- Compiling the source -->
- <javac srcdir="${src.java}" destdir="${build}" target="1.4" source="1.4">
- <classpath refid="base.jars" />
- </javac>
- <!-- Copying any xmls -->
- <copy todir="${build}">
- <fileset dir="${src.java}">
- <include name="**/*.xml"/>
- </fileset>
- </copy>
- <!-- Creating the xmbean xml-s -->
- <jmxdoclet destdir="${build}">
- <fileset dir="${src.java}"><include name="**/*.java"/></fileset>
- <jbossxmbean />
- </jmxdoclet>
- </target>
-
- <target name="dist" depends="build">
- <mkdir dir="${dist.lib.dir}" />
-
- <!-- Copying the meta information -->
- <copy todir="${dist.main.dir}">
- <fileset dir="${src.meta}"><include name="**/*" /></fileset>
- </copy>
-
- <!-- Creating the jar with the classes -->
- <jar destfile="${dist.lib.dir}/jboss-blog-core.jar" basedir="${build}" />
-
- <!-- Creating the web application -->
- <mkdir dir="${dist.war.dir}" />
- <copy todir="${dist.war.dir}">
- <fileset dir="${src.web}"><include name="**/*" /></fileset>
- </copy>
-
- <!-- Copying dependency jars -->
- <copy todir="${dist.lib.dir}"><fileset refid="rome.jars"/></copy>
- <copy todir="${dist.lib.dir}"><fileset refid="jboss.jaae.jars"/></copy>
- <copy todir="${dist.lib.dir}"><fileset refid="jboss.portal.identity.jars"/></copy>
- <copy todir="${dist.lib.dir}"><fileset refid="freemarker.jars"/></copy>
- <antcall target="copy-libs-for-servlet" />
- </target>
-
- <target name="deploy" depends="dist,undeploy">
- <!-- Copying the sar directory to the jboss deploy dir -->
- <copy todir="${deploy.dir}">
- <fileset dir="${dist}">
- <include name="${sar.name}/**" />
- </fileset>
- </copy>
- </target>
-
- <target name="undeploy">
- <!-- Deleting old deployment -->
- <delete dir="${deploy.dir}/${sar.name}" />
- </target>
-
- <target name="clean">
- <delete dir="${build}" />
- <delete dir="${dist}" />
- </target>
-</project>
+<?xml version='1.0' encoding='UTF-8'?>
+
+<project name="JBoss Blog" default="build">
+ <!-- Configuration of deployment -->
+ <property name="jboss.home" value="C:\\jboss-4.0.5.GA" />
+ <property name="jboss.conf" value="default" />
+ <!-- Unset this property if jboss portal is deployed -->
+ <property name="jboss.portal.present" value="true" />
+
+ <!-- Configuration of source/ target directories -->
+ <property name="src" value="src"/>
+ <property name="src.java" value="${src}/java"/>
+ <property name="src.meta" value="${src}/etc"/>
+ <property name="src.web" value="${src}/web"/>
+ <property name="build" value="build"/>
+ <property name="dist" value="dist"/>
+
+ <!-- Name of the service archive which will contain the blog application -->
+ <property name="sar.name" value="jboss-blog.sar" />
+ <!-- Name of the web application that will be contained in the sar -->
+ <property name="war.name" value="jboss-blog.war" />
+
+ <!-- Helper properties: built using the above ones -->
+ <property name="dist.main.dir" value="${dist}/${sar.name}" />
+ <property name="dist.lib.dir" value="${dist.main.dir}/lib" />
+ <property name="dist.war.dir" value="${dist.main.dir}/${war.name}" />
+ <property name="deploy.dir" value="${jboss.home}/server/${jboss.conf}/deploy" />
+
+ <!-- Dependency jars filesets definitions -->
+ <fileset id="rome.jars" dir="../lib/rome"><include name="**/*.jar"/></fileset>
+ <fileset id="jboss.jars" dir="../lib/jboss"><include name="**/*.jar"/></fileset>
+ <fileset id="jboss.portal.jars" dir="../lib/jboss-portal"><include name="**/*.jar"/></fileset>
+ <fileset id="jboss.jaae.jars" dir="../lib/jboss-jaae"><include name="**/*.jar"/></fileset>
+ <fileset id="portlet.jars" dir="../lib/portlet"><include name="**/*.jar"/></fileset>
+ <fileset id="facelets.jars" dir="../lib/facelets"><include name="**/*.jar"/></fileset>
+ <fileset id="myfaces.jars" dir="../lib/myfaces"><include name="**/*.jar"/></fileset>
+ <fileset id="jstl.jars" dir="../lib/jstl"><include name="**/*.jar"/></fileset>
+ <fileset id="hibernate.jars" dir="../lib/hibernate"><include name="**/*.jar"/></fileset>
+ <fileset id="servlet.jars" dir="../lib/servlet"><include name="**/*.jar"/></fileset>
+ <fileset id="freemarker.jars" dir="../lib/freemarker"><include name="**/*.jar"/></fileset>
+ <fileset id="log4j.jar" dir="../lib/xdoclet"><include name="log4j.jar"/></fileset>
+
+ <fileset id="jboss.portal.identity.jars" dir="../lib/jboss-portal">
+ <include name="**/portal-identity-lib.jar"/></fileset>
+
+ <!-- Classpath for building the application: includes all dependency jars -->
+ <path id="base.jars">
+ <fileset refid="rome.jars" />
+ <fileset refid="jboss.jars" />
+ <fileset refid="jboss.portal.jars" />
+ <fileset refid="jboss.jaae.jars" />
+ <fileset refid="portlet.jars" />
+ <fileset refid="facelets.jars" />
+ <fileset refid="myfaces.jars" />
+ <fileset refid="jstl.jars" />
+ <fileset refid="hibernate.jars" />
+ <fileset refid="servlet.jars" />
+ <fileset refid="freemarker.jars" />
+ <fileset refid="log4j.jar" />
+ </path>
+
+ <!-- XDoclet task definition -->
+ <path id="xdoclet.jars">
+ <fileset dir="../lib/xdoclet"><include name="**/*.jar"/></fileset>
+ </path>
+
+ <taskdef name="jmxdoclet"
+ classname="xdoclet.modules.jmx.JMXDocletTask"
+ classpathref="xdoclet.jars"/>
+ <taskdef name="hibernatedoclet"
+ classname="xdoclet.modules.hibernate.HibernateDocletTask"
+ classpathref="xdoclet.jars" />
+
+ <!-- BUILD TARGETS -->
+
+ <target name="init">
+
+ </target>
+
+ <target name="copy-libs-for-servlet" unless="jboss.portal.present">
+ <copy todir="${dist.lib.dir}"><fileset refid="myfaces.jars"/></copy>
+ <copy todir="${dist.lib.dir}"><fileset refid="facelets.jars"/></copy>
+ </target>
+
+ <target name="build" depends="init,clean">
+ <mkdir dir="${build}" />
+ <!-- Compiling the source -->
+ <javac srcdir="${src.java}" destdir="${build}" target="1.4" source="1.4" debug="on">
+ <classpath refid="base.jars" />
+ </javac>
+ <!-- Copying any xmls -->
+ <copy todir="${build}">
+ <fileset dir="${src.java}">
+ <include name="**/*.xml"/>
+ </fileset>
+ </copy>
+ <!-- Creating the xmbean xml-s -->
+ <jmxdoclet destdir="${build}">
+ <fileset dir="${src.java}"><include name="**/*.java"/></fileset>
+ <jbossxmbean />
+ </jmxdoclet>
+ </target>
+
+ <target name="dist" depends="build">
+ <mkdir dir="${dist.lib.dir}" />
+
+ <!-- Copying the meta information -->
+ <copy todir="${dist.main.dir}">
+ <fileset dir="${src.meta}"><include name="**/*" /></fileset>
+ </copy>
+
+ <!-- Creating the jar with the classes -->
+ <jar destfile="${dist.lib.dir}/jboss-blog-core.jar" basedir="${build}" />
+
+ <!-- Creating the web application -->
+ <mkdir dir="${dist.war.dir}" />
+ <copy todir="${dist.war.dir}">
+ <fileset dir="${src.web}"><include name="**/*" /></fileset>
+ </copy>
+
+ <!-- Copying dependency jars -->
+ <copy todir="${dist.lib.dir}"><fileset refid="rome.jars"/></copy>
+ <copy todir="${dist.lib.dir}"><fileset refid="jboss.jaae.jars"/></copy>
+ <copy todir="${dist.lib.dir}"><fileset refid="jboss.portal.identity.jars"/></copy>
+ <copy todir="${dist.lib.dir}"><fileset refid="freemarker.jars"/></copy>
+ <antcall target="copy-libs-for-servlet" />
+ </target>
+
+ <target name="deploy" depends="dist,undeploy">
+ <!-- Copying the sar directory to the jboss deploy dir -->
+ <copy todir="${deploy.dir}">
+ <fileset dir="${dist}">
+ <include name="${sar.name}/**" />
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="undeploy">
+ <!-- Deleting old deployment -->
+ <delete dir="${deploy.dir}/${sar.name}" />
+ </target>
+
+ <target name="clean">
+ <delete dir="${build}" />
+ <delete dir="${dist}" />
+ </target>
+</project>
Modified: trunk-esial/blog-core/src/etc/META-INF/acl-mapping.xml
===================================================================
--- trunk-esial/blog-core/src/etc/META-INF/acl-mapping.xml 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/etc/META-INF/acl-mapping.xml 2007-03-22 16:37:07 UTC (rev 102)
@@ -49,6 +49,10 @@
<class>org.jboss.blog.ui.BlogEdit</class>
<method>delete</method>
</resource>
+ <resource type="jsfAction" criteriaId="manageBlog://action">
+ <class>org.jboss.blog.ui.BlogView</class>
+ <method>manageBlog</method>
+ </resource>
</function>
<function id="manageCategory" name="Manage Category">
@@ -57,11 +61,11 @@
<id>acl://manageCategory</id>
</resource>
<!-- action protection -->
- <resource type="jsfAction" criteriaId="manageCategories://action">
+ <resource type="jsfAction" criteriaId="manageCategory://action">
<class>org.jboss.blog.ui.BlogEdit</class>
<method>save</method>
</resource>
- <implies>accessAdminModule</implies>
+ <!-- implies>accessAdminModule</implies-->
</function>
</module>
Modified: trunk-esial/blog-core/src/etc/META-INF/acl-permissions.xml
===================================================================
--- trunk-esial/blog-core/src/etc/META-INF/acl-permissions.xml 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/etc/META-INF/acl-permissions.xml 2007-03-22 16:37:07 UTC (rev 102)
@@ -44,6 +44,7 @@
<!-- User Module permissions -->
<permission action="addComment" />
+ <permission action="manageComment"/>
<!-- permission to edit only my own posts -->
<!--<permission action="editPost">
<criteria for="editPost://ui">param[0].poster.user.userName.equals(identity.identity.userName)</criteria>
@@ -63,8 +64,21 @@
<!-- wild card permission -->
<permission action="all" />
+ <!--permission action="viewComment" />
+ <permission action="accessAdminModule" />
+ <permission action="manageBlog"/-->
</role>
+ <role name="BlogAdministrateur" id="BlogAdmin">
+ <permission action="viewComment" />
+ <permission action="managePost" />
+ <permission action="manageBlog" />
+ <permission action="manageCategory"/>
+ <permission action="manageComment"/>
+ <!--permission action="manageCategory"/-->
+
+ </role>
+
<!--
deployment specific roles......just examples of how fine grained permissions can be assigned
this is an example of how the rules would possibly setup for JBoss.org Forums...
Modified: trunk-esial/blog-core/src/etc/META-INF/jboss-service.xml
===================================================================
--- trunk-esial/blog-core/src/etc/META-INF/jboss-service.xml 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/etc/META-INF/jboss-service.xml 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,90 +1,90 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE server
- PUBLIC "-//JBoss//DTD MBean Service 4.0//EN"
- "http://www.jboss.org/j2ee/dtd/jboss-service_4_0.dtd">
-<server>
- <!-- Main blog service -->
- <mbean code="org.jboss.blog.service.BlogServiceImpl"
- name="blog:service=Main"
- xmbean-dd="org/jboss/blog/service/BlogServiceImpl.xml">
- <depends optional-attribute-name="NameService"
- proxy-type="attribute">blog:service=Name</depends>
- <depends optional-attribute-name="ModelService"
- proxy-type="attribute">blog:service=Model</depends>
- <depends optional-attribute-name="PermissionsService"
- proxy-type="attribute">blog:service=Permissions</depends>
- <depends optional-attribute-name="ConfigurationService"
- proxy-type="attribute">blog:service=Configuration</depends>
- <depends optional-attribute-name="StoreService"
- proxy-type="attribute">blog:service=Store</depends>
- </mbean>
-
- <!-- Name service -->
- <mbean code="org.jboss.blog.service.name.PortletPreferencesBlogNameService"
- name="blog:service=Name"
- xmbean-dd="org/jboss/blog/service/name/PortletPreferencesBlogNameService.xml" >
- <attribute name="IdName">blogId</attribute>
- <attribute name="CategoryName">blogCategory</attribute>
- </mbean>
-
- <!-- Configuration service -->
- <mbean code="org.jboss.blog.service.configuration.PortletPreferencesBlogConfigurationService"
- name="blog:service=Configuration"
- xmbean-dd="org/jboss/blog/service/configuration/PortletPreferencesBlogConfigurationService.xml" >
- <attribute name="NumberOfPostsPerPageName">numberOfPostsPerPage</attribute>
- <attribute name="ViewPostsOnSeparatePageName">viewPostsOnSeparatePage</attribute>
- <attribute name="ViewAllPostsName">viewAllPosts</attribute>
- <attribute name="CommentsEnabledName">commentsEnabled</attribute>
- </mbean>
-
- <!-- Model service -->
- <mbean code="org.jboss.blog.service.model.DelegatingModelService"
- name="blog:service=Model"
- xmbean-dd="org/jboss/blog/service/model/DelegatingModelService.xml">
- <depends optional-attribute-name="ExternalDelegateModelService"
- proxy-type="attribute">blog:service=CachingModel</depends>
- <depends optional-attribute-name="InternalDelegateModelService"
- proxy-type="attribute">blog:service=StoreModel</depends>
- </mbean>
- <mbean code="org.jboss.blog.service.model.StoreModelService"
- name="blog:service=StoreModel"
- xmbean-dd="org/jboss/blog/service/model/StoreModelService.xml">
- <depends optional-attribute-name="StoreService"
- proxy-type="attribute">blog:service=Store</depends>
- </mbean>
- <mbean code="org.jboss.blog.service.model.caching.CachingBlogModelService"
- name="blog:service=CachingModel"
- xmbean-dd="org/jboss/blog/service/model/caching/CachingBlogModelService.xml">
- <attribute name="UpdateInterval">60000</attribute>
- <depends optional-attribute-name="DelegateModelService"
- proxy-type="attribute">blog:service=RomeParsingModel</depends>
- </mbean>
- <mbean code="org.jboss.blog.service.model.rome.RomeParsingBlogModelService"
- name="blog:service=RomeParsingModel"
- xmbean-dd="org/jboss/blog/service/model/rome/RomeParsingBlogModelService.xml">
- </mbean>
-
- <!-- Permissions service -->
- <mbean code="org.jboss.blog.service.permissions.acl.AclBlogPermissionsService"
- name="blog:service=Permissions"
- xmbean-dd="org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.xml">
- <depends optional-attribute-name="UserModule"
- proxy-type="attribute">portal:service=Module,type=User</depends>
- </mbean>
- <!-- JAAE service -->
- <mbean code="org.jboss.security.acl.AclKernelFactory"
- name="org.jboss.security.acl.AclKernelFactory:service=aclKernelFactory"
- xmbean-dd="org/jboss/security/acl/AclKernelFactory.xml">
- <depends>portal:service=Module,type=User</depends>
- <attribute name="aclKernel">org.jboss.security.acl.JBossAclKernel</attribute>
- </mbean>
-
- <!-- Store service -->
- <mbean code="org.jboss.blog.service.store.hibernate.HibernateBlogStoreService"
- name="blog:service=Store"
- xmbean-dd="org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.xml" >
- <depends optional-attribute-name="PermissionsService"
- proxy-type="attribute">blog:service=Permissions</depends>
- <depends>jboss.jca:name=BlogDS,service=DataSourceBinding</depends>
- </mbean>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE server
+ PUBLIC "-//JBoss//DTD MBean Service 4.0//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss-service_4_0.dtd">
+<server>
+ <!-- Main blog service -->
+ <mbean code="org.jboss.blog.service.BlogServiceImpl"
+ name="blog:service=Main"
+ xmbean-dd="org/jboss/blog/service/BlogServiceImpl.xml">
+ <depends optional-attribute-name="NameService"
+ proxy-type="attribute">blog:service=Name</depends>
+ <depends optional-attribute-name="ModelService"
+ proxy-type="attribute">blog:service=Model</depends>
+ <depends optional-attribute-name="PermissionsService"
+ proxy-type="attribute">blog:service=Permissions</depends>
+ <depends optional-attribute-name="ConfigurationService"
+ proxy-type="attribute">blog:service=Configuration</depends>
+ <depends optional-attribute-name="StoreService"
+ proxy-type="attribute">blog:service=Store</depends>
+ </mbean>
+
+ <!-- Name service -->
+ <mbean code="org.jboss.blog.service.name.PortletPreferencesBlogNameService"
+ name="blog:service=Name"
+ xmbean-dd="org/jboss/blog/service/name/PortletPreferencesBlogNameService.xml" >
+ <attribute name="IdName">blogId</attribute>
+ <attribute name="CategoryName">blogCategory</attribute>
+ </mbean>
+
+ <!-- Configuration service -->
+ <mbean code="org.jboss.blog.service.configuration.PortletPreferencesBlogConfigurationService"
+ name="blog:service=Configuration"
+ xmbean-dd="org/jboss/blog/service/configuration/PortletPreferencesBlogConfigurationService.xml" >
+ <attribute name="NumberOfPostsPerPageName">numberOfPostsPerPage</attribute>
+ <attribute name="ViewPostsOnSeparatePageName">viewPostsOnSeparatePage</attribute>
+ <attribute name="ViewAllPostsName">viewAllPosts</attribute>
+ <attribute name="CommentsEnabledName">commentsEnabled</attribute>
+ </mbean>
+
+ <!-- Model service -->
+ <mbean code="org.jboss.blog.service.model.DelegatingModelService"
+ name="blog:service=Model"
+ xmbean-dd="org/jboss/blog/service/model/DelegatingModelService.xml">
+ <depends optional-attribute-name="ExternalDelegateModelService"
+ proxy-type="attribute">blog:service=CachingModel</depends>
+ <depends optional-attribute-name="InternalDelegateModelService"
+ proxy-type="attribute">blog:service=StoreModel</depends>
+ </mbean>
+ <mbean code="org.jboss.blog.service.model.StoreModelService"
+ name="blog:service=StoreModel"
+ xmbean-dd="org/jboss/blog/service/model/StoreModelService.xml">
+ <depends optional-attribute-name="StoreService"
+ proxy-type="attribute">blog:service=Store</depends>
+ </mbean>
+ <mbean code="org.jboss.blog.service.model.caching.CachingBlogModelService"
+ name="blog:service=CachingModel"
+ xmbean-dd="org/jboss/blog/service/model/caching/CachingBlogModelService.xml">
+ <attribute name="UpdateInterval">60000</attribute>
+ <depends optional-attribute-name="DelegateModelService"
+ proxy-type="attribute">blog:service=RomeParsingModel</depends>
+ </mbean>
+ <mbean code="org.jboss.blog.service.model.rome.RomeParsingBlogModelService"
+ name="blog:service=RomeParsingModel"
+ xmbean-dd="org/jboss/blog/service/model/rome/RomeParsingBlogModelService.xml">
+ </mbean>
+
+ <!-- Permissions service -->
+ <mbean code="org.jboss.blog.service.permissions.acl.AclBlogPermissionsService"
+ name="blog:service=Permissions"
+ xmbean-dd="org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.xml">
+ <depends optional-attribute-name="UserModule"
+ proxy-type="attribute">portal:service=Module,type=User</depends>
+ </mbean>
+ <!-- JAAE service -->
+ <mbean code="org.jboss.security.acl.AclKernelFactory"
+ name="org.jboss.security.acl.AclKernelFactory:service=aclKernelFactory"
+ xmbean-dd="org/jboss/security/acl/AclKernelFactory.xml">
+ <depends>portal:service=Module,type=User</depends>
+ <attribute name="aclKernel">org.jboss.security.acl.JBossAclKernel</attribute>
+ </mbean>
+
+ <!-- Store service -->
+ <mbean code="org.jboss.blog.service.store.hibernate.HibernateBlogStoreService"
+ name="blog:service=Store"
+ xmbean-dd="org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.xml" >
+ <depends optional-attribute-name="PermissionsService"
+ proxy-type="attribute">blog:service=Permissions</depends>
+ <depends>jboss.jca:name=BlogDS,service=DataSourceBinding</depends>
+ </mbean>
</server>
\ No newline at end of file
Modified: trunk-esial/blog-core/src/etc/conf/hibernate/hibernate.cfg.xml
===================================================================
--- trunk-esial/blog-core/src/etc/conf/hibernate/hibernate.cfg.xml 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/etc/conf/hibernate/hibernate.cfg.xml 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,47 +1,50 @@
-<?xml version='1.0' encoding='utf-8'?>
-<!DOCTYPE hibernate-configuration PUBLIC
- "-//Hibernate/Hibernate Configuration DTD//EN"
- "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
-
-<hibernate-configuration>
- <session-factory name="java:/hibernate/BlogSessionFactory">
- <property name="connection.datasource">java:/BlogDS</property>
- <!--property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property-->
-
- <property name="hibernate.session_factory_name">java:/hibernate/BlogSessionFactory</property>
-
- <property name="hibernate.transaction.factory_class">
- org.hibernate.transaction.JTATransactionFactory
- </property>
- <property name="hibernate.transaction.manager_lookup_class">
- org.hibernate.transaction.JBossTransactionManagerLookup
- </property>
-
- <property name="hibernate.transaction.flush_before_completion">true</property>
- <property name="hibernate.transaction.auto_close_session">true</property>
-
- <property name="show_sql">false</property>
-
- <property name="hibernate.hbm2ddl.auto">update</property>
-
- <!-- cache -->
- <property name="hibernate.cache.use_query_cache">true</property>
- <property name="hibernate.cache.use_second_level_cache">true</property>
- <property name="hibernate.cache.provider_class">
- org.hibernate.cache.EhCacheProvider
- </property>
-
- <!-- mapping files -->
- <mapping resource="org/jboss/blog/service/store/hibernate/HBlogModel.hbm.xml"/>
- <mapping resource="org/jboss/blog/service/store/hibernate/HBlogModelPost.hbm.xml"/>
- <mapping resource="org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml"/>
- <mapping resource="org/jboss/blog/service/store/hibernate/HBlogComment.hbm.xml"/>
- <mapping resource="org/jboss/blog/service/store/hibernate/HPortalBlogAuthor.hbm.xml"/>
-
- <class-cache class="org.jboss.blog.service.store.hibernate.HBlogModel" usage="read-write" />
- <class-cache class="org.jboss.blog.service.store.hibernate.HBlogModelPost" usage="read-write" />
- <class-cache class="org.jboss.blog.service.store.hibernate.HBlogPost" usage="read-write" />
- <class-cache class="org.jboss.blog.service.store.hibernate.HBlogComment" usage="read-write" />
- <class-cache class="org.jboss.blog.service.store.hibernate.HPortalBlogAuthor" usage="read-write" />
- </session-factory>
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE hibernate-configuration PUBLIC
+ "-//Hibernate/Hibernate Configuration DTD//EN"
+ "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+
+<hibernate-configuration>
+ <session-factory name="java:/hibernate/BlogSessionFactory">
+ <property name="connection.datasource">java:/BlogDS</property>
+ <!--property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property-->
+
+ <property name="hibernate.session_factory_name">java:/hibernate/BlogSessionFactory</property>
+
+ <property name="hibernate.transaction.factory_class">
+ org.hibernate.transaction.JTATransactionFactory
+ </property>
+ <property name="hibernate.transaction.manager_lookup_class">
+ org.hibernate.transaction.JBossTransactionManagerLookup
+ </property>
+
+ <property name="hibernate.transaction.flush_before_completion">true</property>
+ <property name="hibernate.transaction.auto_close_session">true</property>
+
+ <property name="show_sql">false</property>
+
+ <property name="hibernate.hbm2ddl.auto">update</property>
+
+ <!-- cache -->
+ <property name="hibernate.cache.use_query_cache">true</property>
+ <property name="hibernate.cache.use_second_level_cache">true</property>
+ <property name="hibernate.cache.provider_class">
+ org.hibernate.cache.EhCacheProvider
+ </property>
+
+ <!-- mapping files -->
+ <mapping resource="org/jboss/blog/service/store/hibernate/HBlogModel.hbm.xml"/>
+ <mapping resource="org/jboss/blog/service/store/hibernate/HBlogModelPost.hbm.xml"/>
+ <mapping resource="org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml"/>
+ <mapping resource="org/jboss/blog/service/store/hibernate/HBlogComment.hbm.xml"/>
+ <mapping resource="org/jboss/blog/service/store/hibernate/HBlogCategory.hbm.xml"/>
+ <mapping resource="org/jboss/blog/service/store/hibernate/HPortalBlogAuthor.hbm.xml"/>
+
+
+ <class-cache class="org.jboss.blog.service.store.hibernate.HBlogModel" usage="read-write" />
+ <class-cache class="org.jboss.blog.service.store.hibernate.HBlogModelPost" usage="read-write" />
+ <class-cache class="org.jboss.blog.service.store.hibernate.HBlogPost" usage="read-write" />
+ <class-cache class="org.jboss.blog.service.store.hibernate.HBlogComment" usage="read-write" />
+ <class-cache class="org.jboss.blog.service.store.hibernate.HBlogCategory" usage="read-write" />
+ <class-cache class="org.jboss.blog.service.store.hibernate.HPortalBlogAuthor" usage="read-write" />
+ </session-factory>
</hibernate-configuration>
\ No newline at end of file
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/BlogName.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/BlogName.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/BlogName.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,61 +1,61 @@
-package org.jboss.blog;
-
-import org.jboss.blog.tools.BlogTools;
-
-import java.io.Serializable;
-
-/**
- * Class representing a name of a blog. This name consists of a blog id
- * and a category. Having it defined, it can be determined what blog should
- * be displayed/ edited/ etc.
- * @author Adam Warski (adamw at aster.pl)
- */
-public class BlogName implements Serializable {
- private String id;
- private String category;
-
- public BlogName() {
-
- }
-
- public BlogName(String id, String category) {
- this.id = id;
- this.category = category;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getCategory() {
- return category;
- }
-
- public void setCategory(String category) {
- this.category = category;
- }
-
- public int hashCode() {
- return (id == null ? 0 : id.hashCode()) +
- (category == null ? 0 : category.hashCode());
- }
-
- public boolean equals(Object obj) {
- if (!(obj instanceof BlogName)) {
- return false;
- }
-
- BlogName bn = (BlogName) obj;
-
- return BlogTools.objectsEqual(id, bn.id) &&
- BlogTools.objectsEqual(category, bn.category);
- }
-
- public String toString() {
- return "(" + id + ", " + category + ")";
- }
-}
+package org.jboss.blog;
+
+import org.jboss.blog.tools.BlogTools;
+
+import java.io.Serializable;
+
+/**
+ * Class representing a name of a blog. This name consists of a blog id
+ * and a category. Having it defined, it can be determined what blog should
+ * be displayed/ edited/ etc.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class BlogName implements Serializable {
+ private String id;
+ private String group;
+
+ public BlogName() {
+
+ }
+
+ public BlogName(String id, String group) {
+ this.id = id;
+ this.group = group;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getGroup() {
+ return group;
+ }
+
+ public void setGroup(String group) {
+ this.group = group;
+ }
+
+ public int hashCode() {
+ return (id == null ? 0 : id.hashCode()) +
+ (group == null ? 0 : group.hashCode());
+ }
+
+ public boolean equals(Object obj) {
+ if (!(obj instanceof BlogName)) {
+ return false;
+ }
+
+ BlogName bn = (BlogName) obj;
+
+ return BlogTools.objectsEqual(id, bn.id) &&
+ BlogTools.objectsEqual(group, bn.group);
+ }
+
+ public String toString() {
+ return "(" + id + ", " + group + ")";
+ }
+}
Added: trunk-esial/blog-core/src/java/org/jboss/blog/model/AbstractBlogCategory.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/model/AbstractBlogCategory.java (rev 0)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/model/AbstractBlogCategory.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -0,0 +1,5 @@
+package org.jboss.blog.model;
+
+
+public abstract class AbstractBlogCategory implements BlogCategory{
+}
Added: trunk-esial/blog-core/src/java/org/jboss/blog/model/BlogCategory.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/model/BlogCategory.java (rev 0)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/model/BlogCategory.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -0,0 +1,7 @@
+package org.jboss.blog.model;
+
+/**
+ * An interface representing a single blog category
+ */
+public interface BlogCategory {
+}
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/model/BlogModel.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/model/BlogModel.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/model/BlogModel.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,40 +1,42 @@
-package org.jboss.blog.model;
-
-import java.util.Set;
-import java.util.List;
-
-/**
- * An interface representing a blog model, that is, a collection of blog
- * posts, together with basic blog information.
- * @author Adam Warski (adamw at aster.pl)
- */
-public interface BlogModel extends BlogItem {
- /**
- * Gets all posts that are in this model. Invoking this method is
- * discouraged. If possible, use {@link BlogModel#getPosts(int, int)}.
- * @return Sorted, immutable list of {@link BlogPost} - posts for this blog model.
- */
- public List getPosts();
-
- /**
- * Gets a specified sublist of {@link BlogModel#getPosts()}. This method
- * should be used instead of interating over the full list beacuse of
- * possible performance improvements.
- * @param from Index of first post to be contained in the returned list.
- * @param to First index after the last post to be contained in the
- * returned list.
- * @return Sorted sublist of {@link BlogPost}, containing posts on
- * positions from <code>from</code> to <code>to</code>.
- */
- public List getPosts(int from, int to);
-
- /**
- *
- * @return Immutable set of {@link java.lang.String} - name of categories to
- * which this model belongs.
- */
- public Set getCategories();
-
- public BlogPost getPostByGuid(String guid) throws BlogPostDoesNotExistException;
- public BlogPost getPostByTitleAsId(String titleAsId) throws BlogPostDoesNotExistException;
-}
+package org.jboss.blog.model;
+
+import java.util.Set;
+import java.util.List;
+
+/**
+ * An interface representing a blog model, that is, a collection of blog
+ * posts, together with basic blog information.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public interface BlogModel extends BlogItem {
+ /**
+ * Gets all posts that are in this model. Invoking this method is
+ * discouraged. If possible, use {@link BlogModel#getPosts(int, int)}.
+ * @return Sorted, immutable list of {@link BlogPost} - posts for this blog model.
+ */
+ public List getPosts();
+
+ /**
+ * Gets a specified sublist of {@link BlogModel#getPosts()}. This method
+ * should be used instead of interating over the full list beacuse of
+ * possible performance improvements.
+ * @param from Index of first post to be contained in the returned list.
+ * @param to First index after the last post to be contained in the
+ * returned list.
+ * @return Sorted sublist of {@link BlogPost}, containing posts on
+ * positions from <code>from</code> to <code>to</code>.
+ */
+ public List getPosts(int from, int to);
+
+ /**
+ *
+ * @return Immutable set of {@link java.lang.String} - name of categories to
+ * which this model belongs.
+ */
+ //description à modifier
+ public List getCategories();
+
+
+ public BlogPost getPostByGuid(String guid) throws BlogPostDoesNotExistException;
+ public BlogPost getPostByTitleAsId(String titleAsId) throws BlogPostDoesNotExistException;
+}
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/model/BlogPost.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/model/BlogPost.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/model/BlogPost.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,43 +1,43 @@
-package org.jboss.blog.model;
-
-import java.util.Set;
-import java.util.List;
-
-/**
- * An interface representing a single blog post.
- * @author Adam Warski (adamw at aster.pl)
- */
-public interface BlogPost extends BlogItem {
- public String getTitleAsId();
- public String getGuid();
-
- /**
- *
- * @return An URL to a feed with comments to this item. If no
- * comments are available, this should be null.
- */
- public String getCommentLink();
-
- /**
- *
- * @return True iff this post has any comments.
- */
- public boolean getHasComments();
-
- /**
- *
- * @return A list of all comments for this item. Objects in the list
- * implements the {@link BlogComment} interface. If the blog doesn't
- * have/support comments, null is returned (this is different from the
- * situation where a blog supports comments, but there are no comments
- * to this post - in this case, an empty list is returned).
- */
- public List getComments();
-
- /**
- *
- * @return Immutable set of {@link java.lang.String} - name of categories to
- * which this post belongs.
- */
- public Set getCategories();
-}
+package org.jboss.blog.model;
+
+import java.util.Set;
+import java.util.List;
+
+/**
+ * An interface representing a single blog post.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public interface BlogPost extends BlogItem {
+ public String getTitleAsId();
+ public String getGuid();
+
+ /**
+ *
+ * @return An URL to a feed with comments to this item. If no
+ * comments are available, this should be null.
+ */
+ public String getCommentLink();
+
+ /**
+ *
+ * @return True if this post has any comments.
+ */
+ public boolean getHasComments();
+
+ /**
+ *
+ * @return A list of all comments for this item. Objects in the list
+ * implements the {@link BlogComment} interface. If the blog doesn't
+ * have/support comments, null is returned (this is different from the
+ * situation where a blog supports comments, but there are no comments
+ * to this post - in this case, an empty list is returned).
+ */
+ public List getComments();
+
+ /**
+ *
+ * @return Immutable set of {@link java.lang.String} - name of categories to
+ * which this post belongs.
+ */
+ public List getCategories();
+}
Added: trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/BlogCategoryImpl.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/BlogCategoryImpl.java (rev 0)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/BlogCategoryImpl.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -0,0 +1,57 @@
+package org.jboss.blog.model.impl;
+
+import org.jboss.blog.model.BlogCategory;
+import java.util.Set;
+
+/**
+ * A simple java-bean implementation of the category interface.
+ */
+public class BlogCategoryImpl implements BlogCategory{
+ private Integer id;
+ private String name;
+ private String description;
+ private Set posts;
+
+
+ public BlogCategoryImpl(Integer id, String name, String description, Set posts) {
+ super();
+ this.id = id;
+ this.name = name;
+ this.description = description;
+ this.posts = posts;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ public Set getPosts(){
+ return posts;
+ }
+
+ public void setPosts(Set posts){
+ this.posts = posts;
+ }
+
+}
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/BlogModelImpl.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/BlogModelImpl.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/BlogModelImpl.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,62 +1,64 @@
-package org.jboss.blog.model.impl;
-
-import org.jboss.blog.model.AbstractBlogModel;
-import org.jboss.blog.model.BlogAuthor;
-
-import java.util.Date;
-import java.util.Set;
-import java.util.List;
-
-/**
- * A simple java-bean implementation of the model interface.
- * @author Adam Warski (adamw at aster.pl)
- */
-public class BlogModelImpl extends AbstractBlogModel {
- private BlogAuthor author;
- private String title;
- private String description;
- private String link;
- private Date created;
- private List posts;
- private Set categories;
-
- public BlogModelImpl(BlogAuthor author, String title, String description,
- String link, Date created, List posts,
- Set categories) {
- this.author = author;
- this.title = title;
- this.description = description;
- this.link = link;
- this.created = created;
- this.posts = posts;
- this.categories = categories;
- }
-
- public BlogAuthor getAuthor() {
- return author;
- }
-
- public String getTitle() {
- return title;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getLink() {
- return link;
- }
-
- public Date getCreated() {
- return created;
- }
-
- public List getPosts() {
- return posts;
- }
-
- public Set getCategories() {
- return categories;
- }
-}
+package org.jboss.blog.model.impl;
+
+import org.jboss.blog.model.AbstractBlogModel;
+import org.jboss.blog.model.BlogAuthor;
+
+import java.util.Date;
+import java.util.Set;
+import java.util.List;
+
+/**
+ * A simple java-bean implementation of the model interface.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class BlogModelImpl extends AbstractBlogModel {
+ private BlogAuthor author;
+ private String title;
+ private String description;
+ private String link;
+ private Date created;
+ private List posts;
+ private List categories;
+
+ public BlogModelImpl(BlogAuthor author, String title, String description,
+ String link, Date created, List posts,
+ List categories) {
+ this.author = author;
+ this.title = title;
+ this.description = description;
+ this.link = link;
+ this.created = created;
+ this.posts = posts;
+ this.categories = categories;
+ }
+
+ public BlogAuthor getAuthor() {
+ return author;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public String getLink() {
+ return link;
+ }
+
+ public Date getCreated() {
+ return created;
+ }
+
+ public List getPosts() {
+ return posts;
+ }
+
+ public List getCategories() {
+ return categories;
+ }
+
+
+}
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/BlogPostImpl.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/BlogPostImpl.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/BlogPostImpl.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,74 +1,74 @@
-package org.jboss.blog.model.impl;
-
-import org.jboss.blog.model.AbstractBlogPost;
-import org.jboss.blog.model.BlogAuthor;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
-
-/**
- * A simple java-bean implementation of the post interface.
- * @author Adam Warski (adamw at aster.pl)
- */
-public class BlogPostImpl extends AbstractBlogPost {
- private BlogAuthor author;
- private String title;
- private String description;
- private Date created;
- private String link;
- private String guid;
- private Set categories;
- private String commentLink;
- private List comments;
-
- public BlogPostImpl(BlogAuthor author, String title, String description,
- Date created, String link, String guid,
- Set categories, String commentLink, List comments) {
- this.author = author;
- this.title = title;
- this.description = description;
- this.created = created;
- this.link = link;
- this.guid = guid;
- this.categories = categories;
- this.commentLink = commentLink;
- this.comments = comments;
- }
-
- public BlogAuthor getAuthor() {
- return author;
- }
-
- public String getTitle() {
- return title;
- }
-
- public String getDescription() {
- return description;
- }
-
- public Date getCreated() {
- return created;
- }
-
- public String getLink() {
- return link;
- }
-
- public String getGuid() {
- return guid;
- }
-
- public Set getCategories() {
- return categories;
- }
-
- public String getCommentLink() {
- return commentLink;
- }
-
- public List getComments() {
- return comments;
- }
-}
+package org.jboss.blog.model.impl;
+
+import org.jboss.blog.model.AbstractBlogPost;
+import org.jboss.blog.model.BlogAuthor;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * A simple java-bean implementation of the post interface.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class BlogPostImpl extends AbstractBlogPost {
+ private BlogAuthor author;
+ private String title;
+ private String description;
+ private Date created;
+ private String link;
+ private String guid;
+ private List categories;
+ private String commentLink;
+ private List comments;
+
+ public BlogPostImpl(BlogAuthor author, String title, String description,
+ Date created, String link, String guid,
+ List categories, String commentLink, List comments) {
+ this.author = author;
+ this.title = title;
+ this.description = description;
+ this.created = created;
+ this.link = link;
+ this.guid = guid;
+ this.categories = categories;
+ this.commentLink = commentLink;
+ this.comments = comments;
+ }
+
+ public BlogAuthor getAuthor() {
+ return author;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public Date getCreated() {
+ return created;
+ }
+
+ public String getLink() {
+ return link;
+ }
+
+ public String getGuid() {
+ return guid;
+ }
+
+ public List getCategories() {
+ return categories;
+ }
+
+ public String getCommentLink() {
+ return commentLink;
+ }
+
+ public List getComments() {
+ return comments;
+ }
+}
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/EmptyBlogModel.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/EmptyBlogModel.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/EmptyBlogModel.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,12 +1,12 @@
-package org.jboss.blog.model.impl;
-
-import java.util.*;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public class EmptyBlogModel extends BlogModelImpl {
- public EmptyBlogModel() {
- super(new EmptyBlogAuthor(), "", "", "", new Date(), new ArrayList(), new HashSet());
- }
-}
+package org.jboss.blog.model.impl;
+
+import java.util.*;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class EmptyBlogModel extends BlogModelImpl {
+ public EmptyBlogModel() {
+ super(new EmptyBlogAuthor(), "", "", "", new Date(), new ArrayList(), new ArrayList());
+ }
+}
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/EmptyBlogPost.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/EmptyBlogPost.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/model/impl/EmptyBlogPost.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,13 +1,13 @@
-package org.jboss.blog.model.impl;
-
-import java.util.Date;
-import java.util.HashSet;
-
-/**
- * @author Adam Warski (adamw at aster.pl)
- */
-public class EmptyBlogPost extends BlogPostImpl {
- public EmptyBlogPost() {
- super(new EmptyBlogAuthor(), "", "", new Date(), "", "", new HashSet(), null, null);
- }
-}
+package org.jboss.blog.model.impl;
+
+import java.util.Date;
+import java.util.ArrayList;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class EmptyBlogPost extends BlogPostImpl {
+ public EmptyBlogPost() {
+ super(new EmptyBlogAuthor(), "", "", new Date(), "", "", new ArrayList(), null, null);
+ }
+}
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/service/model/rome/RomeBlogPost.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/service/model/rome/RomeBlogPost.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/service/model/rome/RomeBlogPost.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,62 +1,62 @@
-package org.jboss.blog.service.model.rome;
-
-import org.jboss.blog.model.impl.BlogPostImpl;
-import org.jboss.blog.model.impl.BlogCommentImpl;
-import org.jboss.blog.model.impl.BlogAuthorImpl;
-import org.jboss.blog.model.BlogAuthor;
-import org.jboss.blog.tools.BlogTools;
-
-import java.util.*;
-import java.net.URL;
-
-import com.sun.syndication.io.SyndFeedInput;
-import com.sun.syndication.io.XmlReader;
-import com.sun.syndication.feed.synd.SyndFeed;
-import com.sun.syndication.feed.synd.SyndEntry;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public class RomeBlogPost extends BlogPostImpl {
- private boolean commentsInitialized;
- private List comments;
-
- public RomeBlogPost(BlogAuthor author, String title, String description, Date created,
- String link, String guid, Set categories, String commentLink) {
- super(author, title, description, created, link, guid, categories, commentLink, null);
- }
-
- public List getComments() {
- if (!commentsInitialized) {
- commentsInitialized = true;
-
- if (getCommentLink() == null) {
- return null;
- }
-
- try {
- SyndFeedInput input = new SyndFeedInput();
- SyndFeed inFeed;
- inFeed = input.build(new XmlReader(new URL(getCommentLink()).openStream()));
-
- comments = new ArrayList();
-
- String defaultAuthor = inFeed.getAuthor();
- for (Iterator iter = inFeed.getEntries().iterator(); iter.hasNext();) {
- SyndEntry post = (SyndEntry) iter.next();
-
- String author = post.getAuthor();
- author = BlogTools.isEmpty(author) ? defaultAuthor : author;
- comments.add(new BlogCommentImpl(
- new BlogAuthorImpl(author, author, ""),
- post.getTitle(), post.getDescription().getValue(),
- post.getPublishedDate(), post.getLink()));
- }
- } catch (Exception e) {
- comments = null;
- }
- }
-
- return comments;
- }
-}
+package org.jboss.blog.service.model.rome;
+
+import org.jboss.blog.model.impl.BlogPostImpl;
+import org.jboss.blog.model.impl.BlogCommentImpl;
+import org.jboss.blog.model.impl.BlogAuthorImpl;
+import org.jboss.blog.model.BlogAuthor;
+import org.jboss.blog.tools.BlogTools;
+
+import java.util.*;
+import java.net.URL;
+
+import com.sun.syndication.io.SyndFeedInput;
+import com.sun.syndication.io.XmlReader;
+import com.sun.syndication.feed.synd.SyndFeed;
+import com.sun.syndication.feed.synd.SyndEntry;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class RomeBlogPost extends BlogPostImpl {
+ private boolean commentsInitialized;
+ private List comments;
+
+ public RomeBlogPost(BlogAuthor author, String title, String description, Date created,
+ String link, String guid, List categories, String commentLink) {
+ super(author, title, description, created, link, guid, categories, commentLink, null);
+ }
+
+ public List getComments() {
+ if (!commentsInitialized) {
+ commentsInitialized = true;
+
+ if (getCommentLink() == null) {
+ return null;
+ }
+
+ try {
+ SyndFeedInput input = new SyndFeedInput();
+ SyndFeed inFeed;
+ inFeed = input.build(new XmlReader(new URL(getCommentLink()).openStream()));
+
+ comments = new ArrayList();
+
+ String defaultAuthor = inFeed.getAuthor();
+ for (Iterator iter = inFeed.getEntries().iterator(); iter.hasNext();) {
+ SyndEntry post = (SyndEntry) iter.next();
+
+ String author = post.getAuthor();
+ author = BlogTools.isEmpty(author) ? defaultAuthor : author;
+ comments.add(new BlogCommentImpl(
+ new BlogAuthorImpl(author, author, ""),
+ post.getTitle(), post.getDescription().getValue(),
+ post.getPublishedDate(), post.getLink()));
+ }
+ } catch (Exception e) {
+ comments = null;
+ }
+ }
+
+ return comments;
+ }
+}
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/service/model/rome/RomeParsingBlogModelService.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/service/model/rome/RomeParsingBlogModelService.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/service/model/rome/RomeParsingBlogModelService.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,100 +1,100 @@
-package org.jboss.blog.service.model.rome;
-
-import org.jboss.blog.model.BlogModel;
-import org.jboss.blog.model.BlogModelDoesNotExistException;
-import org.jboss.blog.model.impl.BlogModelImpl;
-import org.jboss.blog.model.impl.BlogAuthorImpl;
-import org.jboss.blog.BlogName;
-import org.jboss.blog.service.AbstractBlogService;
-import org.jboss.blog.service.model.BlogModelService;
-import org.jboss.blog.rome.CommentRssModule;
-import org.jboss.blog.tools.BlogTools;
-
-import java.util.*;
-import java.net.URL;
-import java.io.IOException;
-
-import com.sun.syndication.io.SyndFeedInput;
-import com.sun.syndication.io.XmlReader;
-import com.sun.syndication.io.FeedException;
-import com.sun.syndication.feed.synd.SyndFeed;
-import com.sun.syndication.feed.synd.SyndEntry;
-import com.sun.syndication.feed.synd.SyndCategory;
-
-/**
- * @author Adam Warski (adamw at aster.pl)
- *
- * @jmx.mbean
- * @jboss.xmbean
- */
-public class RomeParsingBlogModelService extends AbstractBlogService implements BlogModelService {
- public RomeParsingBlogModelService() {
-
- }
-
- private Set getStringCategories(List categories) {
- if (categories == null) {
- return null;
- }
-
- Set ret = new HashSet();
- for (Iterator iter = categories.iterator(); iter.hasNext();) {
- ret.add(((SyndCategory) iter.next()).getName());
- }
-
- return ret;
- }
-
- /**
- * @jmx.managed-operation
- * @jmx.managed-parameter type="org.jboss.blog.BlogName"
- */
- public BlogModel retrieveBlogModel(BlogName name) throws BlogModelDoesNotExistException {
- if (name.getId() == null) {
- throw new BlogModelDoesNotExistException("No blog selected (null blog id)");
- }
-
- // Parsing the feed, which's address is the id of the selected blog.
- SyndFeedInput input = new SyndFeedInput();
- SyndFeed inFeed;
- try {
- inFeed = input.build(new XmlReader(new URL(name.getId()).openStream()));
- } catch (IOException e) {
- throw new BlogModelDoesNotExistException(e);
- } catch (FeedException e) {
- throw new BlogModelDoesNotExistException(e);
- }
-
- List posts = new ArrayList();
-
- String defaultAuthor = inFeed.getAuthor();
- for (Iterator iter = inFeed.getEntries().iterator(); iter.hasNext();) {
- SyndEntry post = (SyndEntry) iter.next();
-
- CommentRssModule commRssModule = (CommentRssModule)
- post.getModule("http://wellformedweb.org/CommentAPI/");
- String commentsRss = null;
- if (commRssModule != null) {
- commentsRss = commRssModule.getCommentRss();
- if (commentsRss != null) {
- commentsRss = commentsRss.trim();
- }
- }
-
- String author = post.getAuthor();
- author = BlogTools.isEmpty(author) ? defaultAuthor : author;
- posts.add(new RomeBlogPost(
- new BlogAuthorImpl(author, author, ""),
- post.getTitle(), post.getDescription().getValue(),
- post.getPublishedDate(), post.getLink(),
- post.getUri(),
- Collections.unmodifiableSet(getStringCategories(post.getCategories())),
- commentsRss));
- }
-
- return new BlogModelImpl(new BlogAuthorImpl(inFeed.getAuthor(), inFeed.getAuthor(), ""),
- inFeed.getTitle(), inFeed.getDescription(), inFeed.getLink(),
- inFeed.getPublishedDate(), Collections.unmodifiableList(posts),
- Collections.unmodifiableSet(getStringCategories(inFeed.getCategories())));
- }
-}
+package org.jboss.blog.service.model.rome;
+
+import org.jboss.blog.model.BlogModel;
+import org.jboss.blog.model.BlogModelDoesNotExistException;
+import org.jboss.blog.model.impl.BlogModelImpl;
+import org.jboss.blog.model.impl.BlogAuthorImpl;
+import org.jboss.blog.BlogName;
+import org.jboss.blog.service.AbstractBlogService;
+import org.jboss.blog.service.model.BlogModelService;
+import org.jboss.blog.rome.CommentRssModule;
+import org.jboss.blog.tools.BlogTools;
+
+import java.util.*;
+import java.net.URL;
+import java.io.IOException;
+
+import com.sun.syndication.io.SyndFeedInput;
+import com.sun.syndication.io.XmlReader;
+import com.sun.syndication.io.FeedException;
+import com.sun.syndication.feed.synd.SyndFeed;
+import com.sun.syndication.feed.synd.SyndEntry;
+import com.sun.syndication.feed.synd.SyndCategory;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ *
+ * @jmx.mbean
+ * @jboss.xmbean
+ */
+public class RomeParsingBlogModelService extends AbstractBlogService implements BlogModelService {
+ public RomeParsingBlogModelService() {
+
+ }
+
+ private Set getStringCategories(List categories) {
+ if (categories == null) {
+ return null;
+ }
+
+ Set ret = new HashSet();
+ for (Iterator iter = categories.iterator(); iter.hasNext();) {
+ ret.add(((SyndCategory) iter.next()).getName());
+ }
+
+ return ret;
+ }
+
+ /**
+ * @jmx.managed-operation
+ * @jmx.managed-parameter type="org.jboss.blog.BlogName"
+ */
+ public BlogModel retrieveBlogModel(BlogName name) throws BlogModelDoesNotExistException {
+ if (name.getId() == null) {
+ throw new BlogModelDoesNotExistException("No blog selected (null blog id)");
+ }
+
+ // Parsing the feed, which's address is the id of the selected blog.
+ SyndFeedInput input = new SyndFeedInput();
+ SyndFeed inFeed;
+ try {
+ inFeed = input.build(new XmlReader(new URL(name.getId()).openStream()));
+ } catch (IOException e) {
+ throw new BlogModelDoesNotExistException(e);
+ } catch (FeedException e) {
+ throw new BlogModelDoesNotExistException(e);
+ }
+
+ List posts = new ArrayList();
+
+ String defaultAuthor = inFeed.getAuthor();
+ for (Iterator iter = inFeed.getEntries().iterator(); iter.hasNext();) {
+ SyndEntry post = (SyndEntry) iter.next();
+
+ CommentRssModule commRssModule = (CommentRssModule)
+ post.getModule("http://wellformedweb.org/CommentAPI/");
+ String commentsRss = null;
+ if (commRssModule != null) {
+ commentsRss = commRssModule.getCommentRss();
+ if (commentsRss != null) {
+ commentsRss = commentsRss.trim();
+ }
+ }
+
+ String author = post.getAuthor();
+ author = BlogTools.isEmpty(author) ? defaultAuthor : author;
+ posts.add(new RomeBlogPost(
+ new BlogAuthorImpl(author, author, ""),
+ post.getTitle(), post.getDescription().getValue(),
+ post.getPublishedDate(), post.getLink(),
+ post.getUri(),
+ new ArrayList(getStringCategories(post.getCategories())),
+ commentsRss));
+ }
+
+ return new BlogModelImpl(new BlogAuthorImpl(inFeed.getAuthor(), inFeed.getAuthor(), ""),
+ inFeed.getTitle(), inFeed.getDescription(), inFeed.getLink(),
+ inFeed.getPublishedDate(), Collections.unmodifiableList(posts),
+ new ArrayList(getStringCategories(inFeed.getCategories())));
+ }
+}
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/service/store/BlogStoreService.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/service/store/BlogStoreService.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/service/store/BlogStoreService.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -32,7 +32,20 @@
public List retrieveAllCategories(BlogName blogName)
throws IllegalArgumentException;
+ public ModifiableBlogCategory retrieveBlogCategory(String name);
+
/**
+ * Reads a list of all groups.
+ * @param blogName Name of the blog for which to read the groups. The
+ * group part of the name will be ignored.
+ * @return A list of {@link org.jboss.blog.BlogName} objects, with the id
+ * part equal to the one passed in the parameter.
+ * @throws IllegalArgumentException If blog name is null.
+ */
+ public List retrieveAllGroups(BlogName blogName)
+ throws IllegalArgumentException;
+
+ /**
* Checks if a blog with the given blog name can be modified.
* @param blogName Name of the blog to check.
* @return True if this blog can be modified using this store service.
@@ -111,6 +124,13 @@
throws IllegalArgumentException, BlogModelAlreadyExistsException;
/**
+ * Creates a new blog category
+ * @return A new blog category, which can be later added to a
+ * blog model and saved.
+ */
+ public ModifiableBlogCategory newBlogCategory();
+
+ /**
* Creates a new blog post, with an empty set of categories. To later
* save the post, simply add it to a model.
* @return A new blog post, which can be later added to a
@@ -139,4 +159,10 @@
public String retrieveTemplatePostsList(BlogName blogName) throws Exception;
public void saveTemplatePostsList(BlogName blogName,String s) throws Exception;
+
+ public Integer retrieveBlogCategoryId(String name);
+
+ public void deleteBlogCategory(String name);
+
+ public void addBlogCategory(String s, String t,BlogName blogName) throws Exception;
}
Added: trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogCategory.hbm.xml
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogCategory.hbm.xml (rev 0)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogCategory.hbm.xml 2007-03-22 16:37:07 UTC (rev 102)
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+ "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="org.jboss.blog.service.store.hibernate">
+ <class name="HBlogCategory"
+ table="BLOG_CATEGORIES">
+ <id name="id" column="CATEGORY_ID">
+ <generator class="native" />
+ </id>
+
+ <property name="name" column="NAME" not-null="true" />
+
+ <property name="description" column="DESCRIPTION" type="text" />
+
+
+ </class>
+</hibernate-mapping>
\ No newline at end of file
Added: trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogCategory.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogCategory.java (rev 0)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogCategory.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -0,0 +1,59 @@
+package org.jboss.blog.service.store.hibernate;
+
+import java.util.List;
+import org.jboss.blog.service.store.model.ModifiableBlogCategory;
+
+
+public class HBlogCategory implements ModifiableBlogCategory{
+ private Integer id;
+ private String name;
+ private String description;
+ private List posts;
+
+ private HibernateBlogStoreService storeService;
+
+ public HBlogCategory(){
+ }
+
+ public HibernateBlogStoreService getStoreService() {
+ return storeService;
+ }
+
+ public void setStoreService(HibernateBlogStoreService storeService) {
+ this.storeService = storeService;
+ }
+
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setId(Integer id){
+ this.id = id;
+ }
+
+ public Integer getId(){
+ return id;
+ }
+
+ public List getPosts(){
+ return posts;
+ }
+
+ public void setPosts(List posts){
+ this.posts = posts;
+ }
+
+}
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.hbm.xml
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.hbm.xml 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.hbm.xml 2007-03-22 16:37:07 UTC (rev 102)
@@ -13,7 +13,7 @@
<natural-id mutable="true">
<component name="blogName" class="org.jboss.blog.BlogName">
<property name="id" column="BLOG_NAME_ID" length="64" />
- <property name="category" column="BLOG_NAME_CATEGORY" length="128" />
+ <property name="group" column="BLOG_NAME_GROUP" length="128" />
</component>
</natural-id>
@@ -34,5 +34,11 @@
<key column="BLOG_ID" not-null="true" />
<one-to-many class="HBlogModelPost" />
</bag>
+
+ <bag name="categories" inverse="true">
+ <key column="BLOG_ID" not-null="true" />
+ <one-to-many class="HBlogCategory" />
+ </bag>
+
</class>
</hibernate-mapping>
\ No newline at end of file
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -2,6 +2,7 @@
import org.jboss.blog.service.store.model.ModifiableBlogModel;
import org.jboss.blog.service.store.model.ModifiableBlogPost;
+import org.jboss.blog.service.store.model.ModifiableBlogCategory;
import org.jboss.blog.service.store.model.BlogModelAlreadyExistsException;
import org.jboss.blog.model.AbstractBlogModel;
import org.jboss.blog.model.BlogPost;
@@ -27,13 +28,13 @@
private List modelPosts;
- private Set categories;
+ private List categories;
private List posts;
private HibernateBlogStoreService storeService;
public HBlogModel() {
- categories = BlogTools.emptySet();
+ categories = new ArrayList();//BlogTools.emptySet();
}
public Integer getId() {
@@ -50,11 +51,6 @@
public void setBlogName(BlogName blogName) {
this.blogName = blogName;
- if (blogName.getCategory() == null) {
- categories = BlogTools.emptySet();
- } else {
- categories = Collections.singleton(blogName.getCategory());
- }
}
public BlogAuthor getAuthor() {
@@ -106,21 +102,23 @@
this.created = created;
}
- public String getCategory() {
- return getBlogName().getCategory();
+
+
+ public String getGroup() {
+ return getBlogName().getGroup();
}
- public void setCategory(String category)
+ public void setGroup(String group)
throws IllegalArgumentException, BlogModelAlreadyExistsException {
- if (BlogTools.isEmpty(category)) {
- throw new IllegalArgumentException("Category cannot be null or empty.");
+ if (BlogTools.isEmpty(group)) {
+ throw new IllegalArgumentException("Group cannot be null or empty.");
}
/* Trying to create a new model with a given category name, to check
* if it doesn't already exist. */
- getStoreService().newBlogModel(new BlogName(getBlogName().getId(), category));
+ getStoreService().newBlogModel(new BlogName(getBlogName().getId(), group));
- getBlogName().setCategory(category);
+ getBlogName().setGroup(group);
}
//
@@ -143,9 +141,23 @@
//
- public Set getCategories() {
+ public List getCategories() {
+ HibernateBlogStoreService storeService = getStoreService();
+ if(categories==null){
+ categories = storeService.retrieveAllCategories(blogName);
+ /*
+ for (Iterator iter = categories.iterator(); iter.hasNext();) {
+ HBlogCategory cat = ((HBlogCategory) iter.next());
+ categories.add(cat);
+ cat.setStoreService(storeService);
+ }*/
+ }
return categories;
}
+
+ public void setCategories(List categories){
+ this.categories = categories;
+ }
public List getPosts() {
// Creating a list of posts from the a list of HBlogModelPost.
@@ -193,7 +205,14 @@
storeService.addPost(this, hpost);
}
+
+ public void addCategory(ModifiableBlogCategory category) throws IllegalArgumentException {
+ HibernateBlogStoreService storeService = getStoreService();
+ HBlogCategory hcat = storeService.castAndAssertBlogCategory(category);
+ storeService.addCategory(this, hcat);
+ }
+
public void removePost(ModifiableBlogPost post) throws IllegalArgumentException {
HibernateBlogStoreService storeService = getStoreService();
HBlogPost hpost = storeService.castAndAssertBlogPost(post);
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml 2007-03-22 16:37:07 UTC (rev 102)
@@ -36,5 +36,11 @@
<key column="POST_ID" not-null="true" />
<one-to-many class="HBlogComment" />
</bag>
+
+ <set name="categories" inverse="true">
+ <key column="POST_ID" not-null="true" />
+ <many-to-many class="HBlogCategory" />
+ </set>
+
</class>
</hibernate-mapping>
\ No newline at end of file
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -27,7 +27,7 @@
private List comments;
private List modelPosts;
- private Set categories;
+ private List categories;
private HibernateBlogStoreService storeService;
@@ -129,16 +129,13 @@
this.modelPosts = modelPosts;
}
- public Set getCategories() {
- if (categories == null) {
- categories = new HashSet();
- for (Iterator iter = getModelPosts().iterator(); iter.hasNext();) {
- categories.add(((HBlogModelPost) iter.next()).getModel().getCategory());
- }
- }
-
- return Collections.unmodifiableSet(categories);
+ public List getCategories() {
+ return categories;
}
+
+ public void setCategories(List categories){
+ this.categories = categories;
+ }
public HibernateBlogStoreService getStoreService() {
return storeService;
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -5,6 +5,7 @@
import org.jboss.blog.service.store.model.ModifiableBlogPost;
import org.jboss.blog.service.store.model.BlogModelAlreadyExistsException;
import org.jboss.blog.service.store.model.ModifiableBlogComment;
+import org.jboss.blog.service.store.model.ModifiableBlogCategory;
import org.jboss.blog.service.AbstractBlogService;
import org.jboss.blog.service.permissions.model.PortalUserBlogAuthor;
import org.jboss.blog.service.permissions.BlogPermissionsService;
@@ -12,6 +13,7 @@
import org.jboss.blog.model.BlogModelDoesNotExistException;
import org.jboss.blog.model.BlogCommentDoesNotExistException;
import org.jboss.blog.model.BlogAuthor;
+import org.jboss.blog.model.BlogCategory;
import org.jboss.blog.tools.BlogTools;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
@@ -68,7 +70,16 @@
return (HBlogModel) model;
}
+
+ HBlogCategory castAndAssertBlogCategory(BlogCategory category) {
+ BlogTools.assertNotNull(category, "Blog category cannot be null.");
+ if (!(category instanceof HBlogCategory)) {
+ throw new IllegalArgumentException("Category must be obtained from this store service.");
+ }
+ return (HBlogCategory) category;
+ }
+
HBlogPost castAndAssertBlogPost(ModifiableBlogPost post) {
BlogTools.assertNotNull(post, "Blog post cannot be null.");
if (!(post instanceof HBlogPost)) {
@@ -107,13 +118,27 @@
* @jmx.managed-operation
* @jmx.managed-parameter type="org.jboss.blog.BlogName"
*/
- public List retrieveAllCategories(BlogName blogName) {
+ public List retrieveAllGroups(BlogName blogName) {
assertBlogNameNotNull(blogName);
return sf.getCurrentSession().createQuery(
"select model.blogName from HBlogModel as model " +
"where model.blogName.id = :id")
.setParameter("id", blogName.getId()).list();
}
+
+
+
+ /**
+ * @jmx.managed-operation
+ * @jmx.managed-parameter type="org.jboss.blog.BlogName"
+ */
+ public List retrieveAllCategories(BlogName blogName) {
+ assertBlogNameNotNull(blogName);
+ return sf.getCurrentSession().createQuery(
+ "select model.categories from HBlogModel as model " +
+ "where model.blogName.id = :id")
+ .setParameter("id", blogName.getId()).list();
+ }
private boolean blogExists(BlogName blogName) {
Long count = (Long) sf.getCurrentSession().createQuery(
@@ -154,9 +179,38 @@
return hbm;
}
+
+ /**
+ * @jmx.managed-operation
+ * @jmx.managed-parameter type="String"
+ */
+ public ModifiableBlogCategory retrieveBlogCategory(String name){
+
+ HBlogCategory hbc = (HBlogCategory) sf.getCurrentSession()
+ .createQuery("from HBlogCategory as cat where cat.name = :name")
+ .setCacheable(true).setParameter("name", name).uniqueResult();
+
+ if (hbc != null){
+ hbc.setStoreService(this);
+ }
+ return hbc;
+ }
+
/**
* @jmx.managed-operation
+ * @jmx.managed-parameter type="String"
+ */
+ public Integer retrieveBlogCategoryId(String name){
+ Integer res = (Integer) sf.getCurrentSession()
+ .createQuery("select cat.id from HBlogCategory as cat where cat.name = :name")
+ .setCacheable(true).setParameter("name", name).uniqueResult();
+
+ return res;
+ }
+
+ /**
+ * @jmx.managed-operation
* @jmx.managed-parameter type="org.jboss.blog.BlogName"
*/
public ModifiableBlogModel newBlogModel(BlogName blogName) throws BlogModelAlreadyExistsException {
@@ -181,6 +235,16 @@
/**
* @jmx.managed-operation
*/
+ public ModifiableBlogCategory newBlogCategory() {
+ HBlogCategory category = new HBlogCategory();
+ category.setStoreService(this);
+
+ return category;
+ }
+
+ /**
+ * @jmx.managed-operation
+ */
public ModifiableBlogPost newBlogPost() {
HBlogPost post = new HBlogPost();
post.setModelPosts(new ArrayList());
@@ -244,6 +308,22 @@
/**
* @jmx.managed-operation
+ * @jmx.managed-parameter type="org.jboss.blog.service.store.model.ModifiableBlogCategory"
+ */
+ public void saveNewBlogCategory(ModifiableBlogCategory category) /*throws BlogCategoryAlreadyExistsException*/ {
+ HBlogCategory hcategory = castAndAssertBlogCategory(category);
+ //assertBlogNameNotNull(hmodel.getBlogName());
+
+ // TODO: checking if the blog already exist or not. Can it be done in a better way?
+ //if (blogExists(hmodel.getBlogName())) {
+ // throw new BlogModelAlreadyExistsException(hmodel.getBlogName().toString());
+ //}
+
+ sf.getCurrentSession().save(category);
+ }
+
+ /**
+ * @jmx.managed-operation
* @jmx.managed-parameter type="org.jboss.blog.service.store.model.ModifiableBlogModel"
*/
public void deleteBlogModel(ModifiableBlogModel model) {
@@ -287,6 +367,19 @@
"where bmp.post = :post").setEntity("post", hpost).executeUpdate();
sf.getCurrentSession().delete(hpost);
}
+
+
+ /**
+ * @jmx.managed-operation
+ * @jmx.managed-parameter type="org.jboss.blog.service.store.model.ModifiableBlogPost"
+ */
+ public void deleteBlogCategory(String name) {
+ HBlogCategory hcat = castAndAssertBlogCategory(retrieveBlogCategory(name));
+ if (hcat.getId() == null) {
+ throw new IllegalArgumentException("Cannot delete a new category.");
+ }
+ sf.getCurrentSession().delete(hcat);
+ }
/**
* @jmx.managed-operation
@@ -307,7 +400,7 @@
* To the given blog model, adds the given post.
* @param model Model to which the post should be added.
* @param post Post to add.
- */
+ */
void addPost(HBlogModel model, HBlogPost post) {
HBlogModel hmodel = castAndAssertBlogModel(model);
HBlogPost hpost = castAndAssertBlogPost(post);
@@ -324,7 +417,21 @@
sf.getCurrentSession().save(hbmp);
}
}
+
+ /**
+ * To the given blog model, adds the given category.
+ * @param model Model to which the post should be added.
+ * @param category Category to add.
+ */
+ void addCategory(HBlogModel model, HBlogCategory category) {
+ HBlogModel hmodel = castAndAssertBlogModel(model);
+ HBlogCategory hcat = castAndAssertBlogCategory(category);
+ hmodel.getCategories().add(hcat);
+ sf.getCurrentSession().saveOrUpdate(hcat);
+
+ }
+
/**
* From the given blog model, removes the given post.
* @param model Model from which the post shold be removed.
@@ -461,4 +568,24 @@
HBlogModel hbm = (HBlogModel) sf.getCurrentSession().createQuery("from HBlogModel as model where model.blogName = :name").setParameter("name", blogName).uniqueResult();
hbm.setTemplatePostsList(s);
}
+
+ /**
+ * @jmx.managed-operation
+ * @jmx.managed-parameter type="java.lang.String"
+ * @jmx.managed-parameter type="java.lang.String"
+ * @jmx.managed-parameter type="org.jboss.blog.BlogName"
+ */
+ public void addBlogCategory(String name, String description,BlogName blogName) throws Exception{
+ ModifiableBlogCategory mbc = newBlogCategory();
+
+ //mbc.setId(id);
+ mbc.setName(name);
+ mbc.setDescription(description);
+
+ ModifiableBlogModel mbm = retrieveBlogModel(blogName/*getState().getSelectedBlogName()*/);
+ mbc.setId(new Integer(mbm.getCategories().size()+1));
+ //mbm.addCategory(mbc);
+ mbm.getCategories().add(mbc);
+ sf.getCurrentSession().save(mbm);
+ }
}
Added: trunk-esial/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogCategory.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogCategory.java (rev 0)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogCategory.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -0,0 +1,18 @@
+package org.jboss.blog.service.store.model;
+
+import org.jboss.blog.model.BlogCategory;
+
+
+import java.io.Serializable;
+
+
+public interface ModifiableBlogCategory extends BlogCategory{
+
+ public void setId(Integer id);
+
+ public void setName(String name);
+
+ public void setDescription(String description);
+
+ public String getDescription();
+}
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogModel.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogModel.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogModel.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -3,7 +3,7 @@
import org.jboss.blog.model.BlogModel;
import org.jboss.blog.model.BlogPostDoesNotExistException;
-import java.util.Set;
+import java.util.List;
/**
* @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
@@ -14,14 +14,15 @@
* @return Set containg {@link ModifiableBlogModel#getCategory()} - name of
* the category to which this model belongs.
*/
- public Set getCategories();
+ //description à modifier
+ public List getCategories();
/**
*
* @return Name of the category, to which this model belongs. An empty string
* denotes the root category.
*/
- public String getCategory();
+ public String getGroup();
/**
* Sets the name of the category, to which this model belongs. The name of
@@ -31,7 +32,7 @@
* @throws BlogModelAlreadyExistsException If a model with this category name
* already exists.
*/
- public void setCategory(String category)
+ public void setGroup(String group)
throws IllegalArgumentException, BlogModelAlreadyExistsException;
public ModifiableBlogPost getModifiableBlogPostByTitleAsId(String titleAsId)
@@ -47,6 +48,15 @@
*/
public void addPost(ModifiableBlogPost post)
throws IllegalArgumentException;
+
+ /**
+ * Adds the given category to this blog model. This method should be used
+ * @param category Category to add.
+ * @throws IllegalArgumentException If category is null, or
+ * it hasn't been obtained in a proper way.
+ */
+ public void addCategory(ModifiableBlogCategory category)
+ throws IllegalArgumentException;
/**
* Removes the given post from this blog model. This method should be used
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/tools/UITools.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/tools/UITools.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/tools/UITools.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,49 +1,55 @@
-package org.jboss.blog.tools;
-
-import org.jboss.blog.BlogName;
-
-import javax.faces.context.FacesContext;
-import javax.faces.application.FacesMessage;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public class UITools {
- public static final String BLOG_VIEW = "blog_view";
- public static final String POST_VIEW = "post_view";
-
- public static final String BLOG_EDIT = "blog_edit";
- public static final String BLOG_NEW = "blog_new";
- public static final String BLOG_DEL = "blog_del";
-
- public static final String POST_EDIT = "post_edit";
- public static final String POST_NEW = "post_new";
- public static final String POST_DEL = "post_del";
-
- public static final String COMMENT_DEL = "comment_del";
-
- public static final String ADMIN_PANEL = "admin_panel";
- public static final String ID_EDIT = "id_edit";
-
- public static void addInfoMessage(String message) {
- FacesContext.getCurrentInstance().addMessage(null,
- new FacesMessage(FacesMessage.SEVERITY_INFO, message, ""));
- }
-
- public static void addErrorMessage(String message) {
- FacesContext.getCurrentInstance().addMessage(null,
- new FacesMessage(FacesMessage.SEVERITY_ERROR, message, ""));
- }
-
- public static void addMessageBlogDoesntExist(BlogName blogName) {
- addErrorMessage("The blog you requested does not exist: " + blogName.toString() + ".");
- }
-
- public static void addMessagePostDoesntExist(String id) {
- addErrorMessage("The post you requested: " + id + " does not exist.");
- }
-
- public static void addMessageCommentDoesntExist() {
- addErrorMessage("The comment you requested does not exist.");
- }
-}
+package org.jboss.blog.tools;
+
+import org.jboss.blog.BlogName;
+
+import javax.faces.context.FacesContext;
+import javax.faces.application.FacesMessage;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class UITools {
+ public static final String BLOG_VIEW = "blog_view";
+ public static final String POST_VIEW = "post_view";
+
+ public static final String BLOG_EDIT = "blog_edit";
+ public static final String BLOG_NEW = "blog_new";
+ public static final String BLOG_DEL = "blog_del";
+ public static final String BLOG_MAN = "blog_manage";
+
+ public static final String POST_EDIT = "post_edit";
+ public static final String POST_NEW = "post_new";
+ public static final String POST_DEL = "post_del";
+
+ public static final String CAT_EDIT = "cat_edit";
+ public static final String CAT_NEW = "cat_new";
+ public static final String CAT_DEL = "cat_delete";
+ public static final String CAT_MAN = "cat_manage";
+
+ public static final String COMMENT_DEL = "comment_del";
+
+ public static final String ADMIN_PANEL = "admin_panel";
+ public static final String ID_EDIT = "id_edit";
+
+ public static void addInfoMessage(String message) {
+ FacesContext.getCurrentInstance().addMessage(null,
+ new FacesMessage(FacesMessage.SEVERITY_INFO, message, ""));
+ }
+
+ public static void addErrorMessage(String message) {
+ FacesContext.getCurrentInstance().addMessage(null,
+ new FacesMessage(FacesMessage.SEVERITY_ERROR, message, ""));
+ }
+
+ public static void addMessageBlogDoesntExist(BlogName blogName) {
+ addErrorMessage("The blog you requested does not exist: " + blogName.toString() + ".");
+ }
+
+ public static void addMessagePostDoesntExist(String id) {
+ addErrorMessage("The post you requested: " + id + " does not exist.");
+ }
+
+ public static void addMessageCommentDoesntExist() {
+ addErrorMessage("The comment you requested does not exist.");
+ }
+}
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/ui/BlogView.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/ui/BlogView.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/ui/BlogView.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,369 +1,381 @@
-package org.jboss.blog.ui;
-
-import org.jboss.blog.model.BlogModel;
-import org.jboss.blog.model.BlogModelDoesNotExistException;
-import org.jboss.blog.model.BlogPost;
-import org.jboss.blog.model.BlogPostDoesNotExistException;
-import org.jboss.blog.model.impl.EmptyBlogPost;
-import org.jboss.blog.model.impl.EmptyBlogModel;
-import org.jboss.blog.BlogName;
-import org.jboss.blog.service.store.model.ModifiableBlogPost;
-import org.jboss.blog.service.store.model.ModifiableBlogModel;
-import org.jboss.blog.tools.BlogTools;
-import org.jboss.blog.tools.UITools;
-
-import javax.faces.context.FacesContext;
-import javax.faces.component.UIData;
-import java.util.List;
-
-/**
- * A request-scoped bean allowing to access current view setup - what and how
- * should be displayed.
- * @author Adam Warski (adamw at aster.pl)
- */
-public class BlogView {
- public BlogView() {
-
- }
-
- // Faces-managed properties
- private UIData postsData;
- private State state;
-
- public UIData getPostsData() {
- return postsData;
- }
-
- public void setPostsData(UIData postsData) {
- this.postsData = postsData;
- }
-
- public State getState() {
- return state;
- }
-
- public void setState(State state) {
- this.state = state;
- }
-
- // Cached properties
- private BlogName blogName;
- private BlogModel blogModel;
- private BlogViewState blogViewState;
- private Integer numberOfPostsPerPage;
- private Boolean viewPostsOnSeparatePage;
- private Boolean viewAllPosts;
- private Boolean commentsEnabled;
- private Boolean postsExpandable;
- private Boolean blogModifiable;
- private Boolean defaultBlog;
-
- /* A list of posts to show in the current view, plus the next post,
- * if such a post exists (used to checking if there is a next page). */
- private List postsWithNext;
- // A list of posts to show in the current view.
- private List posts;
-
- Object getRequest() {
- return FacesContext.getCurrentInstance().getExternalContext().getRequest();
- }
-
- private void resetBlogData() {
- blogName = null;
- blogModel = null;
- blogModifiable = null;
- blogViewState = null;
- defaultBlog = null;
- }
-
- private void resetPosts() {
- postsWithNext = null;
- posts = null;
- }
-
- public BlogName getBlogName() {
- if (blogName == null) {
- // Blog name from the state has precedence over the default one.
- blogName = getState().getSelectedBlogName();
- if (blogName == null) {
- blogName = BlogTools.getBlogService().getNameService().retrieveBlogName(getRequest());
- }
- }
-
- return blogName;
- }
-
- public Boolean getDefaultBlog() {
- if (defaultBlog == null) {
- defaultBlog = Boolean.valueOf(getState().getSelectedBlogName() == null);
- }
-
- return defaultBlog;
- }
-
- public BlogModel getBlogModel() {
- if (blogModel == null) {
- try {
- blogModel = BlogTools.getBlogService().getModelService().retrieveBlogModel(
- getBlogName());
- } catch (BlogModelDoesNotExistException e) {
- UITools.addMessageBlogDoesntExist(getBlogName());
- blogModel = new EmptyBlogModel();
- }
- }
-
- return blogModel;
- }
-
- public Boolean getCommentsEnabled() {
- if (commentsEnabled == null) {
- commentsEnabled = BlogTools.getBlogService().getConfigurationService().
- getCommentsEnabled(getRequest());
- }
-
- return commentsEnabled;
- }
-
- public Integer getNumberOfPostsPerPage() {
- if (numberOfPostsPerPage == null) {
- numberOfPostsPerPage = BlogTools.getBlogService().getConfigurationService().
- getNumberOfPostsPerPage(getRequest());
- }
-
- return numberOfPostsPerPage;
- }
-
- public Boolean getViewPostsOnSeparatePage() {
- if (viewPostsOnSeparatePage == null) {
- viewPostsOnSeparatePage = BlogTools.getBlogService().getConfigurationService().
- getViewPostsOnSeparatePage(getRequest());
- }
-
- return viewPostsOnSeparatePage;
- }
-
- public Boolean getViewAllPosts() {
- if (viewAllPosts == null) {
- viewAllPosts = BlogTools.getBlogService().getConfigurationService().
- getViewAllPosts(getRequest());
- }
-
- return viewAllPosts;
- }
-
- public BlogViewState getBlogViewState() {
- if (blogViewState == null) {
- blogViewState = getState().getBlogViewState(getBlogName());
- }
-
- return blogViewState;
- }
-
- public Boolean getPostsExpandable() {
- if (postsExpandable == null) {
- postsExpandable = Boolean.valueOf(!getViewAllPosts().booleanValue() ||
- getViewPostsOnSeparatePage().booleanValue());
- }
-
- return postsExpandable;
- }
-
- public Boolean getBlogModifiable() {
- if (blogModifiable == null) {
- blogModifiable = Boolean.valueOf(BlogTools.getBlogService().getStoreService().
- retrieveBlogModifiable(getBlogName()));
- }
-
- return blogModifiable;
- }
-
- private List getPostsWithNext() {
- if (postsWithNext == null) {
- postsWithNext = getBlogModel().getPosts(getFrom(), getTo()+1);
- }
-
- return postsWithNext;
- }
-
- public List getPosts() {
- if (posts == null) {
- List postsWithNext = getPostsWithNext();
- posts = postsWithNext.subList(0, Math.min(postsWithNext.size(),
- getNumberOfPostsPerPage().intValue()));
- }
-
- return posts;
- }
-
- //
-
- public boolean getHasPrevious() {
- return getFrom() > 0;
- }
-
- public boolean getHasNext() {
- return getPostsWithNext().size() > getTo() - getFrom();
- }
-
- public int getTo() {
- return getFrom() + getNumberOfPostsPerPage().intValue();
- }
-
- public int getFrom() {
- return getBlogViewState().getFrom();
- }
-
- private void setFrom(int from) {
- BlogViewState bvs = getBlogViewState();
- bvs.setFrom(from);
- setSelectedPostTitleAsId(null);
- }
-
- public String getSelectedPostTitleAsId() {
- return getBlogViewState().getSelectedPostTitleAsId();
- }
-
- private void setSelectedPostTitleAsId(String selectedPostId) {
- getBlogViewState().setSelectedPostTitleAsId(selectedPostId);
- }
-
- private BlogPost postDoesNotExist(String id) {
- UITools.addMessagePostDoesntExist(id);
- return new EmptyBlogPost();
- }
-
- ModifiableBlogModel getModifiableModel() throws BlogModelDoesNotExistException {
- return BlogTools.getBlogService().getStoreService().retrieveBlogModel(
- getBlogName());
- }
-
- ModifiableBlogPost getModifiableSelectedPost()
- throws BlogPostDoesNotExistException, BlogModelDoesNotExistException {
- return getModifiableModel().getModifiableBlogPostByTitleAsId(
- getSelectedPostTitleAsId());
- }
-
- public BlogPost getSelectedPost() {
- String titleAsId = getSelectedPostTitleAsId();
-
- if (titleAsId == null) {
- return postDoesNotExist(titleAsId);
- }
-
- // First looking in the specified range.
- List posts = getPostsWithNext();
- for (int i=0; i<posts.size(); i++) {
- BlogPost current = (BlogPost) posts.get(i);
- if (titleAsId.equals(current.getTitleAsId())) {
- return current;
- }
- }
-
- // If unsuccessfull, looking in all entries (we may find something if
- // after selecting the entry, new entries have been added/ remvoed).
- try {
- return blogModel.getPostByTitleAsId(titleAsId);
- } catch (BlogPostDoesNotExistException e) {
- return postDoesNotExist(titleAsId);
- }
- }
-
- // Actions
-
- public String next() {
- setFrom(getFrom() + getNumberOfPostsPerPage().intValue());
- resetPosts();
-
- return null;
- }
-
- public String previous() {
- setFrom(Math.max(getFrom() - getNumberOfPostsPerPage().intValue(), 0));
- resetPosts();
-
- return null;
- }
-
- public String postView() {
- postSelect();
-
- if (getViewPostsOnSeparatePage().booleanValue()) {
- return UITools.POST_VIEW;
- } else {
- return null;
- }
- }
-
- public String blogView() {
- postClear();
-
- return UITools.BLOG_VIEW;
- }
-
- public String postEditFromBlogView() {
- postSelect();
- exitFromBlogView();
-
- return UITools.POST_EDIT;
- }
-
- public String postEditFromPostView() {
- exitFromPostView();
-
- return UITools.POST_EDIT;
- }
-
- public String postNew() {
- exitFromBlogView();
-
- return UITools.POST_NEW;
- }
-
- public String blogEditFromBlogView() {
- exitFromBlogView();
-
- return UITools.BLOG_EDIT;
- }
-
- public String blogEditFromPostView() {
- exitFromPostView();
-
- return UITools.BLOG_EDIT;
- }
-
- public String returnToDefault() {
- getState().setSelectedBlogName(null);
- resetBlogData();
-
- return null;
- }
-
- // Helper methods
-
- private void postSelect() {
- BlogPost selected = (BlogPost) postsData.getRowData();
- setSelectedPostTitleAsId(selected.getTitleAsId());
- }
-
- private void postClear() {
- setSelectedPostTitleAsId(null);
- }
-
- private void exitFromBlogView() {
- getState().setReturnTo(UITools.BLOG_VIEW);
- }
-
- private void exitFromPostView() {
- getState().setReturnTo(UITools.POST_VIEW);
- }
-
- String getReturnTo() {
- String viewName = state.getReturnTo();
- if ((viewName == null) || (UITools.BLOG_VIEW.equals(viewName))) {
- viewName = UITools.BLOG_VIEW;
- postClear();
- }
-
- return viewName;
- }
-}
+package org.jboss.blog.ui;
+
+import org.jboss.blog.model.BlogModel;
+import org.jboss.blog.model.BlogModelDoesNotExistException;
+import org.jboss.blog.model.BlogPost;
+import org.jboss.blog.model.BlogPostDoesNotExistException;
+import org.jboss.blog.model.impl.EmptyBlogPost;
+import org.jboss.blog.model.impl.EmptyBlogModel;
+import org.jboss.blog.BlogName;
+import org.jboss.blog.service.store.model.ModifiableBlogPost;
+import org.jboss.blog.service.store.model.ModifiableBlogModel;
+import org.jboss.blog.tools.BlogTools;
+import org.jboss.blog.tools.UITools;
+
+import javax.faces.context.FacesContext;
+import javax.faces.component.UIData;
+import java.util.List;
+
+/**
+ * A request-scoped bean allowing to access current view setup - what and how
+ * should be displayed.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class BlogView {
+ public BlogView() {
+
+ }
+
+ // Faces-managed properties
+ private UIData postsData;
+ private State state;
+
+ public UIData getPostsData() {
+ return postsData;
+ }
+
+ public void setPostsData(UIData postsData) {
+ this.postsData = postsData;
+ }
+
+ public State getState() {
+ return state;
+ }
+
+ public void setState(State state) {
+ this.state = state;
+ }
+
+ // Cached properties
+ private BlogName blogName;
+ private BlogModel blogModel;
+ private BlogViewState blogViewState;
+ private Integer numberOfPostsPerPage;
+ private Boolean viewPostsOnSeparatePage;
+ private Boolean viewAllPosts;
+ private Boolean commentsEnabled;
+ private Boolean postsExpandable;
+ private Boolean blogModifiable;
+ private Boolean defaultBlog;
+
+ /* A list of posts to show in the current view, plus the next post,
+ * if such a post exists (used to checking if there is a next page). */
+ private List postsWithNext;
+ // A list of posts to show in the current view.
+ private List posts;
+
+ Object getRequest() {
+ return FacesContext.getCurrentInstance().getExternalContext().getRequest();
+ }
+
+ private void resetBlogData() {
+ blogName = null;
+ blogModel = null;
+ blogModifiable = null;
+ blogViewState = null;
+ defaultBlog = null;
+ }
+
+ private void resetPosts() {
+ postsWithNext = null;
+ posts = null;
+ }
+
+ public BlogName getBlogName() {
+ if (blogName == null) {
+ // Blog name from the state has precedence over the default one.
+ blogName = getState().getSelectedBlogName();
+ if (blogName == null) {
+ blogName = BlogTools.getBlogService().getNameService().retrieveBlogName(getRequest());
+ }
+ }
+
+ return blogName;
+ }
+
+ public Boolean getDefaultBlog() {
+ if (defaultBlog == null) {
+ defaultBlog = Boolean.valueOf(getState().getSelectedBlogName() == null);
+ }
+
+ return defaultBlog;
+ }
+
+ public BlogModel getBlogModel() {
+ if (blogModel == null) {
+ try {
+ blogModel = BlogTools.getBlogService().getModelService().retrieveBlogModel(
+ getBlogName());
+ } catch (BlogModelDoesNotExistException e) {
+ UITools.addMessageBlogDoesntExist(getBlogName());
+ blogModel = new EmptyBlogModel();
+ }
+ }
+
+ return blogModel;
+ }
+
+ public Boolean getCommentsEnabled() {
+ if (commentsEnabled == null) {
+ commentsEnabled = BlogTools.getBlogService().getConfigurationService().
+ getCommentsEnabled(getRequest());
+ }
+
+ return commentsEnabled;
+ }
+
+ public Integer getNumberOfPostsPerPage() {
+ if (numberOfPostsPerPage == null) {
+ numberOfPostsPerPage = BlogTools.getBlogService().getConfigurationService().
+ getNumberOfPostsPerPage(getRequest());
+ }
+
+ return numberOfPostsPerPage;
+ }
+
+ public Boolean getViewPostsOnSeparatePage() {
+ if (viewPostsOnSeparatePage == null) {
+ viewPostsOnSeparatePage = BlogTools.getBlogService().getConfigurationService().
+ getViewPostsOnSeparatePage(getRequest());
+ }
+
+ return viewPostsOnSeparatePage;
+ }
+
+ public Boolean getViewAllPosts() {
+ if (viewAllPosts == null) {
+ viewAllPosts = BlogTools.getBlogService().getConfigurationService().
+ getViewAllPosts(getRequest());
+ }
+
+ return viewAllPosts;
+ }
+
+ public BlogViewState getBlogViewState() {
+ if (blogViewState == null) {
+ blogViewState = getState().getBlogViewState(getBlogName());
+ }
+
+ return blogViewState;
+ }
+
+ public Boolean getPostsExpandable() {
+ if (postsExpandable == null) {
+ postsExpandable = Boolean.valueOf(!getViewAllPosts().booleanValue() ||
+ getViewPostsOnSeparatePage().booleanValue());
+ }
+
+ return postsExpandable;
+ }
+
+ public Boolean getBlogModifiable() {
+ if (blogModifiable == null) {
+ blogModifiable = Boolean.valueOf(BlogTools.getBlogService().getStoreService().
+ retrieveBlogModifiable(getBlogName()));
+ }
+
+ return blogModifiable;
+ }
+
+ private List getPostsWithNext() {
+ if (postsWithNext == null) {
+ postsWithNext = getBlogModel().getPosts(getFrom(), getTo()+1);
+ }
+
+ return postsWithNext;
+ }
+
+ public List getPosts() {
+ if (posts == null) {
+ List postsWithNext = getPostsWithNext();
+ posts = postsWithNext.subList(0, Math.min(postsWithNext.size(),
+ getNumberOfPostsPerPage().intValue()));
+ }
+
+ return posts;
+ }
+
+ //
+
+ public boolean getHasPrevious() {
+ return getFrom() > 0;
+ }
+
+ public boolean getHasNext() {
+ return getPostsWithNext().size() > getTo() - getFrom();
+ }
+
+ public int getTo() {
+ return getFrom() + getNumberOfPostsPerPage().intValue();
+ }
+
+ public int getFrom() {
+ return getBlogViewState().getFrom();
+ }
+
+ private void setFrom(int from) {
+ BlogViewState bvs = getBlogViewState();
+ bvs.setFrom(from);
+ setSelectedPostTitleAsId(null);
+ }
+
+ public String getSelectedPostTitleAsId() {
+ return getBlogViewState().getSelectedPostTitleAsId();
+ }
+
+ private void setSelectedPostTitleAsId(String selectedPostId) {
+ getBlogViewState().setSelectedPostTitleAsId(selectedPostId);
+ }
+
+ private BlogPost postDoesNotExist(String id) {
+ UITools.addMessagePostDoesntExist(id);
+ return new EmptyBlogPost();
+ }
+
+ ModifiableBlogModel getModifiableModel() throws BlogModelDoesNotExistException {
+ return BlogTools.getBlogService().getStoreService().retrieveBlogModel(
+ getBlogName());
+ }
+
+ ModifiableBlogPost getModifiableSelectedPost()
+ throws BlogPostDoesNotExistException, BlogModelDoesNotExistException {
+ return getModifiableModel().getModifiableBlogPostByTitleAsId(
+ getSelectedPostTitleAsId());
+ }
+
+ public BlogPost getSelectedPost() {
+ String titleAsId = getSelectedPostTitleAsId();
+
+ if (titleAsId == null) {
+ return postDoesNotExist(titleAsId);
+ }
+
+ // First looking in the specified range.
+ List posts = getPostsWithNext();
+ for (int i=0; i<posts.size(); i++) {
+ BlogPost current = (BlogPost) posts.get(i);
+ if (titleAsId.equals(current.getTitleAsId())) {
+ return current;
+ }
+ }
+
+ // If unsuccessfull, looking in all entries (we may find something if
+ // after selecting the entry, new entries have been added/ remvoed).
+ try {
+ return blogModel.getPostByTitleAsId(titleAsId);
+ } catch (BlogPostDoesNotExistException e) {
+ return postDoesNotExist(titleAsId);
+ }
+ }
+
+ // Actions
+
+ public String next() {
+ setFrom(getFrom() + getNumberOfPostsPerPage().intValue());
+ resetPosts();
+
+ return null;
+ }
+
+ public String previous() {
+ setFrom(Math.max(getFrom() - getNumberOfPostsPerPage().intValue(), 0));
+ resetPosts();
+
+ return null;
+ }
+
+ public String postView() {
+ postSelect();
+
+ if (getViewPostsOnSeparatePage().booleanValue()) {
+ return UITools.POST_VIEW;
+ } else {
+ return null;
+ }
+ }
+
+ public String blogView() {
+ postClear();
+
+ return UITools.BLOG_VIEW;
+ }
+
+ public String postEditFromBlogView() {
+ postSelect();
+ exitFromBlogView();
+
+ return UITools.POST_EDIT;
+ }
+
+ public String postEditFromPostView() {
+ exitFromPostView();
+
+ return UITools.POST_EDIT;
+ }
+
+ public String postNew() {
+ exitFromBlogView();
+
+ return UITools.POST_NEW;
+ }
+
+ public String manageBlog() {
+ exitFromBlogView();
+
+ return UITools.BLOG_MAN;
+ }
+
+ public String manageCategory() {
+ exitFromBlogView();
+
+ return UITools.CAT_MAN;
+ }
+
+ public String blogEditFromBlogView() {
+ exitFromBlogView();
+
+ return UITools.BLOG_EDIT;
+ }
+
+ public String blogEditFromPostView() {
+ exitFromPostView();
+
+ return UITools.BLOG_EDIT;
+ }
+
+ public String returnToDefault() {
+ getState().setSelectedBlogName(null);
+ resetBlogData();
+
+ return null;
+ }
+
+ // Helper methods
+
+ private void postSelect() {
+ BlogPost selected = (BlogPost) postsData.getRowData();
+ setSelectedPostTitleAsId(selected.getTitleAsId());
+ }
+
+ private void postClear() {
+ setSelectedPostTitleAsId(null);
+ }
+
+ private void exitFromBlogView() {
+ getState().setReturnTo(UITools.BLOG_VIEW);
+ }
+
+ private void exitFromPostView() {
+ getState().setReturnTo(UITools.POST_VIEW);
+ }
+
+ String getReturnTo() {
+ String viewName = state.getReturnTo();
+ if ((viewName == null) || (UITools.BLOG_VIEW.equals(viewName))) {
+ viewName = UITools.BLOG_VIEW;
+ postClear();
+ }
+
+ return viewName;
+ }
+}
Added: trunk-esial/blog-core/src/java/org/jboss/blog/ui/CategoryEdit.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/ui/CategoryEdit.java (rev 0)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/ui/CategoryEdit.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -0,0 +1,179 @@
+package org.jboss.blog.ui;
+
+import org.jboss.blog.model.BlogModel;
+import org.jboss.blog.model.BlogModelDoesNotExistException;
+import org.jboss.blog.model.impl.EmptyBlogModel;
+import org.jboss.blog.tools.BlogTools;
+import org.jboss.blog.tools.UITools;
+import org.jboss.blog.service.store.model.ModifiableBlogModel;
+import org.jboss.blog.service.store.model.ModifiableBlogCategory;
+import org.jboss.blog.service.store.model.BlogModelAlreadyExistsException;
+import org.jboss.blog.BlogName;
+
+import java.util.Date;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class CategoryEdit {
+ private State state;
+ private BlogView blogView;
+
+ private boolean initDone;
+
+ private Integer id = new Integer(1);
+ private String name;
+ private String description;
+
+
+ public CategoryEdit() {
+ initDone = false;
+ }
+
+ public Integer getId(){
+ if (!initDone) { init(); }
+ return id;
+ }
+
+ public void setId(Integer id){
+ this.id = id;
+ }
+
+ public String getName(){
+ if (!initDone) { init(); }
+ return name;
+ }
+
+ public void setName(String name){
+ this.name = name;
+ }
+
+
+ public String getDescription() {
+ if (!initDone) { init(); }
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+
+ public State getState() {
+ return state;
+ }
+
+ public void setState(State state) {
+ this.state = state;
+ }
+
+ public BlogView getBlogView() {
+ return blogView;
+ }
+
+ public void setBlogView(BlogView blogView) {
+ this.blogView = blogView;
+ }
+
+ //
+
+ private void init() {
+
+ name = getState().getSelectedCategory();
+ ModifiableBlogCategory mbc = BlogTools.getBlogService().getStoreService().retrieveBlogCategory(name);
+ if(mbc==null){
+ description="";
+ }
+ else{
+ description = mbc.getDescription();
+ }
+
+ initDone = true;
+ }
+
+ // Actions
+
+ public String save() {
+ try {
+ ModifiableBlogModel mbm = BlogTools.getBlogService().getStoreService().retrieveBlogModel(
+ blogView.getBlogName());
+
+ boolean changed = false;
+ /*
+ if (!BlogTools.objectsEqual(description, mbm.getCategory().getDescription())) {
+ changed = true; mbm.getCategory().setDescription(description); }
+ if (!BlogTools.objectsEqual(name, mbm.getCategory().getName())) {
+ changed = true; mbm.getCategory().setName(name); }
+ */
+ if (changed) {
+ UITools.addInfoMessage("Blog category data saved.");
+ } else {
+ UITools.addInfoMessage("No blog category data was modified.");
+ }
+ } catch (BlogModelDoesNotExistException e) {
+ UITools.addMessageBlogDoesntExist(blogView.getBlogName());
+ }
+
+ return blogView.getReturnTo();
+ }
+
+ public String saveNew() {
+
+ try {
+ BlogTools.getBlogService().getStoreService().addBlogCategory(name,description,blogView.getBlogName());
+ /*
+ ModifiableBlogCategory mbc = BlogTools.getBlogService().getStoreService().newBlogCategory();
+
+ mbc.setId(id);
+ mbc.setName(name);
+ mbc.setDescription(getDescription());
+
+ ModifiableBlogModel mbm = BlogTools.getBlogService().getStoreService().retrieveBlogModel(blogView.getBlogName()/*getState().getSelectedBlogName());
+
+ mbm.addCategory(mbc);
+ */
+ UITools.addInfoMessage("New blog category created.");
+ } catch (IllegalArgumentException e) {
+ UITools.addErrorMessage("Illegal argument: " + getState().getSelectedBlogName() + ".");
+ }catch(BlogModelDoesNotExistException e){
+ UITools.addErrorMessage("Blog Model does not exist" + getState().getSelectedBlogName() + ".");
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+
+ return null;//UITools.BLOG_VIEW;
+ }
+
+ public String delete() {
+ try {
+ String toDelete = getState().getSelectedCategory();
+
+ BlogTools.getBlogService().getStoreService().deleteBlogCategory(toDelete);
+
+ getState().setSelectedCategory(null);
+
+ UITools.addInfoMessage("Blog category deleted.");
+
+ // If this was the last category with this id, we must return to the admin panel.
+ if (BlogTools.getBlogService().getStoreService().retrieveAllCategories(getState().getSelectedBlogName()).size() == 0) {
+ return UITools.ADMIN_PANEL;
+ } else {
+ return UITools.ID_EDIT;
+ }
+ } catch(Throwable t) {
+ t.printStackTrace();
+ throw new RuntimeException(t);
+ }
+
+ }
+
+ public String backFromDelete(){
+ getState().setSelectedBlogName(null);
+
+ return UITools.ID_EDIT;
+ }
+
+ public String back() {
+ return UITools.CAT_MAN;
+ }
+}
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/ui/IdEdit.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/ui/IdEdit.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/ui/IdEdit.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,175 +1,293 @@
-package org.jboss.blog.ui;
-
-import org.jboss.blog.tools.BlogTools;
-import org.jboss.blog.tools.UITools;
-import org.jboss.blog.BlogName;
-
-import javax.faces.model.SelectItem;
-import java.util.List;
-import java.util.Iterator;
-import java.util.ArrayList;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public class IdEdit {
- private State state;
-
- private List rawIds;
- private List ids;
- private List categories;
-
- private String newId;
- private String existingId;
-
- private String newCategory;
- private String existingCategory;
- private String deleteCategory;
-
- private Boolean categoryExists;
-
- public IdEdit() {
-
- }
-
- public State getState() {
- return state;
- }
-
- public void setState(State state) {
- this.state = state;
- }
-
- private void populateRawIds() {
- if (rawIds == null) {
- // TODO: filter with permissions of the logged in person
- rawIds = BlogTools.getBlogService().getStoreService().retrieveAllBlogs();
- }
- }
-
- public List getIds() {
- if (ids == null) {
- populateRawIds();
- ids = new ArrayList();
-
- for (Iterator iter = rawIds.iterator(); iter.hasNext();) {
- BlogName next = (BlogName) iter.next();
- ids.add(new SelectItem(next.getId(), next.getId()));
- }
- }
-
- return ids;
- }
-
- public List getCategories() {
- if (categories == null) {
- // TODO: filter with permissions of the logged in person
- List rawCategories = BlogTools.getBlogService().getStoreService()
- .retrieveAllCategories(new BlogName(getState().getSelectedBlogId(), null));
- categories = new ArrayList();
-
- for (Iterator iter = rawCategories.iterator(); iter.hasNext();) {
- BlogName next = (BlogName) iter.next();
- categories.add(new SelectItem(next.getCategory(), next.getCategory()));
- }
- }
-
- return categories;
- }
-
- public Boolean getCategoryExists() {
- if (categoryExists == null) {
- categoryExists = Boolean.valueOf(getCategories().size() > 0);
- }
-
- return categoryExists;
- }
-
- public String getNewId() {
- return newId;
- }
-
- public void setNewId(String newId) {
- this.newId = newId;
- }
-
- public String getExistingId() {
- return existingId;
- }
-
- public void setExistingId(String existingId) {
- this.existingId = existingId;
- }
-
- public String getNewCategory() {
- return newCategory;
- }
-
- public void setNewCategory(String newCategory) {
- this.newCategory = newCategory;
- }
-
- public String getExistingCategory() {
- return existingCategory;
- }
-
- public void setExistingCategory(String existingCategory) {
- this.existingCategory = existingCategory;
- }
-
- public String getDeleteCategory() {
- return deleteCategory;
- }
-
- public void setDeleteCategory(String deleteCategory) {
- this.deleteCategory = deleteCategory;
- }
-
- // Actions
-
- public String editExisting() {
- getState().setSelectedBlogId(getExistingId());
-
- return UITools.ID_EDIT;
- }
-
- public String editNew() {
- // Checking if the new id is not empty.
- if (BlogTools.isEmpty(getNewId())) {
- UITools.addErrorMessage("New blog id cannot be null.");
- return null;
- }
-
- // And if it doesn't already exist.
- populateRawIds();
- if (rawIds.contains(new BlogName(getNewId(), null))) {
- UITools.addErrorMessage("Blog id already exists.");
- return null;
- }
-
- getState().setSelectedBlogId(getNewId());
-
- return UITools.ID_EDIT;
- }
-
- public String newCategory() {
- getState().setSelectedBlogName(new BlogName(getState().getSelectedBlogId(),
- getNewCategory()));
-
- return UITools.BLOG_NEW;
- }
-
- public String editCategory() {
- getState().setSelectedBlogName(new BlogName(getState().getSelectedBlogId(),
- getExistingCategory()));
-
- return UITools.BLOG_VIEW;
- }
-
- public String deleteCategory() {
- getState().setSelectedBlogName(new BlogName(getState().getSelectedBlogId(),
- getDeleteCategory()));
-
- return UITools.BLOG_DEL;
- }
-}
+package org.jboss.blog.ui;
+
+import org.jboss.blog.tools.BlogTools;
+import org.jboss.blog.tools.UITools;
+import org.jboss.blog.BlogName;
+import org.jboss.blog.model.BlogModel;
+import org.jboss.blog.model.BlogCategory;
+import org.jboss.blog.model.BlogModelDoesNotExistException;
+import org.jboss.blog.service.store.model.ModifiableBlogModel;
+import org.jboss.blog.service.store.hibernate.HBlogCategory;
+import javax.faces.model.SelectItem;
+import java.util.List;
+import java.util.Iterator;
+import java.util.ArrayList;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class IdEdit {
+ private State state;
+
+ private List rawIds;
+ private List ids;
+ private List groups;
+ private List categories;
+ private List categoryNames;
+
+ private String newId;
+ private String existingId;
+
+ private String newGroup;
+ private String existingGroup;
+ private String deleteGroup;
+
+ private String newCategory;
+ private String existingCategory;
+ private String deleteCategory;
+
+ private Boolean groupExists;
+ private Boolean categoryExists;
+
+ private BlogView blogView;
+
+ public IdEdit() {
+
+ }
+
+ public State getState() {
+ return state;
+ }
+
+ public void setState(State state) {
+ this.state = state;
+ }
+
+ private void populateRawIds() {
+ if (rawIds == null) {
+ // TODO: filter with permissions of the logged in person
+ rawIds = BlogTools.getBlogService().getStoreService().retrieveAllBlogs();
+ }
+ }
+
+ public List getIds() {
+ if (ids == null) {
+ populateRawIds();
+ ids = new ArrayList();
+
+ for (Iterator iter = rawIds.iterator(); iter.hasNext();) {
+ BlogName next = (BlogName) iter.next();
+ ids.add(new SelectItem(next.getId(), next.getId()));
+ }
+ }
+
+ return ids;
+ }
+
+ public List getCategories() {
+ if (categories == null) {
+ // TODO: filter with permissions of the logged in person
+
+ //categories = BlogTools.getBlogService().getStoreService().retrieveAllCategories(new BlogName(getState().getSelectedBlogId(), null));
+ try{
+ categories = (BlogTools.getBlogService().getStoreService().retrieveAllCategories(blogView.getBlogName()));
+
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+
+ return categories;
+ }
+
+ public List getCategoryNames(){
+ if (categoryNames == null) {
+ // TODO: filter with permissions of the logged in person
+
+ //categories = BlogTools.getBlogService().getStoreService().retrieveAllCategories(new BlogName(getState().getSelectedBlogId(), null));
+ try{
+ List cat = getCategories();
+ categoryNames = new ArrayList();
+ String c;
+ if(cat.size()<1)
+ categoryNames.add(new SelectItem("ya rin","ya rin"));
+ else{
+
+ for (Iterator iter = cat.iterator(); iter.hasNext();) {
+ HBlogCategory next = (HBlogCategory) iter.next();
+ categoryNames.add(new SelectItem(next.getName(), next.getName()));
+ }
+ }
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+
+ return categoryNames;
+ }
+
+ public void setCategoryNames(List categoryNames){
+ this.categoryNames = categoryNames;
+ }
+
+ public List getGroups(){
+ List rawCategories = BlogTools.getBlogService().getStoreService()
+ .retrieveAllGroups(new BlogName(getState().getSelectedBlogId(), null));
+ groups = new ArrayList();
+
+ for (Iterator iter = rawCategories.iterator(); iter.hasNext();) {
+ BlogName next = (BlogName) iter.next();
+ groups.add(new SelectItem(next.getGroup(), next.getGroup()));
+ }
+
+ return groups;
+ }
+
+
+ public Boolean getGroupExists() {
+ if (groupExists == null) {
+ groupExists = Boolean.valueOf(getGroups().size() > 0);
+ }
+
+ return groupExists;
+ }
+
+ public Boolean getCategoryExists() {
+ if (categoryExists == null) {
+ categoryExists = Boolean.valueOf(getCategories().size() > 0);
+ }
+
+ return categoryExists;
+ }
+
+
+ public String getNewId() {
+ return newId;
+ }
+
+ public void setNewId(String newId) {
+ this.newId = newId;
+ }
+
+ public String getExistingId() {
+ return existingId;
+ }
+
+ public void setExistingId(String existingId) {
+ this.existingId = existingId;
+ }
+
+ public String getNewGroup() {
+ return newGroup;
+ }
+
+ public void setNewGroup(String newGroup) {
+ this.newGroup = newGroup;
+ }
+
+ public String getNewCategory() {
+ return newCategory;
+ }
+
+ public void setNewCategory(String newCategory) {
+ this.newCategory = newCategory;
+ }
+
+ public String getExistingGroup() {
+ return existingGroup;
+ }
+
+ public void setExistingGroup(String existingGroup) {
+ this.existingGroup = existingGroup;
+ }
+
+ public String getDeleteGroup() {
+ return deleteGroup;
+ }
+
+ public void setDeleteGroup(String deleteGroup) {
+ this.deleteGroup = deleteGroup;
+ }
+
+ public String getExistingCategory() {
+ return existingCategory;
+ }
+
+ public void setExistingCategory(String existingCategory) {
+ this.existingCategory = existingCategory;
+ }
+
+ public String getDeleteCategory() {
+ return deleteCategory;
+ }
+
+ public void setDeleteCategory(String deleteCategory) {
+ this.deleteCategory = deleteCategory;
+ }
+
+ public BlogView getBlogView(){
+ return blogView;
+ }
+
+ public void setBlogView(BlogView bv){
+ blogView = bv;
+ }
+
+ // Actions
+
+ public String editExisting() {
+ getState().setSelectedBlogId(getExistingId());
+
+ return UITools.ID_EDIT;
+ }
+
+ public String editNew() {
+ // Checking if the new id is not empty.
+ if (BlogTools.isEmpty(getNewId())) {
+ UITools.addErrorMessage("New blog id cannot be null.");
+ return null;
+ }
+
+ // And if it doesn't already exist.
+ populateRawIds();
+ if (rawIds.contains(new BlogName(getNewId(), null))) {
+ UITools.addErrorMessage("Blog id already exists.");
+ return null;
+ }
+
+ getState().setSelectedBlogId(getNewId());
+
+ return UITools.ID_EDIT;
+ }
+
+ public String newGroup() {
+ getState().setSelectedBlogName(new BlogName(getState().getSelectedBlogId(),
+ getNewGroup()));
+
+ return UITools.BLOG_NEW;
+ }
+
+ public String newCategory() {
+ getState().setSelectedCategory(getNewCategory());
+
+ return UITools.CAT_NEW;
+ }
+
+ public String editGroup() {
+ getState().setSelectedBlogName(new BlogName(getState().getSelectedBlogId(),
+ getExistingGroup()));
+
+ return UITools.BLOG_VIEW;
+ }
+
+ public String editCategory() {
+ Integer catId = BlogTools.getBlogService().getStoreService().retrieveBlogCategoryId(getNewCategory());
+ getState().setSelectedCategoryId(catId);
+
+ return UITools.CAT_EDIT;
+ }
+
+ public String deleteGroup() {
+ getState().setSelectedBlogName(new BlogName(getState().getSelectedBlogId(),
+ getDeleteGroup()));
+
+ return UITools.BLOG_DEL;
+ }
+
+ public String deleteCategory() {
+ getState().setSelectedCategory(getDeleteCategory());
+
+ return UITools.CAT_DEL;
+ }
+
+}
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/ui/PostEdit.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/ui/PostEdit.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/ui/PostEdit.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,292 +1,298 @@
-package org.jboss.blog.ui;
-
-import org.jboss.blog.model.BlogModelDoesNotExistException;
-import org.jboss.blog.model.BlogPost;
-import org.jboss.blog.model.BlogPostDoesNotExistException;
-import org.jboss.blog.tools.BlogTools;
-import org.jboss.blog.tools.UITools;
-import org.jboss.blog.service.store.model.ModifiableBlogModel;
-import org.jboss.blog.service.store.model.ModifiableBlogPost;
-import org.jboss.blog.BlogName;
-
-import java.util.*;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public class PostEdit {
- private State state;
- private BlogView blogView;
-
- private boolean initDone;
-
- private String title;
- private String description;
- private String link;
- private String guid;
- private String commentLink;
-
- private List blogs;
-
- public PostEdit() {
- initDone = false;
- }
-
- public String getTitle() {
- if (!initDone) { init(); }
- return title;
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public String getDescription() {
- if (!initDone) { init(); }
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public String getLink() {
- if (!initDone) { init(); }
- return link;
- }
-
- public void setLink(String link) {
- this.link = link;
- }
-
- public String getGuid() {
- if (!initDone) { init(); }
- return guid;
- }
-
- public String getCommentLink() {
- if (!initDone) { init(); }
- return commentLink;
- }
-
- public void setCommentLink(String commentLink) {
- this.commentLink = commentLink;
- }
-
- public void setGuid(String guid) {
- this.guid = guid;
- }
-
- public State getState() {
- return state;
- }
-
- public void setState(State state) {
- this.state = state;
- }
-
- public BlogView getBlogView() {
- return blogView;
- }
-
- public void setBlogView(BlogView blogView) {
- this.blogView = blogView;
- }
-
- public List getBlogs() {
- if (blogs == null) {
- List blogNames = BlogTools.getBlogService().getStoreService().retrieveAllCategories(
- blogView.getBlogName());
- blogs = new ArrayList();
-
- // Constructing a set of category names to which the post currently belongs.
- Set currentCategories;
- if (blogView.getSelectedPostTitleAsId() == null) {
- currentCategories = new HashSet();
- currentCategories.add(blogView.getBlogName().getCategory());
- } else {
- currentCategories = blogView.getSelectedPost().getCategories();
- }
-
- for (Iterator iter=blogNames.iterator(); iter.hasNext();) {
- blogs.add(new SelectableBlogName((BlogName) iter.next(), currentCategories));
- }
- }
-
- return blogs;
- }
-
- //
-
- private void init() {
- if (blogView.getSelectedPostTitleAsId() != null) {
- BlogPost post = blogView.getSelectedPost();
-
- title = post.getTitle();
- description = post.getDescription();
- link = post.getLink();
- guid = post.getGuid();
- commentLink = post.getCommentLink();
- }
-
- initDone = true;
- }
-
- // Actions
-
- private Set getCurrentCategories() {
- Set currentCategories = new HashSet();
- if (blogView.getSelectedPostTitleAsId() == null) {
- currentCategories.add(blogView.getBlogName());
- } else {
- String id = blogView.getBlogName().getId();
- for (Iterator iter = blogView.getSelectedPost().getCategories().iterator();
- iter.hasNext();) {
- currentCategories.add(new BlogName(id, (String) iter.next()));
- }
- }
-
- return currentCategories;
- }
-
- private Set getSelectedCategories() {
- List blogs = getBlogs();
- Set selected = new HashSet();
- for (Iterator iter = blogs.iterator(); iter.hasNext();) {
- SelectableBlogName sbn = (SelectableBlogName) iter.next();
- if (sbn.isSelected()) {
- selected.add(sbn.getBlogName());
- }
- }
-
- return selected;
- }
-
- public String saveNew() {
- Set selectedCategories = getSelectedCategories();
- if (selectedCategories.size() == 0) {
- UITools.addErrorMessage("You must select at least one category.");
- return null;
- }
-
- try {
- ModifiableBlogPost post;
-
- post = BlogTools.getBlogService().getStoreService().newBlogPost();
-
- post.setAuthor(BlogTools.getBlogService().getStoreService().
- newBlogAuthor(getBlogView().getRequest()));
-
- post.setTitle(title);
- post.setLink(link);
- post.setDescription(description);
- post.setGuid(guid);
- post.setCreated(new Date());
- post.setCommentLink(commentLink);
-
- // Adding the post to all selected categories.
- // TODO permissions for category-level? Both here, save() and post_mod.xhtml
- for (Iterator iter = selectedCategories.iterator(); iter.hasNext();) {
- ModifiableBlogModel blog = BlogTools.getBlogService().getStoreService().retrieveBlogModel(
- (BlogName) iter.next());
- blog.addPost(post);
- }
-
- UITools.addInfoMessage("New post saved.");
- } catch (BlogModelDoesNotExistException e) {
- UITools.addMessageBlogDoesntExist(blogView.getBlogName());
- }
-
- return UITools.BLOG_VIEW;
- }
-
- public String save() {
- // Calculating the added & removed categories sets.
- Set selectedCategories = getSelectedCategories();
- if (selectedCategories.size() == 0) {
- return UITools.POST_DEL;
- }
-
- Set currentCategories = getCurrentCategories();
-
- Set addedCategories = new HashSet(selectedCategories);
- addedCategories.removeAll(currentCategories);
-
- Set removedCategories = new HashSet(currentCategories);
- removedCategories.removeAll(selectedCategories);
-
- try {
- ModifiableBlogModel model;
- ModifiableBlogPost post = blogView.getModifiableSelectedPost();
-
- boolean changed = false;
-
- // Changing post properties.
- if (!BlogTools.objectsEqual(title, post.getTitle())) {
- changed = true; post.setTitle(title); }
-
- if (!BlogTools.objectsEqual(link, post.getLink())) {
- changed = true; post.setLink(link); }
-
- if (!BlogTools.objectsEqual(description, post.getDescription())) {
- changed = true; post.setDescription(description); }
-
- if (!BlogTools.objectsEqual(guid, post.getGuid())) {
- changed = true; post.setGuid(guid); }
-
- if (!BlogTools.objectsEqual(commentLink, post.getCommentLink())) {
- changed = true; post.setCommentLink(commentLink); }
-
- // Adding & removing posts from categories.
- for (Iterator iter = addedCategories.iterator(); iter.hasNext();) {
- changed = true;
- model = BlogTools.getBlogService().getStoreService().retrieveBlogModel(
- (BlogName) iter.next());
- model.addPost(post);
- }
-
- for (Iterator iter = removedCategories.iterator(); iter.hasNext();) {
- changed = true;
- model = BlogTools.getBlogService().getStoreService().retrieveBlogModel(
- (BlogName) iter.next());
- model.removePost(post);
- }
-
- if (changed) {
- UITools.addInfoMessage("Post data saved.");
- } else {
- UITools.addInfoMessage("No post data was modified.");
- }
- } catch (BlogModelDoesNotExistException e) {
- UITools.addMessageBlogDoesntExist(blogView.getBlogName());
- } catch (BlogPostDoesNotExistException e) {
- UITools.addMessagePostDoesntExist(blogView.getSelectedPostTitleAsId());
- }
-
- return blogView.getReturnTo();
- }
-
- public String delete() {
- try {
- ModifiableBlogModel model = BlogTools.getBlogService().getStoreService().retrieveBlogModel(
- blogView.getBlogName());
- ModifiableBlogPost post = model.getModifiableBlogPostByTitleAsId(
- blogView.getSelectedPostTitleAsId());
-
- BlogTools.getBlogService().getStoreService().deletePost(post);
-
- UITools.addInfoMessage("Post deleted.");
- } catch (BlogModelDoesNotExistException e) {
- UITools.addMessageBlogDoesntExist(blogView.getBlogName());
- } catch (BlogPostDoesNotExistException e) {
- UITools.addMessagePostDoesntExist(blogView.getSelectedPostTitleAsId());
- }
-
- return UITools.BLOG_VIEW;
-
- }
-
- public String back() {
- return blogView.getReturnTo();
- }
+package org.jboss.blog.ui;
+
+import org.jboss.blog.model.BlogModelDoesNotExistException;
+import org.jboss.blog.model.BlogPost;
+import org.jboss.blog.model.BlogPostDoesNotExistException;
+import org.jboss.blog.tools.BlogTools;
+import org.jboss.blog.tools.UITools;
+import org.jboss.blog.service.store.model.ModifiableBlogModel;
+import org.jboss.blog.service.store.model.ModifiableBlogPost;
+import org.jboss.blog.BlogName;
+import org.jboss.blog.model.BlogModel;
+
+import java.util.*;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class PostEdit {
+ private State state;
+ private BlogView blogView;
+
+ private boolean initDone;
+
+ private String title;
+ private String description;
+ private String link;
+ private String guid;
+ private String commentLink;
+
+ private List blogs;
+
+ public PostEdit() {
+ initDone = false;
+ }
+
+ public String getTitle() {
+ if (!initDone) { init(); }
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getDescription() {
+ if (!initDone) { init(); }
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getLink() {
+ if (!initDone) { init(); }
+ return link;
+ }
+
+ public void setLink(String link) {
+ this.link = link;
+ }
+
+ public String getGuid() {
+ if (!initDone) { init(); }
+ return guid;
+ }
+
+ public String getCommentLink() {
+ if (!initDone) { init(); }
+ return commentLink;
+ }
+
+ public void setCommentLink(String commentLink) {
+ this.commentLink = commentLink;
+ }
+
+ public void setGuid(String guid) {
+ this.guid = guid;
+ }
+
+ public State getState() {
+ return state;
+ }
+
+ public void setState(State state) {
+ this.state = state;
+ }
+
+ public BlogView getBlogView() {
+ return blogView;
+ }
+
+ public void setBlogView(BlogView blogView) {
+ this.blogView = blogView;
+ }
+
+ public List getBlogs() {
+ if (blogs == null) {
+ List blogNames = BlogTools.getBlogService().getStoreService().retrieveAllCategories(
+ blogView.getBlogName());
+ blogs = new ArrayList();
+
+ // Constructing a set of category names to which the post currently belongs.
+ List currentCategories;
+ if (blogView.getSelectedPostTitleAsId() == null) {
+ currentCategories = new ArrayList();
+ try{
+ BlogModel bm = BlogTools.getBlogService().getStoreService().retrieveBlogModel(blogView.getBlogName());
+ currentCategories = bm.getCategories();
+ }catch(BlogModelDoesNotExistException e){
+ UITools.addMessageBlogDoesntExist(blogView.getBlogName());
+ }
+ } else {
+ currentCategories = blogView.getSelectedPost().getCategories();
+ }
+
+ for (Iterator iter=blogNames.iterator(); iter.hasNext();) {
+ blogs.add(new SelectableBlogName((BlogName) iter.next(), currentCategories));
+ }
+ }
+
+ return blogs;
+ }
+
+
+
+ private void init() {
+ if (blogView.getSelectedPostTitleAsId() != null) {
+ BlogPost post = blogView.getSelectedPost();
+
+ title = post.getTitle();
+ description = post.getDescription();
+ link = post.getLink();
+ guid = post.getGuid();
+ commentLink = post.getCommentLink();
+ }
+
+ initDone = true;
+ }
+
+ // Actions
+
+ private Set getCurrentCategories() {
+ Set currentCategories = new HashSet();
+ if (blogView.getSelectedPostTitleAsId() == null) {
+ currentCategories.add(blogView.getBlogName());
+ } else {
+ String id = blogView.getBlogName().getId();
+ for (Iterator iter = blogView.getSelectedPost().getCategories().iterator();
+ iter.hasNext();) {
+ currentCategories.add(new BlogName(id, (String) iter.next()));
+ }
+ }
+
+ return currentCategories;
+ }
+
+ private Set getSelectedCategories() {
+ List blogs = getBlogs();
+ Set selected = new HashSet();
+ for (Iterator iter = blogs.iterator(); iter.hasNext();) {
+ SelectableBlogName sbn = (SelectableBlogName) iter.next();
+ if (sbn.isSelected()) {
+ selected.add(sbn.getBlogName());
+ }
+ }
+
+ return selected;
+ }
+
+ public String saveNew() {
+ Set selectedCategories = getSelectedCategories();
+ if (selectedCategories.size() == 0) {
+ UITools.addErrorMessage("You must select at least one category.");
+ return null;
+ }
+
+ try {
+ ModifiableBlogPost post;
+
+ post = BlogTools.getBlogService().getStoreService().newBlogPost();
+
+ post.setAuthor(BlogTools.getBlogService().getStoreService().
+ newBlogAuthor(getBlogView().getRequest()));
+
+ post.setTitle(title);
+ post.setLink(link);
+ post.setDescription(description);
+ post.setGuid(guid);
+ post.setCreated(new Date());
+ post.setCommentLink(commentLink);
+
+ // Adding the post to all selected categories.
+ // TODO permissions for category-level? Both here, save() and post_mod.xhtml
+ for (Iterator iter = selectedCategories.iterator(); iter.hasNext();) {
+ ModifiableBlogModel blog = BlogTools.getBlogService().getStoreService().retrieveBlogModel(
+ (BlogName) iter.next());
+ blog.addPost(post);
+ }
+
+ UITools.addInfoMessage("New post saved.");
+ } catch (BlogModelDoesNotExistException e) {
+ UITools.addMessageBlogDoesntExist(blogView.getBlogName());
+ }
+
+ return UITools.BLOG_VIEW;
+ }
+
+ public String save() {
+ // Calculating the added & removed categories sets.
+ Set selectedCategories = getSelectedCategories();
+ if (selectedCategories.size() == 0) {
+ return UITools.POST_DEL;
+ }
+
+ Set currentCategories = getCurrentCategories();
+
+ Set addedCategories = new HashSet(selectedCategories);
+ addedCategories.removeAll(currentCategories);
+
+ Set removedCategories = new HashSet(currentCategories);
+ removedCategories.removeAll(selectedCategories);
+
+ try {
+ ModifiableBlogModel model;
+ ModifiableBlogPost post = blogView.getModifiableSelectedPost();
+
+ boolean changed = false;
+
+ // Changing post properties.
+ if (!BlogTools.objectsEqual(title, post.getTitle())) {
+ changed = true; post.setTitle(title); }
+
+ if (!BlogTools.objectsEqual(link, post.getLink())) {
+ changed = true; post.setLink(link); }
+
+ if (!BlogTools.objectsEqual(description, post.getDescription())) {
+ changed = true; post.setDescription(description); }
+
+ if (!BlogTools.objectsEqual(guid, post.getGuid())) {
+ changed = true; post.setGuid(guid); }
+
+ if (!BlogTools.objectsEqual(commentLink, post.getCommentLink())) {
+ changed = true; post.setCommentLink(commentLink); }
+
+ // Adding & removing posts from categories.
+ for (Iterator iter = addedCategories.iterator(); iter.hasNext();) {
+ changed = true;
+ model = BlogTools.getBlogService().getStoreService().retrieveBlogModel(
+ (BlogName) iter.next());
+ model.addPost(post);
+ }
+
+ for (Iterator iter = removedCategories.iterator(); iter.hasNext();) {
+ changed = true;
+ model = BlogTools.getBlogService().getStoreService().retrieveBlogModel(
+ (BlogName) iter.next());
+ model.removePost(post);
+ }
+
+ if (changed) {
+ UITools.addInfoMessage("Post data saved.");
+ } else {
+ UITools.addInfoMessage("No post data was modified.");
+ }
+ } catch (BlogModelDoesNotExistException e) {
+ UITools.addMessageBlogDoesntExist(blogView.getBlogName());
+ } catch (BlogPostDoesNotExistException e) {
+ UITools.addMessagePostDoesntExist(blogView.getSelectedPostTitleAsId());
+ }
+
+ return blogView.getReturnTo();
+ }
+
+ public String delete() {
+ try {
+ ModifiableBlogModel model = BlogTools.getBlogService().getStoreService().retrieveBlogModel(
+ blogView.getBlogName());
+ ModifiableBlogPost post = model.getModifiableBlogPostByTitleAsId(
+ blogView.getSelectedPostTitleAsId());
+
+ BlogTools.getBlogService().getStoreService().deletePost(post);
+
+ UITools.addInfoMessage("Post deleted.");
+ } catch (BlogModelDoesNotExistException e) {
+ UITools.addMessageBlogDoesntExist(blogView.getBlogName());
+ } catch (BlogPostDoesNotExistException e) {
+ UITools.addMessagePostDoesntExist(blogView.getSelectedPostTitleAsId());
+ }
+
+ return UITools.BLOG_VIEW;
+
+ }
+
+ public String back() {
+ return blogView.getReturnTo();
+ }
}
\ No newline at end of file
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/ui/SelectableBlogName.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/ui/SelectableBlogName.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/ui/SelectableBlogName.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,35 +1,35 @@
-package org.jboss.blog.ui;
-
-import org.jboss.blog.BlogName;
-
-import java.util.Set;
-
-/**
- *
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public class SelectableBlogName {
- private BlogName blogName;
- private boolean selected;
-
- public SelectableBlogName(BlogName blogName, Set currentCategories) {
- this.blogName = blogName;
- this.selected = currentCategories.contains(blogName.getCategory());
- }
-
- public String getCategory() {
- return blogName.getCategory();
- }
-
- public boolean isSelected() {
- return selected;
- }
-
- public void setSelected(boolean selected) {
- this.selected = selected;
- }
-
- public BlogName getBlogName() {
- return blogName;
- }
-}
+package org.jboss.blog.ui;
+
+import org.jboss.blog.BlogName;
+
+import java.util.List;
+
+/**
+ *
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class SelectableBlogName {
+ private BlogName blogName;
+ private boolean selected;
+
+ public SelectableBlogName(BlogName blogName, List currentCategories) {
+ this.blogName = blogName;
+ this.selected = currentCategories.contains(blogName.getGroup());
+ }
+
+ public String getGroup() {
+ return blogName.getGroup();
+ }
+
+ public boolean isSelected() {
+ return selected;
+ }
+
+ public void setSelected(boolean selected) {
+ this.selected = selected;
+ }
+
+ public BlogName getBlogName() {
+ return blogName;
+ }
+}
Modified: trunk-esial/blog-core/src/java/org/jboss/blog/ui/State.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/ui/State.java 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/ui/State.java 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,73 +1,97 @@
-package org.jboss.blog.ui;
-
-import org.jboss.blog.BlogName;
-
-import java.util.Map;
-import java.util.HashMap;
-
-/**
- * A session-scoped bean that remembers the current view state for each blog
- * that has been viewed, plus administration parameters.
- * @author Adam Warski (adamw at aster.pl)
- */
-public class State {
- // Map BlogName --> BlogViewState.
- private Map blogViewStates;
-
- private String selectedBlogId;
- private BlogName selectedBlogName;
-
- private String returnTo;
-
- public State() {
- blogViewStates = new HashMap();
- }
-
- public BlogViewState getBlogViewState(BlogName blogName) {
- BlogViewState ret = (BlogViewState) blogViewStates.get(blogName);
- if (ret == null) {
- ret = new BlogViewState();
- blogViewStates.put(blogName, ret);
- }
-
- return ret;
- }
-
- /**
- * Gets the id of the selected blog.
- * @return Id of the blog selected for editing.
- */
- public String getSelectedBlogId() {
- return selectedBlogId;
- }
-
- public void setSelectedBlogId(String selectedBlogId) {
- this.selectedBlogId = selectedBlogId;
- }
-
- /**
- * Gets the name of the selected blog.
- * @return Name of the blog selected for viewing/ editing.
- */
- public BlogName getSelectedBlogName() {
- return selectedBlogName;
- }
-
- public void setSelectedBlogName(BlogName selectedBlogName) {
- this.selectedBlogName = selectedBlogName;
- }
-
- /**
- * Gets the return to value.
- * @return A string naming a view, to which the user should be directed
- * after completing operations in the current view. Only relevant when
- * the new view name depends on the originating view.
- */
- public String getReturnTo() {
- return returnTo;
- }
-
- public void setReturnTo(String returnTo) {
- this.returnTo = returnTo;
- }
-}
+package org.jboss.blog.ui;
+
+import org.jboss.blog.BlogName;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * A session-scoped bean that remembers the current view state for each blog
+ * that has been viewed, plus administration parameters.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class State {
+ // Map BlogName --> BlogViewState.
+ private Map blogViewStates;
+
+ private String selectedBlogId;
+ private BlogName selectedBlogName;
+ private String selectedCategory;
+ private Integer selectedCategoryId;
+
+ private String returnTo;
+
+ public State() {
+ blogViewStates = new HashMap();
+ }
+
+ public BlogViewState getBlogViewState(BlogName blogName) {
+ BlogViewState ret = (BlogViewState) blogViewStates.get(blogName);
+ if (ret == null) {
+ ret = new BlogViewState();
+ blogViewStates.put(blogName, ret);
+ }
+
+ return ret;
+ }
+
+ /**
+ * Gets the id of the selected blog.
+ * @return Id of the blog selected for editing.
+ */
+ public String getSelectedBlogId() {
+ return selectedBlogId;
+ }
+
+ public void setSelectedBlogId(String selectedBlogId) {
+ this.selectedBlogId = selectedBlogId;
+ }
+
+ /**
+ * @return name of the category selected for editing.
+ */
+ public String getSelectedCategory() {
+ return selectedCategory;
+ }
+
+ public void setSelectedCategory(String selectedCategory) {
+ this.selectedCategory = selectedCategory;
+ }
+
+ /**
+ * @return id of the category selected for editing.
+ */
+ public Integer getSelectedCategoryId() {
+ return selectedCategoryId;
+ }
+
+ public void setSelectedCategoryId(Integer selectedCategoryId) {
+ this.selectedCategoryId = selectedCategoryId;
+ }
+
+ /**
+ * Gets the name of the selected blog.
+ * @return Name of the blog selected for viewing/ editing.
+ */
+ public BlogName getSelectedBlogName() {
+ return selectedBlogName;
+ }
+
+ public void setSelectedBlogName(BlogName selectedBlogName) {
+ this.selectedBlogName = selectedBlogName;
+ }
+
+ /**
+ * Gets the return to value.
+ * @return A string naming a view, to which the user should be directed
+ * after completing operations in the current view. Only relevant when
+ * the new view name depends on the originating view.
+ */
+ public String getReturnTo() {
+ return returnTo;
+ }
+
+ public void setReturnTo(String returnTo) {
+ this.returnTo = returnTo;
+ }
+}
Modified: trunk-esial/blog-core/src/web/WEB-INF/faces-config.xml
===================================================================
--- trunk-esial/blog-core/src/web/WEB-INF/faces-config.xml 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/web/WEB-INF/faces-config.xml 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,244 +1,292 @@
-<?xml version='1.0' encoding='UTF-8'?>
-
-<!DOCTYPE faces-config PUBLIC
- "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
- "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
-
-<faces-config>
- <application>
- <!-- JBoss Portal-facelets integration -->
- <property-resolver>org.jboss.portal.faces.el.DelegatingPropertyResolver</property-resolver>
-
- <!--<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>-->
- <view-handler>com.sun.facelets.FaceletPortletViewHandler</view-handler>
- <locale-config>
- <default-locale>en</default-locale>
- </locale-config>
- <action-listener>org.jboss.blog.service.permissions.acl.AuthorizationListener</action-listener>
- </application>
-
- <managed-bean>
- <managed-bean-name>blogView</managed-bean-name>
- <managed-bean-class>org.jboss.blog.ui.BlogView</managed-bean-class>
- <managed-bean-scope>request</managed-bean-scope>
- <managed-property>
- <property-name>state</property-name>
- <value>#{state}</value>
- </managed-property>
- </managed-bean>
-
- <managed-bean>
- <managed-bean-name>blogEdit</managed-bean-name>
- <managed-bean-class>org.jboss.blog.ui.BlogEdit</managed-bean-class>
- <managed-bean-scope>request</managed-bean-scope>
- <managed-property>
- <property-name>state</property-name>
- <value>#{state}</value>
- </managed-property>
- <managed-property>
- <property-name>blogView</property-name>
- <value>#{blogView}</value>
- </managed-property>
- </managed-bean>
-
- <managed-bean>
- <managed-bean-name>postEdit</managed-bean-name>
- <managed-bean-class>org.jboss.blog.ui.PostEdit</managed-bean-class>
- <managed-bean-scope>request</managed-bean-scope>
- <managed-property>
- <property-name>state</property-name>
- <value>#{state}</value>
- </managed-property>
- <managed-property>
- <property-name>blogView</property-name>
- <value>#{blogView}</value>
- </managed-property>
- </managed-bean>
-
- <managed-bean>
- <managed-bean-name>idEdit</managed-bean-name>
- <managed-bean-class>org.jboss.blog.ui.IdEdit</managed-bean-class>
- <managed-bean-scope>request</managed-bean-scope>
- <managed-property>
- <property-name>state</property-name>
- <value>#{state}</value>
- </managed-property>
- </managed-bean>
-
- <managed-bean>
- <managed-bean-name>commentEdit</managed-bean-name>
- <managed-bean-class>org.jboss.blog.ui.CommentEdit</managed-bean-class>
- <managed-bean-scope>request</managed-bean-scope>
- <managed-property>
- <property-name>blogView</property-name>
- <value>#{blogView}</value>
- </managed-property>
- </managed-bean>
-
- <managed-bean>
- <managed-bean-name>state</managed-bean-name>
- <managed-bean-class>org.jboss.blog.ui.State</managed-bean-class>
- <managed-bean-scope>session</managed-bean-scope>
+<?xml version='1.0' encoding='UTF-8'?>
+
+<!DOCTYPE faces-config PUBLIC
+ "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
+ "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
+
+<faces-config>
+ <application>
+ <!-- JBoss Portal-facelets integration -->
+ <property-resolver>org.jboss.portal.faces.el.DelegatingPropertyResolver</property-resolver>
+
+ <!--<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>-->
+ <view-handler>com.sun.facelets.FaceletPortletViewHandler</view-handler>
+ <locale-config>
+ <default-locale>en</default-locale>
+ </locale-config>
+ <action-listener>org.jboss.blog.service.permissions.acl.AuthorizationListener</action-listener>
+ </application>
+
+ <managed-bean>
+ <managed-bean-name>blogView</managed-bean-name>
+ <managed-bean-class>org.jboss.blog.ui.BlogView</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ <managed-property>
+ <property-name>state</property-name>
+ <value>#{state}</value>
+ </managed-property>
</managed-bean>
-
- <managed-bean>
- <managed-bean-name>templ</managed-bean-name>
- <managed-bean-class>org.jboss.blog.ui.templateManager</managed-bean-class>
- <managed-bean-scope>request</managed-bean-scope>
- <managed-property>
- <property-name>blogView</property-name>
- <value>#{blogView}</value>
- </managed-property>
- </managed-bean>
-
- <!-- Post/ blog view -->
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>blog_view</from-outcome>
- <to-view-id>/views/index.xhtml</to-view-id>
- </navigation-case>
- </navigation-rule>
-
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>template</from-outcome>
- <to-view-id>/tpl/test2.ftl</to-view-id>
- </navigation-case>
- </navigation-rule>
-
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>post_view</from-outcome>
- <to-view-id>/views/post_view.xhtml</to-view-id>
- </navigation-case>
+
+ <managed-bean>
+ <managed-bean-name>blogEdit</managed-bean-name>
+ <managed-bean-class>org.jboss.blog.ui.BlogEdit</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ <managed-property>
+ <property-name>state</property-name>
+ <value>#{state}</value>
+ </managed-property>
+ <managed-property>
+ <property-name>blogView</property-name>
+ <value>#{blogView}</value>
+ </managed-property>
+ </managed-bean>
+
+ <managed-bean>
+ <managed-bean-name>postEdit</managed-bean-name>
+ <managed-bean-class>org.jboss.blog.ui.PostEdit</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ <managed-property>
+ <property-name>state</property-name>
+ <value>#{state}</value>
+ </managed-property>
+ <managed-property>
+ <property-name>blogView</property-name>
+ <value>#{blogView}</value>
+ </managed-property>
+ </managed-bean>
+
+ <managed-bean>
+ <managed-bean-name>categoryEdit</managed-bean-name>
+ <managed-bean-class>org.jboss.blog.ui.CategoryEdit</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ <managed-property>
+ <property-name>state</property-name>
+ <value>#{state}</value>
+ </managed-property>
+ <managed-property>
+ <property-name>blogView</property-name>
+ <value>#{blogView}</value>
+ </managed-property>
+ </managed-bean>
+
+ <managed-bean>
+ <managed-bean-name>idEdit</managed-bean-name>
+ <managed-bean-class>org.jboss.blog.ui.IdEdit</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ <managed-property>
+ <property-name>state</property-name>
+ <value>#{state}</value>
+ </managed-property>
+ <managed-property>
+ <property-name>blogView</property-name>
+ <value>#{blogView}</value>
+ </managed-property>
+ </managed-bean>
+
+ <managed-bean>
+ <managed-bean-name>commentEdit</managed-bean-name>
+ <managed-bean-class>org.jboss.blog.ui.CommentEdit</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ <managed-property>
+ <property-name>blogView</property-name>
+ <value>#{blogView}</value>
+ </managed-property>
+ </managed-bean>
+
+ <managed-bean>
+ <managed-bean-name>state</managed-bean-name>
+ <managed-bean-class>org.jboss.blog.ui.State</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+
+ <managed-bean>
+ <managed-bean-name>reco</managed-bean-name>
+ <managed-bean-class>org.jboss.blog.recommendBlog</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+
+ <managed-bean>
+ <managed-bean-name>templ</managed-bean-name>
+ <managed-bean-class>org.jboss.blog.ui.templateManager</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ <managed-property>
+ <property-name>blogView</property-name>
+ <value>#{blogView}</value>
+ </managed-property>
+ </managed-bean>
+
+ <!-- Post/ blog view -->
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>blog_view</from-outcome>
+ <to-view-id>/views/index.xhtml</to-view-id>
+ </navigation-case>
</navigation-rule>
-
+
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
+ <from-outcome>template</from-outcome>
+ <to-view-id>/tpl/test2.ftl</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>post_view</from-outcome>
+ <to-view-id>/views/post_view.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>recommend</from-outcome>
+ <to-view-id>/views/recommend.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
<from-outcome>default</from-outcome>
<to-view-id>/views/index.xhtml</to-view-id>
</navigation-case>
- </navigation-rule>
-
- <!-- Post edit/new/del -->
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>post_edit</from-outcome>
- <to-view-id>/views/post_edit.xhtml</to-view-id>
- </navigation-case>
- </navigation-rule>
-
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>post_new</from-outcome>
- <to-view-id>/views/post_new.xhtml</to-view-id>
- </navigation-case>
- </navigation-rule>
-
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>post_del</from-outcome>
- <to-view-id>/views/post_del.xhtml</to-view-id>
- </navigation-case>
- </navigation-rule>
-
- <!-- Comment del -->
-
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>comment_del</from-outcome>
- <to-view-id>/views/comment_del.xhtml</to-view-id>
- </navigation-case>
- </navigation-rule>
-
- <!-- Admin -->
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>admin_panel</from-outcome>
- <to-view-id>/views/admin_panel.xhtml</to-view-id>
- </navigation-case>
- </navigation-rule>
-
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>id_edit</from-outcome>
- <to-view-id>/views/id_edit.xhtml</to-view-id>
- </navigation-case>
- </navigation-rule>
-
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>admin_panel</from-outcome>
- <to-view-id>/views/admin_panel.xhtml</to-view-id>
- </navigation-case>
- </navigation-rule>
-
- <!-- Blog edit/new/del -->
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>blog_edit</from-outcome>
- <to-view-id>/views/blog_edit.xhtml</to-view-id>
- </navigation-case>
- </navigation-rule>
-
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>blog_new</from-outcome>
- <to-view-id>/views/blog_new.xhtml</to-view-id>
- </navigation-case>
- </navigation-rule>
-
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>blog_del</from-outcome>
- <to-view-id>/views/blog_del.xhtml</to-view-id>
- </navigation-case>
- </navigation-rule>
-
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>id_edit</from-outcome>
- <to-view-id>/views/id_edit.xhtml</to-view-id>
- </navigation-case>
- </navigation-rule>
-
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>admin_panel</from-outcome>
- <to-view-id>/views/admin_panel.xhtml</to-view-id>
- </navigation-case>
- </navigation-rule>
-
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>saveOK</from-outcome>
- <to-view-id>/views/blog_view.xhtml</to-view-id>
- </navigation-case>
- </navigation-rule>
-
- <navigation-rule>
- <from-view-id>*</from-view-id>
- <navigation-case>
- <from-outcome>toTemplatePostsList</from-outcome>
- <to-view-id>/views/template_posts_list.xhtml</to-view-id>
- </navigation-case>
- </navigation-rule>
-
-</faces-config>
+ </navigation-rule>
+
+ <!-- Post edit/new/del -->
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>post_edit</from-outcome>
+ <to-view-id>/views/post_edit.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>post_new</from-outcome>
+ <to-view-id>/views/post_new.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>blog_manage</from-outcome>
+ <to-view-id>/views/blog_man.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>cat_manage</from-outcome>
+ <to-view-id>/views/cat_man.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>cat_new</from-outcome>
+ <to-view-id>/views/cat_new.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>post_del</from-outcome>
+ <to-view-id>/views/post_del.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <!-- Comment del -->
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>comment_del</from-outcome>
+ <to-view-id>/views/comment_del.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <!-- Admin -->
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>admin_panel</from-outcome>
+ <to-view-id>/views/admin_panel.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>id_edit</from-outcome>
+ <to-view-id>/views/id_edit.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <!-- Blog edit/new/del -->
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>blog_edit</from-outcome>
+ <to-view-id>/views/blog_edit.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>blog_new</from-outcome>
+ <to-view-id>/views/blog_new.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>blog_del</from-outcome>
+ <to-view-id>/views/blog_del.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>id_edit</from-outcome>
+ <to-view-id>/views/id_edit.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>admin_panel</from-outcome>
+ <to-view-id>/views/admin_panel.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>saveOK</from-outcome>
+ <to-view-id>/views/blog_view.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>toTemplatePostsList</from-outcome>
+ <to-view-id>/views/template_posts_list.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+</faces-config>
Modified: trunk-esial/blog-core/src/web/views/admin_panel.xhtml
===================================================================
--- trunk-esial/blog-core/src/web/views/admin_panel.xhtml 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/web/views/admin_panel.xhtml 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,50 +1,50 @@
-<div xmlns="http://www.w3.org/1999/xhtml"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:c="http://java.sun.com/jstl/core"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:blog="http://www.jboss.org/portal/jbossblog">
- <ui:composition template="common.xhtml">
- <ui:param name="requiredPermission" value="acl://accessAdminModule" />
- <ui:define name="content">
- <h2>Blog Administration</h2>
-
- <h:messages />
-
- <h:form>
- <h:panelGrid columns="3">
- <blog:isAllowed fragment="acl://manageBlog">
- <h:panelGroup>
- Create and edit a new blog id
- </h:panelGroup>
- <h:panelGroup>
- <h:inputText value="#{idEdit.newId}"
- maxlength="64" size="32" />
- </h:panelGroup>
- <h:panelGroup>
- <h:commandLink action="#{idEdit.editNew}" value="Go >>"/>
- </h:panelGroup>
- </blog:isAllowed>
-
- <h:panelGroup>
- Edit an existing blog id
- </h:panelGroup>
- <h:panelGroup>
- <h:selectOneMenu value="#{idEdit.existingId}">
- <f:selectItems value="#{idEdit.ids}" />
- </h:selectOneMenu>
- </h:panelGroup>
- <h:panelGroup>
- <h:commandLink action="#{idEdit.editExisting}" value="Go >>"/>
- </h:panelGroup>
-
- <h:panelGroup>
- <h:commandLink value="<< Back" action="blog_view" immediate="true"/>
- </h:panelGroup>
- <h:panelGroup></h:panelGroup>
- <h:panelGroup></h:panelGroup>
- </h:panelGrid>
- </h:form>
- </ui:define>
- </ui:composition>
+<div xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:c="http://java.sun.com/jstl/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:blog="http://www.jboss.org/portal/jbossblog">
+ <ui:composition template="common.xhtml">
+ <ui:param name="requiredPermission" value="acl://accessAdminModule" />
+ <ui:define name="content">
+ <h2>Blog Administration</h2>
+
+ <h:messages />
+
+ <h:form>
+ <h:panelGrid columns="3">
+ <blog:isAllowed fragment="acl://manageBlog">
+ <h:panelGroup>
+ Create and edit a new blog id
+ </h:panelGroup>
+ <h:panelGroup>
+ <h:inputText value="#{idEdit.newId}"
+ maxlength="64" size="32" />
+ </h:panelGroup>
+ <h:panelGroup>
+ <h:commandLink action="#{idEdit.editNew}" value="Go >>"/>
+ </h:panelGroup>
+ </blog:isAllowed>
+
+ <h:panelGroup>
+ Edit an existing blog id
+ </h:panelGroup>
+ <h:panelGroup>
+ <h:selectOneMenu value="#{idEdit.existingId}">
+ <f:selectItems value="#{idEdit.ids}" />
+ </h:selectOneMenu>
+ </h:panelGroup>
+ <h:panelGroup>
+ <h:commandLink action="#{idEdit.editExisting}" value="Go >>"/>
+ </h:panelGroup>
+
+ <h:panelGroup>
+ <h:commandLink value="<< Back" action="blog_view" immediate="true"/>
+ </h:panelGroup>
+ <h:panelGroup></h:panelGroup>
+ <h:panelGroup></h:panelGroup>
+ </h:panelGrid>
+ </h:form>
+ </ui:define>
+ </ui:composition>
</div>
\ No newline at end of file
Modified: trunk-esial/blog-core/src/web/views/blog_del.xhtml
===================================================================
--- trunk-esial/blog-core/src/web/views/blog_del.xhtml 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/web/views/blog_del.xhtml 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,26 +1,26 @@
-<div xmlns="http://www.w3.org/1999/xhtml"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:c="http://java.sun.com/jstl/core"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:blog="http://www.jboss.org/portal/jbossblog">
- <ui:composition template="del_confirm.xhtml">
- <ui:param name="requiredPermission" value="acl://manageBlog" />
-
- <ui:define name="delname">
- blog category
- </ui:define>
-
- <ui:define name="delsubject">
- #{state.selectedBlogName}
- </ui:define>
-
- <ui:define name="cancellink">
- <h:commandLink value="No" action="#{blogEdit.backFromDelete}" />
- </ui:define>
-
- <ui:define name="deletelink">
- <h:commandLink value="Yes" action="#{blogEdit.delete}" />
- </ui:define>
- </ui:composition>
+<div xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:c="http://java.sun.com/jstl/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:blog="http://www.jboss.org/portal/jbossblog">
+ <ui:composition template="del_confirm.xhtml">
+ <ui:param name="requiredPermission" value="acl://manageBlog" />
+
+ <ui:define name="delname">
+ blog category
+ </ui:define>
+
+ <ui:define name="delsubject">
+ #{state.selectedBlogName}
+ </ui:define>
+
+ <ui:define name="cancellink">
+ <h:commandLink value="No" action="#{blogEdit.backFromDelete}" />
+ </ui:define>
+
+ <ui:define name="deletelink">
+ <h:commandLink value="Yes" action="#{blogEdit.delete}" />
+ </ui:define>
+ </ui:composition>
</div>
\ No newline at end of file
Modified: trunk-esial/blog-core/src/web/views/blog_edit.xhtml
===================================================================
--- trunk-esial/blog-core/src/web/views/blog_edit.xhtml 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/web/views/blog_edit.xhtml 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,22 +1,22 @@
-<div xmlns="http://www.w3.org/1999/xhtml"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:c="http://java.sun.com/jstl/core"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:blog="http://www.jboss.org/portal/jbossblog">
- <ui:composition template="blog_mod.xhtml">
- <ui:param name="requiredPermission" value="acl://manageCategory" />
-
- <ui:define name="editheader">
- Edit blog category
- </ui:define>
-
- <ui:define name="edittableheader">
- Change blog category data:
- </ui:define>
-
- <ui:define name="savelink">
- <h:commandLink value="Save" action="#{blogEdit.save}" />
- </ui:define>
- </ui:composition>
+<div xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:c="http://java.sun.com/jstl/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:blog="http://www.jboss.org/portal/jbossblog">
+ <ui:composition template="blog_mod.xhtml">
+ <ui:param name="requiredPermission" value="acl://manageCategory" />
+
+ <ui:define name="editheader">
+ Edit blog category
+ </ui:define>
+
+ <ui:define name="edittableheader">
+ Change blog category data:
+ </ui:define>
+
+ <ui:define name="savelink">
+ <h:commandLink value="Save" action="#{blogEdit.save}" />
+ </ui:define>
+ </ui:composition>
</div>
\ No newline at end of file
Added: trunk-esial/blog-core/src/web/views/blog_man.xhtml
===================================================================
--- trunk-esial/blog-core/src/web/views/blog_man.xhtml (rev 0)
+++ trunk-esial/blog-core/src/web/views/blog_man.xhtml 2007-03-22 16:37:07 UTC (rev 102)
@@ -0,0 +1,37 @@
+<div xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:c="http://java.sun.com/jstl/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:blog="http://www.jboss.org/portal/jbossblog">
+ <ui:composition template="common.xhtml">
+ <ui:param name="requiredPermission" value="acl://manageBlog" />
+ <ui:define name="content">
+ <h2>Blog Administration</h2>
+
+ <h:messages />
+
+ <h:panelGroup>
+ <h:panelGroup>
+ <blog:isAllowed fragment="acl://manageBlog" contextData="#{blogView.blogName}">
+ <h:form rendered="#{blogView.blogModifiable}">
+ <p class="admin-link"><h:commandLink value="Edit blog's data" action="#{blogView.blogEditFromBlogView}" /></p>
+ </h:form>
+ </blog:isAllowed>
+ </h:panelGroup>
+ <h:panelGroup>
+ <blog:isAllowed fragment="acl://manageCategory" contextData="#{blogView.blogName}">
+ <h:form rendered="#{blogView.blogModifiable}">
+ <p class="admin-link"><h:commandLink value="Manage Categories" action="#{blogView.manageCategory}" /></p>
+ </h:form>
+ </blog:isAllowed>
+ </h:panelGroup>
+ <blog:isAllowed fragment="acl://managePost" contextData="#{blogView.blogName}">
+ <h:form rendered="#{blogView.blogModifiable}">
+ <p class="admin-link"><h:commandLink value="Edit template" action="toTemplatePostsList" /></p>
+ </h:form>
+ </blog:isAllowed>
+ </h:panelGroup>
+ </ui:define>
+ </ui:composition>
+</div>
\ No newline at end of file
Modified: trunk-esial/blog-core/src/web/views/blog_new.xhtml
===================================================================
--- trunk-esial/blog-core/src/web/views/blog_new.xhtml 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/web/views/blog_new.xhtml 2007-03-22 16:37:07 UTC (rev 102)
@@ -8,11 +8,11 @@
<ui:param name="requiredPermission" value="acl://manageBlog" />
<ui:define name="editheader">
- New blog category
+ New blog
</ui:define>
<ui:define name="edittableheader">
- Enter blog category data:
+ Enter blog data:
</ui:define>
<ui:define name="savelink">
Modified: trunk-esial/blog-core/src/web/views/blog_view.xhtml
===================================================================
--- trunk-esial/blog-core/src/web/views/blog_view.xhtml 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/web/views/blog_view.xhtml 2007-03-22 16:37:07 UTC (rev 102)
@@ -17,11 +17,18 @@
</h:form>
</h:panelGroup>
- <h:panelGrid columns="3">
+ <h:panelGrid columns="4">
<h:panelGroup>
+ <blog:isAllowed fragment="acl://manageBlog" contextData="#{blogView.blogName}">
+ <h:form rendered="#{blogView.blogModifiable}">
+ <p class="admin-link"><h:commandLink value="Manage Blog" action="#{blogView.manageBlog}" /></p>
+ </h:form>
+ </blog:isAllowed>
+ </h:panelGroup>
+ <h:panelGroup>
<blog:isAllowed fragment="acl://managePost" contextData="#{blogView.blogName}">
<h:form rendered="#{blogView.blogModifiable}">
- <p class="admin-link"><h:commandLink value="New post" action="#{blogView.postNew}" /></p>
+ <p class="admin-link"><h:commandLink value=" | New post" action="#{blogView.postNew}" /></p>
</h:form>
</blog:isAllowed>
</h:panelGroup>
Added: trunk-esial/blog-core/src/web/views/cat_man.xhtml
===================================================================
--- trunk-esial/blog-core/src/web/views/cat_man.xhtml (rev 0)
+++ trunk-esial/blog-core/src/web/views/cat_man.xhtml 2007-03-22 16:37:07 UTC (rev 102)
@@ -0,0 +1,64 @@
+<div xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:c="http://java.sun.com/jstl/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:blog="http://www.jboss.org/portal/jbossblog">
+ <ui:composition template="common.xhtml">
+ <ui:param name="requiredPermission" value="acl://manageCategory" />
+ <ui:define name="content">
+ <h2>Editing Categories: #{state.selectedBlogId}</h2>
+
+ <h:messages />
+
+ <h:form>
+ <h:panelGrid columns="3">
+ <h:panelGroup>
+ create a new category :
+ </h:panelGroup>
+ <h:panelGroup>
+ <h:inputText value="#{idEdit.newCategory}"
+ maxlength="128" size="32" />
+ </h:panelGroup>
+ <h:panelGroup>
+ <h:commandLink action="#{idEdit.newCategory}" value="Go >>"/>
+ </h:panelGroup>
+
+ <h:panelGroup> <!--rendered="#{idEdit.categoryExists}"-->
+ Edit an existing category
+ </h:panelGroup>
+ <h:panelGroup> <!--rendered="#{idEdit.categoryExists}"-->
+ <h:selectOneMenu value="#{idEdit.existingCategory}">
+ <f:selectItems value="#{idEdit.categoryNames}" />
+ </h:selectOneMenu>
+ </h:panelGroup>
+ <h:panelGroup> <!--rendered="#{idEdit.categoryExists}"-->
+ <h:commandLink action="#{idEdit.editCategory}" value="Go >>"/>
+ </h:panelGroup>
+
+ <h:panelGroup rendered="#{idEdit.categoryExists}">
+ Delete a category
+ </h:panelGroup>
+ <h:panelGroup rendered="#{idEdit.categoryExists}">
+ <h:selectOneMenu value="#{idEdit.deleteCategory}">
+ <f:selectItems value="#{idEdit.categories}" />
+ </h:selectOneMenu>
+ </h:panelGroup>
+ <h:panelGroup rendered="#{idEdit.categoryExists}">
+ <h:commandLink action="#{idEdit.deleteCategory}" value="Go >>"/>
+ </h:panelGroup>
+
+ <h:panelGroup>
+ <h:commandLink value="<< Back" action="blog_manage" immediate="true"/>
+ </h:panelGroup>
+
+ <h:panelGroup>
+ </h:panelGroup>
+
+ <h:panelGroup>
+ </h:panelGroup>
+ </h:panelGrid>
+ </h:form>
+ </ui:define>
+ </ui:composition>
+</div>
\ No newline at end of file
Added: trunk-esial/blog-core/src/web/views/cat_mod.xhtml
===================================================================
--- trunk-esial/blog-core/src/web/views/cat_mod.xhtml (rev 0)
+++ trunk-esial/blog-core/src/web/views/cat_mod.xhtml 2007-03-22 16:37:07 UTC (rev 102)
@@ -0,0 +1,39 @@
+<div xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:c="http://java.sun.com/jstl/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:blog="http://www.jboss.org/portal/jbossblog">
+ <ui:composition template="common.xhtml">
+ <ui:define name="content">
+ <h2><ui:insert name="editheader" /></h2>
+
+ <h:messages />
+
+ <h:form>
+ <h4><ui:insert name="edittableheader" /></h4>
+ <h:panelGrid columns="2">
+ <h:panelGroup>Name: (*)</h:panelGroup>
+ <h:panelGroup>
+ <h:inputText value="#{categoryEdit.name}" required="true"
+ maxlength="255" size="32" />
+ </h:panelGroup>
+
+
+ <h:panelGroup>Description:</h:panelGroup>
+ <h:panelGroup>
+ <h:inputTextarea value="#{categoryEdit.description}" rows="10" cols="40" />
+ </h:panelGroup>
+ </h:panelGrid>
+
+ <p class="sidenote">
+ Fields marked with (*) are required.
+ </p>
+
+ <h:commandLink value="<< Back" action="#{categoryEdit.back}" immediate="true"/>
+  
+ <ui:insert name="savelink" />
+ </h:form>
+ </ui:define>
+ </ui:composition>
+</div>
\ No newline at end of file
Added: trunk-esial/blog-core/src/web/views/cat_new.xhtml
===================================================================
--- trunk-esial/blog-core/src/web/views/cat_new.xhtml (rev 0)
+++ trunk-esial/blog-core/src/web/views/cat_new.xhtml 2007-03-22 16:37:07 UTC (rev 102)
@@ -0,0 +1,22 @@
+<div xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:c="http://java.sun.com/jstl/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:blog="http://www.jboss.org/portal/jbossblog">
+ <ui:composition template="cat_mod.xhtml">
+ <ui:param name="requiredPermission" value="acl://manageCategory" />
+
+ <ui:define name="editheader">
+ New Category
+ </ui:define>
+
+ <ui:define name="edittableheader">
+ Enter category data:
+ </ui:define>
+
+ <ui:define name="savelink">
+ <h:commandLink value="Save" action="#{categoryEdit.saveNew}" />
+ </ui:define>
+ </ui:composition>
+</div>
\ No newline at end of file
Modified: trunk-esial/blog-core/src/web/views/id_edit.xhtml
===================================================================
--- trunk-esial/blog-core/src/web/views/id_edit.xhtml 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/web/views/id_edit.xhtml 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,64 +1,64 @@
-<div xmlns="http://www.w3.org/1999/xhtml"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:c="http://java.sun.com/jstl/core"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:blog="http://www.jboss.org/portal/jbossblog">
- <ui:composition template="common.xhtml">
- <ui:param name="requiredPermission" value="acl://accessAdminModule" />
- <ui:define name="content">
- <h2>Editing id: #{state.selectedBlogId}</h2>
-
- <h:messages />
-
- <h:form>
- <h:panelGrid columns="3">
- <h:panelGroup>
- New category
- </h:panelGroup>
- <h:panelGroup>
- <h:inputText value="#{idEdit.newCategory}"
- maxlength="128" size="32" />
- </h:panelGroup>
- <h:panelGroup>
- <h:commandLink action="#{idEdit.newCategory}" value="Go >>"/>
- </h:panelGroup>
-
- <h:panelGroup rendered="#{idEdit.categoryExists}">
- Edit an existing blog category
- </h:panelGroup>
- <h:panelGroup rendered="#{idEdit.categoryExists}">
- <h:selectOneMenu value="#{idEdit.existingCategory}">
- <f:selectItems value="#{idEdit.categories}" />
- </h:selectOneMenu>
- </h:panelGroup>
- <h:panelGroup rendered="#{idEdit.categoryExists}">
- <h:commandLink action="#{idEdit.editCategory}" value="Go >>"/>
- </h:panelGroup>
-
- <h:panelGroup rendered="#{idEdit.categoryExists}">
- Delete a blog category
- </h:panelGroup>
- <h:panelGroup rendered="#{idEdit.categoryExists}">
- <h:selectOneMenu value="#{idEdit.deleteCategory}">
- <f:selectItems value="#{idEdit.categories}" />
- </h:selectOneMenu>
- </h:panelGroup>
- <h:panelGroup rendered="#{idEdit.categoryExists}">
- <h:commandLink action="#{idEdit.deleteCategory}" value="Go >>"/>
- </h:panelGroup>
-
- <h:panelGroup>
- <h:commandLink value="<< Back" action="admin_panel" immediate="true"/>
- </h:panelGroup>
-
- <h:panelGroup>
- </h:panelGroup>
-
- <h:panelGroup>
- </h:panelGroup>
- </h:panelGrid>
- </h:form>
- </ui:define>
- </ui:composition>
+<div xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:c="http://java.sun.com/jstl/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:blog="http://www.jboss.org/portal/jbossblog">
+ <ui:composition template="common.xhtml">
+ <ui:param name="requiredPermission" value="acl://accessAdminModule" />
+ <ui:define name="content">
+ <h2>Editing id: #{state.selectedBlogId}</h2>
+
+ <h:messages />
+
+ <h:form>
+ <h:panelGrid columns="3">
+ <h:panelGroup>
+ Associated Group :
+ </h:panelGroup>
+ <h:panelGroup>
+ <h:inputText value="#{idEdit.newGroup}"
+ maxlength="128" size="32" />
+ </h:panelGroup>
+ <h:panelGroup>
+ <h:commandLink action="#{idEdit.newGroup}" value="Go >>"/>
+ </h:panelGroup>
+
+ <h:panelGroup rendered="#{idEdit.groupExists}">
+ Edit an existing blog category
+ </h:panelGroup>
+ <h:panelGroup rendered="#{idEdit.groupExists}">
+ <h:selectOneMenu value="#{idEdit.existingGroup}">
+ <f:selectItems value="#{idEdit.groups}" />
+ </h:selectOneMenu>
+ </h:panelGroup>
+ <h:panelGroup rendered="#{idEdit.groupExists}">
+ <h:commandLink action="#{idEdit.editGroup}" value="Go >>"/>
+ </h:panelGroup>
+
+ <h:panelGroup rendered="#{idEdit.groupExists}">
+ Delete a blog category
+ </h:panelGroup>
+ <h:panelGroup rendered="#{idEdit.groupExists}">
+ <h:selectOneMenu value="#{idEdit.deleteGroup}">
+ <f:selectItems value="#{idEdit.groups}" />
+ </h:selectOneMenu>
+ </h:panelGroup>
+ <h:panelGroup rendered="#{idEdit.groupExists}">
+ <h:commandLink action="#{idEdit.deleteGroup}" value="Go >>"/>
+ </h:panelGroup>
+
+ <h:panelGroup>
+ <h:commandLink value="<< Back" action="admin_panel" immediate="true"/>
+ </h:panelGroup>
+
+ <h:panelGroup>
+ </h:panelGroup>
+
+ <h:panelGroup>
+ </h:panelGroup>
+ </h:panelGrid>
+ </h:form>
+ </ui:define>
+ </ui:composition>
</div>
\ No newline at end of file
Modified: trunk-esial/blog-core/src/web/views/view.xhtml
===================================================================
--- trunk-esial/blog-core/src/web/views/view.xhtml 2007-03-22 09:21:31 UTC (rev 101)
+++ trunk-esial/blog-core/src/web/views/view.xhtml 2007-03-22 16:37:07 UTC (rev 102)
@@ -1,38 +1,38 @@
-<div xmlns="http://www.w3.org/1999/xhtml"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:c="http://java.sun.com/jstl/core"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:blog="http://www.jboss.org/portal/jbossblog">
- <ui:composition template="common.xhtml">
- <ui:param name="requiredPermission" value="acl://viewCategory" />
- <ui:define name="content">
- <h2>
- <h:panelGroup>
- #{blogView.blogModel.title}
- </h:panelGroup>
- </h2>
-
- <h:panelGroup rendered="#{not empty blogView.blogName.category}">
- categories: #{blogView.blogName.category}
- </h:panelGroup>
-
- <h:panelGroup rendered="#{not empty blogView.blogModel.title}">
- <p class="blog-description">
- Description: #{blogView.blogModel.description}
- </p>
- </h:panelGroup>
-
-
- <h:panelGroup rendered="#{blogView.blogModifiable}">
- <blog:isAllowed fragment="acl://manageCategory" contextData="#{blogView.blogName}">
- <h:form>
- <p class="admin-link"><ui:insert name="editlink" /></p>
- </h:form>
- </blog:isAllowed>
- </h:panelGroup>
-
- <ui:insert name="viewmain" />
- </ui:define>
- </ui:composition>
+<div xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:c="http://java.sun.com/jstl/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:blog="http://www.jboss.org/portal/jbossblog">
+ <ui:composition template="common.xhtml">
+ <ui:param name="requiredPermission" value="acl://viewCategory" />
+ <ui:define name="content">
+ <h2>
+ <h:panelGroup>
+ #{blogView.blogModel.title}
+ </h:panelGroup>
+ </h2>
+
+ <h:panelGroup rendered="#{not empty blogView.blogName.group}">
+ Group: #{blogView.blogName.group}
+ </h:panelGroup>
+
+ <h:panelGroup rendered="#{not empty blogView.blogModel.title}">
+ <p class="blog-description">
+ Description: #{blogView.blogModel.description}
+ </p>
+ </h:panelGroup>
+
+
+ <!-- h:panelGroup rendered="#{blogView.blogModifiable}">
+ <blog:isAllowed fragment="acl://manageCategory" contextData="#{blogView.blogName}">
+ <h:form>
+ <p class="admin-link"><ui:insert name="editlink" /></p>
+ </h:form>
+ </blog:isAllowed>
+ </h:panelGroup-->
+
+ <ui:insert name="viewmain" />
+ </ui:define>
+ </ui:composition>
</div>
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list