You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2005/02/24 23:44:43 UTC
svn commit: r155271 - in lenya/trunk/src:
java/org/apache/lenya/cms/site/usecases/Nudge.java
webapp/WEB-INF/cocoon-xconf.xsl
webapp/lenya/pubs/default/config/menus/generic.xsp
webapp/lenya/pubs/default/config/tasks/targets.xml
webapp/lenya/pubs/default/config/tasks/tasks.xconf
Author: andreas
Date: Thu Feb 24 14:44:40 2005
New Revision: 155271
URL: http://svn.apache.org/viewcvs?view=rev&rev=155271
Log:
usecase framework: move node up/down
Added:
lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Nudge.java
Modified:
lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl
lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp
lenya/trunk/src/webapp/lenya/pubs/default/config/tasks/targets.xml
lenya/trunk/src/webapp/lenya/pubs/default/config/tasks/tasks.xconf
Added: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Nudge.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Nudge.java?view=auto&rev=155271
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Nudge.java (added)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Nudge.java Thu Feb 24 14:44:40 2005
@@ -0,0 +1,111 @@
+/*
+ * Copyright 1999-2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.lenya.cms.site.usecases;
+
+import org.apache.lenya.cms.publication.DocumentIdentityMap;
+import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.site.SiteManager;
+import org.apache.lenya.cms.site.tree.SiteTree;
+import org.apache.lenya.cms.site.tree.SiteTreeNode;
+import org.apache.lenya.cms.site.tree.TreeSiteManager;
+import org.apache.lenya.cms.usecase.DocumentUsecase;
+
+/**
+ * Nudge a document one position up or down.
+ *
+ * @version $Id:$
+ */
+public class Nudge extends DocumentUsecase {
+
+ protected static final String DIRECTION = "direction";
+ protected static final String UP = "up";
+ protected static final String DOWN = "down";
+
+ /**
+ * @see org.apache.lenya.cms.usecase.Usecase#isInteractive()
+ */
+ public boolean isInteractive() {
+ return false;
+ }
+
+ /**
+ * @see org.apache.lenya.cms.usecase.AbstractUsecase#doCheckPreconditions()
+ */
+ protected void doCheckPreconditions() throws Exception {
+ super.doCheckPreconditions();
+
+ if (!getErrorMessages().isEmpty()) {
+ return;
+ }
+
+ DocumentIdentityMap identityMap = getUnitOfWork().getIdentityMap();
+ Publication publication = identityMap.getPublication();
+ SiteManager manager = publication.getSiteManager(identityMap);
+ if (manager instanceof TreeSiteManager) {
+
+ TreeSiteManager treeManager = (TreeSiteManager) manager;
+ SiteTree tree = treeManager.getTree(getSourceDocument().getArea());
+ SiteTreeNode node = tree.getNode(getSourceDocument().getId());
+ SiteTreeNode[] siblings = null;
+
+ String direction = getParameterAsString(DIRECTION);
+ if (direction.equals(UP)) {
+ siblings = node.getPrecedingSiblings();
+ }
+ else if (direction.equals(DOWN)) {
+ siblings = node.getNextSiblings();
+ }
+ else {
+ addErrorMessage("The direction [" + direction + "] is not supported!");
+ }
+
+ if (siblings != null && siblings.length == 0) {
+ addErrorMessage("Cannot move the node in this direction.");
+ }
+ }
+ else {
+ addErrorMessage("This operation can only be invoked on site trees.");
+ }
+ }
+
+ /**
+ * @see org.apache.lenya.cms.usecase.AbstractUsecase#doExecute()
+ */
+ protected void doExecute() throws Exception {
+ super.doExecute();
+
+ DocumentIdentityMap identityMap = getUnitOfWork().getIdentityMap();
+ Publication publication = identityMap.getPublication();
+ SiteManager manager = publication.getSiteManager(identityMap);
+ if (manager instanceof TreeSiteManager) {
+
+ TreeSiteManager treeManager = (TreeSiteManager) manager;
+ SiteTree tree = treeManager.getTree(getSourceDocument().getArea());
+
+ String direction = getParameterAsString(DIRECTION);
+ if (direction.equals(UP)) {
+ tree.moveUp(getSourceDocument().getId());
+ }
+ else if (direction.equals(DOWN)) {
+ tree.moveDown(getSourceDocument().getId());
+ }
+ tree.save();
+ }
+
+ }
+
+}
Modified: lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl?view=diff&r1=155270&r2=155271
==============================================================================
--- lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl (original)
+++ lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl Thu Feb 24 14:44:40 2005
@@ -264,6 +264,7 @@
<component-instance name="site.cut" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.Cut"/>
<component-instance name="site.copy" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.Copy"/>
<component-instance name="site.paste" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.Paste"/>
+ <component-instance name="site.nudge" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.Nudge"/>
<component-instance name="tab.acArchive" logger="lenya.site" class="org.apache.lenya.cms.ac.usecases.AccessControl"/>
<component-instance name="tab.acAuthoring" logger="lenya.site" class="org.apache.lenya.cms.ac.usecases.AccessControl"/>
Modified: lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp?view=diff&r1=155270&r2=155271
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp Thu Feb 24 14:44:40 2005
@@ -101,19 +101,8 @@
<item uc:usecase="site.changeLabel" href="?"><i18n:text>Edit Navigation Title</i18n:text></item>
</block>
<block authoring="false">
- <xsp:logic>
- if (isDocument
- && "".equals(<input:get-attribute module="sitetree" as="string" name="live-node"/>)
- && Publication.AUTHORING_AREA.equals(area)
- && !"/index".equals(<input:get-attribute module="sitetree" as="string" name="document-id"/>)) {
- <item uc:usecase="move-node" uc:step="move-node"><xsp:attribute name="href"><xsp-request:get-uri/>?properties.movenode.direction=up</xsp:attribute><i18n:text>Move Up</i18n:text></item>
- <item uc:usecase="move-node" uc:step="move-node"><xsp:attribute name="href"><xsp-request:get-uri/>?properties.movenode.direction=down</xsp:attribute><i18n:text>Move Down</i18n:text></item>
- }
- else {
- <item><i18n:text>Move Up</i18n:text></item>
- <item><i18n:text>Move Down</i18n:text></item>
- }
- </xsp:logic>
+ <item uc:usecase="site.nudge" href="?direction=up"><i18n:text>Move Up</i18n:text></item>
+ <item uc:usecase="site.nudge" href="?direction=down"><i18n:text>Move Down</i18n:text></item>
</block>
<block authoring="false">
Modified: lenya/trunk/src/webapp/lenya/pubs/default/config/tasks/targets.xml
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/config/tasks/targets.xml?view=diff&r1=155270&r2=155271
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/config/tasks/targets.xml (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/config/tasks/targets.xml Thu Feb 24 14:44:40 2005
@@ -490,20 +490,6 @@
</target>
-<target name="movenode">
- <property name="movenode.documentid" value=""/>
- <property name="movenode.direction" value=""/>
-
- <echo>Moving sitetree node</echo>
- <echo>Document ID: ${movenode.documentid}</echo>
- <echo>Direction: ${movenode.direction}</echo>
-
- <taskdef name="movenodeupdown" classname="org.apache.lenya.cms.ant.MoveSiteTreeNodeTask"/>
- <movenodeupdown
- documentid="${movenode.documentid}"
- direction="${movenode.direction}"
- />
-</target>
<target name="deletecache">
<delete dir="${cachedir}"/>
Modified: lenya/trunk/src/webapp/lenya/pubs/default/config/tasks/tasks.xconf
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/config/tasks/tasks.xconf?view=diff&r1=155270&r2=155271
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/config/tasks/tasks.xconf (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/config/tasks/tasks.xconf Thu Feb 24 14:44:40 2005
@@ -40,11 +40,6 @@
<parameter name="target" value="moveDocument"/>
</task>
- <task id="movenode" class="org.apache.lenya.cms.task.AntTask">
- <label>Move Node</label>
- <parameter name="target" value="movenode"/>
- </task>
-
<task id="deleteDocument" class="org.apache.lenya.cms.task.AntTask">
<label>DeleteDocument</label>
<parameter name="target" value="deleteDocument"/>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org