[Yanel-commits] rev 41170 - in public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu: . impl

michi at wyona.com michi at wyona.com
Tue Jan 27 16:44:07 CET 2009


Author: michi
Date: 2009-01-27 16:44:06 +0100 (Tue, 27 Jan 2009)
New Revision: 41170

Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/RevisionInformationMenuContent.java
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/DefaultMenu.java
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionInformationMenuItem.java
Log:
more info add

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/RevisionInformationMenuContent.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/RevisionInformationMenuContent.java	2009-01-27 15:09:10 UTC (rev 41169)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/RevisionInformationMenuContent.java	2009-01-27 15:44:06 UTC (rev 41170)
@@ -7,12 +7,15 @@
 import org.wyona.yanel.core.attributes.versionable.RevisionInformation;
 
 /**
- * @author gary
- *
+ * Interface for revision menu
  */
 public interface RevisionInformationMenuContent {
 
-    public abstract String toHTML();
+    /**
+     * @param mostRecent Flag to indicate if this is about the most recent revision
+     * @param oldestRevision Flag to indicate if this is about the oldest revision
+     */
+    public abstract String toHTML(boolean mostRecent, boolean oldestRevision);
     
     public abstract String getMenuLanguageCode();
     
@@ -20,4 +23,4 @@
     
     public abstract RevisionInformation getRevisionInfo();
 
-}
\ No newline at end of file
+}

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/DefaultMenu.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/DefaultMenu.java	2009-01-27 15:09:10 UTC (rev 41169)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/DefaultMenu.java	2009-01-27 15:44:06 UTC (rev 41170)
@@ -117,9 +117,13 @@
             if (revisions !=  null && revisions.length > 0) {
                 sb.append("<li class=\"haschild\">Revisions&#160;&#160;&#160;<ul>");
                 for (int i = revisions.length -1; i >= 0; i--) {
+                    boolean mostRecent = false;
+                    boolean oldestRevision = false;
+                    if (i == revisions.length - 1) mostRecent = true;
+                    if (i == 0) oldestRevision = true;
                     sb.append((new RevisionInformationMenuItem(resource,
                                                                revisions[i],
-                                                               resource.getRequestedLanguage())).toHTML());
+                                                               resource.getRequestedLanguage())).toHTML(mostRecent, oldestRevision));
                 }
                 sb.append("</ul></li>");
             }

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionInformationMenuItem.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionInformationMenuItem.java	2009-01-27 15:09:10 UTC (rev 41169)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionInformationMenuItem.java	2009-01-27 15:44:06 UTC (rev 41170)
@@ -44,34 +44,39 @@
         this.language = lang;
     }
 
-    private String getContent() {
-        String value = "";
+    /**
+     * Generate revision menu
+     */
+    private String getContent(boolean mostRecent, boolean oldestRevision) {
+        String value = "<li class=\"haschild\">" + this.revision.getName();
         
         try {
             if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Workflowable", "1") && WorkflowHelper.hasWorkflow(resource)) {
                 WorkflowableV1 workflowable = (WorkflowableV1) this.resource;
                 String state = workflowable.getWorkflowState(revision.getName());
-                value = "<li class=\"haschild\">"
-                      + this.revision.getName()
-                      + " (" + formatDate(this.revision.getDate()) + ", " + state + ")"
-                      + "&#160;&#160;&#160;";
+
+                value += " (" + formatDate(this.revision.getDate()) + ", " + state + ")&#160;&#160;&#160;<ul><li class=\"haschild\">Workflow";
             
-                ITransitionMenuContent x =
-                    new TransitionMenuContentImpl(getResource(), state, getRevisionInfo().getName(), getMenuLanguageCode());
+                ITransitionMenuContent x = new TransitionMenuContentImpl(getResource(), state, getRevisionInfo().getName(), getMenuLanguageCode());
                 RevisionTransitionsMenuContent rt = new RevisionTransitions(getResource(), getRevisionInfo().getName(), getMenuLanguageCode(), x);
+
                 value += rt.toHTML();
                 value += "</li>";
             } else {
-                value = "<li>"
-                      + this.revision.getName()
-                      + " (" + formatDate(this.revision.getDate()) + ")"
-                      + "&#160;&#160;&#160;";
-                value += "</li>";
+                value += " (" + formatDate(this.revision.getDate()) + ")&#160;&#160;&#160;<ul>";
             }
         } catch (WorkflowException e) {
-            value = "";
-            log.error("Could not get workflow.", e);
+            log.error("Could not get workflow: " + e.getMessage(), e);
         }
+        if (!mostRecent) value += "<li>Revert to (roll back)</li>";
+        value += "<li>Show more details</li>";
+        value += "<li><a href=\"?yanel.resource.revision=" + this.revision.getName() + "\">Display</a></li>";
+        value += "<li class=\"haschild\">Diff<ul>";
+        if (!mostRecent) value += "<li>Most recent</li><li>Next</li>";
+        if (!oldestRevision) value += "<li>Previous</li>";
+        value += "</ul></li>";
+        value += "</ul>";
+        value += "</li>";
 
         return value;
     }
@@ -79,8 +84,8 @@
     /* (non-Javadoc)
      * @see org.wyona.yanel.servlet.menu.impl.RevisionInformationMenuContent#toHTML()
      */
-    public String toHTML() {
-        return getContent();
+    public String toHTML(boolean mostRecent, boolean oldestRevision) {
+        return getContent(mostRecent, oldestRevision);
     }
 
     /* (non-Javadoc)



More information about the Yanel-commits mailing list