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 package info.magnolia.module.admininterface.trees;
35
36 import info.magnolia.cms.core.ItemType;
37 import info.magnolia.cms.gui.control.ContextMenuItem;
38 import info.magnolia.cms.gui.control.Tree;
39 import info.magnolia.cms.i18n.Messages;
40
41 import javax.servlet.http.HttpServletRequest;
42
43
44
45
46
47
48
49 public class JcrBrowserTreeConfiguration extends ConfigTreeConfiguration {
50
51 @Override
52 public void prepareTree(Tree tree, boolean browseMode, HttpServletRequest request) {
53 super.prepareTree(tree, browseMode, request);
54 tree.addItemType(ItemType.NT_UNSTRUCTURED);
55 tree.addItemType(ItemType.NT_FOLDER);
56 tree.addItemType(ItemType.EXPRESSION.getSystemName());
57 tree.addItemType(ItemType.WORKITEM.getSystemName());
58 tree.addItemType(ItemType.USER.getSystemName());
59 tree.addItemType(ItemType.GROUP.getSystemName());
60 tree.addItemType(ItemType.ROLE.getSystemName());
61 tree.addItemType(ItemType.SYSTEM.getSystemName());
62 tree.addIcon(ItemType.DELETED_NODE_MIXIN, "/.resources/icons/16/document_deleted.gif");
63 }
64
65 @Override
66 public void prepareContextMenu(Tree tree, boolean browseMode, HttpServletRequest request) {
67 final Messages msgs = getMessages();
68
69 ContextMenuItem menuNewPage = new ContextMenuItem("newPage");
70 menuNewPage.setLabel(msgs.get("tree.config.menu.newPage"));
71 menuNewPage.setIcon(request.getContextPath() + "/.resources/icons/16/folder_cubes.gif");
72 menuNewPage.setOnclick(tree.getJavascriptTree() + ".createNode('" + ItemType.PAGE.getSystemName() + "');");
73 menuNewPage.addJavascriptCondition("new mgnlTreeMenuItemConditionSelectedNotNodeData("
74 + tree.getJavascriptTree()
75 + ")");
76 menuNewPage.addJavascriptCondition("new mgnlTreeMenuItemConditionSelectedNotContentNode("
77 + tree.getJavascriptTree()
78 + ")");
79
80 ContextMenuItem menuNewArea = new ContextMenuItem("newArea");
81 menuNewArea.setLabel(msgs.get("tree.config.menu.newArea"));
82 menuNewArea.setIcon(request.getContextPath() + "/.resources/icons/16/cubes.gif");
83 menuNewArea.setOnclick(tree.getJavascriptTree() + ".createNode('" + ItemType.AREA.getSystemName() + "');");
84 menuNewArea.addJavascriptCondition("new mgnlTreeMenuItemConditionSelectedNotNodeData("
85 + tree.getJavascriptTree()
86 + ")");
87
88 ContextMenuItem menuNewComponent = new ContextMenuItem("newComponent");
89 menuNewComponent.setLabel(msgs.get("tree.config.menu.newComponent"));
90 menuNewComponent.setIcon(request.getContextPath() + "/.resources/icons/16/cubes.gif");
91 menuNewComponent.setOnclick(tree.getJavascriptTree() + ".createNode('" + ItemType.COMPONENT.getSystemName() + "');");
92 menuNewComponent.addJavascriptCondition("new mgnlTreeMenuItemConditionSelectedNotNodeData("
93 + tree.getJavascriptTree()
94 + ")");
95
96 if (!browseMode) {
97 tree.addMenuItem(menuNewPage);
98 tree.addMenuItem(menuNewArea);
99 tree.addMenuItem(menuNewComponent);
100 }
101
102 super.prepareContextMenu(tree, browseMode, request);
103 }
104
105 @Override
106 public void prepareFunctionBar(Tree tree, boolean browseMode, HttpServletRequest request) {
107 tree.addFunctionBarItemFromContextMenu("newPage");
108 tree.addFunctionBarItemFromContextMenu("newArea");
109 tree.addFunctionBarItemFromContextMenu("newComponent");
110
111 tree.addFunctionBarItem(null);
112 super.prepareFunctionBar(tree, browseMode, request);
113 }
114 }