[Yanel-commits] rev 57617 - public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl
michi at wyona.com
michi at wyona.com
Thu Mar 31 17:48:56 CEST 2011
Author: michi
Date: 2011-03-31 17:48:55 +0200 (Thu, 31 Mar 2011)
New Revision: 57617
Modified:
public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionsWorkflowMenuItem.java
Log:
versionable v3 added
Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionsWorkflowMenuItem.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionsWorkflowMenuItem.java 2011-03-31 15:46:43 UTC (rev 57616)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionsWorkflowMenuItem.java 2011-03-31 15:48:55 UTC (rev 57617)
@@ -2,6 +2,7 @@
import org.wyona.yanel.core.Resource;
import org.wyona.yanel.core.api.attributes.VersionableV2;
+import org.wyona.yanel.core.api.attributes.VersionableV3;
import org.wyona.yanel.core.api.attributes.WorkflowableV1;
import org.wyona.yanel.core.attributes.versionable.RevisionInformation;
import org.wyona.yanel.core.map.Map;
@@ -32,27 +33,59 @@
public String getMenuItem(Resource resource) throws Exception {
StringBuilder sb = new StringBuilder();
- if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Versionable", "2")) {
+ if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Versionable", "2") && !ResourceAttributeHelper.hasAttributeImplemented(resource, "Versionable", "3")) {
RevisionInformation[] revisions = ((VersionableV2) resource).getRevisions();
if (revisions != null && revisions.length > 0) {
+ // TODO: i18n
+ //sb.append("<li class=\"haschild\">Revisionen (und Workflow) <ul>");
sb.append("<li class=\"haschild\">Revisions (and Workflow) <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;
+ boolean isMostRecent = false;
+ boolean isOldestRevision = false;
+ if (i == revisions.length - 1) isMostRecent = true;
+ if (i == 0) isOldestRevision = true;
sb.append((new RevisionInformationMenuItem(resource,
revisions[i],
+ resource.getRequestedLanguage())).toHTML(isMostRecent, isOldestRevision));
+ }
+ sb.append("</ul></li>");
+ } else {
+ sb.append("<li>No revisions yet</li>");
+ }
+ return sb.toString();
+ } else {
+ if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Versionable", "2") && ResourceAttributeHelper.hasAttributeImplemented(resource, "Versionable", "3")) {
+ log.warn("The resource '" + resource.getPath() + "' seems to implement VersionableV3 and hence will not use interface VersionableV2.");
+ }
+ }
+
+ if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Versionable", "3")) {
+ java.util.Iterator it = ((VersionableV3) resource).getRevisions(false);
+ if (it != null) {
+ // TODO: i18n
+ sb.append("<li class=\"haschild\">Revisionen (und Workflow) <ul>");
+ //sb.append("<li class=\"haschild\">Revisions (and Workflow) <ul>");
+ boolean mostRecent = true;
+ boolean oldestRevision = false;
+ while(it.hasNext()) {
+ RevisionInformation revInfo = (RevisionInformation)it.next();
+ if (!it.hasNext()) {
+ oldestRevision = true;
+ }
+ sb.append((new RevisionInformationMenuItem(resource, revInfo,
resource.getRequestedLanguage())).toHTML(mostRecent, oldestRevision));
+ mostRecent = false;
}
sb.append("</ul></li>");
} else {
sb.append("<li>No revisions yet</li>");
}
+ return sb.toString();
} else {
- log.warn("The resource '" + resource.getPath() + "' does not implement interface VersionableV2!");
+ log.warn("The resource '" + resource.getPath() + "' does not implement interface VersionableV3!");
}
+ sb.append("The resource '" + resource.getPath() + "' does not implement any versionable interface!");
return sb.toString();
}
}
More information about the Yanel-commits
mailing list