/
DefaultMenu.java
94 lines (79 loc) · 3.87 KB
/
DefaultMenu.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package org.wyona.yanel.servlet.menu.impl;
import org.wyona.yanel.core.Resource;
import org.wyona.yanel.core.api.attributes.VersionableV2;
import org.wyona.yanel.core.api.attributes.WorkflowableV1;
import org.wyona.yanel.core.attributes.versionable.RevisionInformation;
import org.wyona.yanel.core.map.Map;
import org.wyona.yanel.core.util.ResourceAttributeHelper;
import org.wyona.yanel.core.workflow.Transition;
import org.wyona.yanel.core.workflow.Workflow;
import org.wyona.yanel.core.workflow.WorkflowHelper;
import org.wyona.yanel.servlet.menu.Menu;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
/**
*
*/
public class DefaultMenu extends Menu {
private static Logger log = LogManager.getLogger(DefaultMenu.class);
/**
* Get toolbar menus
*/
public String getMenus(Resource resource, HttpServletRequest request, Map map, String reservedPrefix) throws ServletException, IOException, Exception {
return getFileMenu(resource) + getEditMenu(resource);
}
/**
* Get generic edit menu
*/
public String getEditMenu(Resource resource) throws Exception {
String userLanguage = getUserLanguage(resource);
StringBuilder sb = new StringBuilder();
sb.append("<ul><li>");
sb.append("<div id=\"yaneltoolbar_menutitle\">" + getLabel("y:edit", userLanguage) + "</div>");
sb.append("<ul>");
String backToRealm = org.wyona.yanel.core.util.PathUtil.backToRealm(resource.getPath());
sb.append("<li class=\"haschild\">Open with   ");
sb.append("<ul>");
sb.append("<li class=\"haschild\">WYSIWYG editor   ");
sb.append("<ul>");
if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Modifiable", "2")) {
//sb.append("<li><a href=\"" + backToRealm + "usecases/tinymce.html?edit-path=" + resource.getPath() + "\">Edit page with tinyMCE   </a></li>");
sb.append(getMenuItem("usecases/tinymce.html?edit-path=" + resource.getPath(), "Edit page with tinyMCE   "));
sb.append("<li><a href=\"" + backToRealm + "usecases/xinha.html?edit-path=" + resource.getPath() + "\">Edit page with Xinha   </a></li>");
} else {
sb.append("<li>Edit page with tinyMCE   </li>");
sb.append("<li><a>Edit page with Xinha   </a></li>");
}
sb.append(getMenuItem("https://addons.mozilla.org/de/firefox/addon/wyona-yulup/", "Edit page with Yulup   "));
sb.append("</ul>");
sb.append("</li>");
sb.append("<li>Source editor</li>");
sb.append("</ul>");
sb.append("</li>");
sb.append("</ul>");
sb.append("</li></ul>");
return sb.toString();
}
/**
* Get generic file menu
*/
public String getFileMenu(Resource resource) throws Exception {
String userLanguage = getUserLanguage(resource);
StringBuilder sb = new StringBuilder();
sb.append("<ul><li>");
sb.append("<div id=\"yaneltoolbar_menutitle\">" + getLabel("y:file", userLanguage) + "</div>");
sb.append("<ul>");
sb.append("<li><a href=\"create-new-page.html\">" + getLabel("y:create-new-page", userLanguage) + "</a></li>");
sb.append(new RevisionsWorkflowMenuItem().getMenuItem(resource));
if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Modifiable", "2")) {
sb.append("<li><a href=\"?yanel.resource.usecase=delete\">Delete this page</a></li>");
}
sb.append("<li><a href=\"?yanel.resource.meta\">" + getLabel("y:page-info", userLanguage) + "</a></li>");
sb.append("</ul>");
sb.append("</li></ul>");
return sb.toString();
}
}