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.core.MetaData;
38 import info.magnolia.cms.gui.control.ContextMenuItem;
39 import info.magnolia.cms.gui.control.FunctionBarItem;
40 import info.magnolia.cms.gui.control.Tree;
41 import info.magnolia.cms.gui.control.TreeColumn;
42 import info.magnolia.cms.i18n.Messages;
43 import info.magnolia.cms.util.NodeNameComparator;
44 import info.magnolia.module.admininterface.AbstractTreeConfiguration;
45
46 import javax.servlet.http.HttpServletRequest;
47
48
49
50
51
52 public class RolesTreeConfiguration extends AbstractTreeConfiguration {
53
54
55
56
57
58 @Override
59 public void prepareTree(Tree tree, boolean browseMode, HttpServletRequest request) {
60 tree.setSortComparator(new NodeNameComparator());
61
62 tree.setDrawShifter(false);
63
64 tree.setIcon(ItemType.ROLE.getSystemName(), Tree.ICONDOCROOT + "hat_white.gif");
65 tree.setIconOndblclick("mgnlTreeMenuOpenDialog("
66 + tree.getJavascriptTree()
67 + ",'.magnolia/dialogs/roleedit.html');");
68 tree.addItemType(ItemType.ROLE);
69
70 final Messages msgs = getMessages();
71 TreeColumn column0 = TreeColumn.createLabelColumn(tree, msgs.get("tree.roles.name"), !browseMode);
72 column0.setWidth(2);
73
74 TreeColumn column1 = TreeColumn.createNodeDataColumn(tree, msgs.get("tree.roles.fullname"), "title", !browseMode);
75 column1.setWidth(2);
76
77 TreeColumn columnIcons = TreeColumn.createActivationColumn(tree, msgs.get("tree.roles.status"));
78
79 TreeColumn column2 = TreeColumn.createMetaDataColumn(tree, msgs.get("tree.roles.date"), MetaData.LAST_MODIFIED, "yyyy-MM-dd, HH:mm");
80 column2.setWidth(2);
81
82 tree.addColumn(column0);
83 if (!browseMode) {
84 tree.addColumn(column1);
85 if (isAdminInstance() || hasAnyActiveSubscriber()) {
86 tree.addColumn(columnIcons);
87 }
88 tree.addColumn(column2);
89 }
90 }
91
92
93
94
95
96 @Override
97 public void prepareContextMenu(Tree tree, boolean browseMode, HttpServletRequest request) {
98 final Messages msgs = getMessages();
99
100 ContextMenuItem menuOpen = new ContextMenuItem("edit");
101 menuOpen.setLabel(msgs.get("tree.roles.menu.edit"));
102 menuOpen.setIcon(request.getContextPath() + "/.resources/icons/16/hat_white.gif");
103 menuOpen.setOnclick("mgnlTreeMenuOpenDialog("
104 + tree.getJavascriptTree()
105 + ",'.magnolia/dialogs/roleedit.html');");
106 menuOpen.addJavascriptCondition("new mgnlTreeMenuItemConditionSelectedNotRoot("
107 + tree.getJavascriptTree()
108 + ")");
109 ContextMenuItem menuNewPage = new ContextMenuItem("new");
110 menuNewPage.setLabel(msgs.get("tree.roles.menu.new"));
111 menuNewPage.setIcon(request.getContextPath() + "/.resources/icons/16/hat_white_add.gif");
112 menuNewPage.setOnclick(tree.getJavascriptTree() + ".createRootNode('"
113 + ItemType.ROLE.getSystemName()
114 + "');");
115 ContextMenuItem menuDelete = new ContextMenuItem("delete");
116 menuDelete.setLabel(msgs.get("tree.roles.menu.delete"));
117 menuDelete.setIcon(request.getContextPath() + "/.resources/icons/16/delete2.gif");
118 menuDelete.setOnclick(tree.getJavascriptTree() + ".deleteNode();");
119 menuDelete.addJavascriptCondition("new mgnlTreeMenuItemConditionSelectedNotRoot("
120 + tree.getJavascriptTree()
121 + ")");
122 ContextMenuItem menuMove = new ContextMenuItem("move");
123 menuMove.setLabel(msgs.get("tree.roles.menu.move"));
124 menuMove.setIcon(request.getContextPath() + "/.resources/icons/16/up_down.gif");
125 menuMove.setOnclick(tree.getJavascriptTree() + ".cutNode();");
126 menuMove.addJavascriptCondition("new mgnlTreeMenuItemConditionSelectedNotRoot("
127 + tree.getJavascriptTree()
128 + ")");
129 ContextMenuItem menuCopy = new ContextMenuItem("copy");
130 menuCopy.setLabel(msgs.get("tree.roles.menu.copy"));
131 menuCopy.setIcon(request.getContextPath() + "/.resources/icons/16/copy.gif");
132 menuCopy.setOnclick(tree.getJavascriptTree() + ".copyNode();");
133 menuCopy.addJavascriptCondition("new mgnlTreeMenuItemConditionSelectedNotRoot("
134 + tree.getJavascriptTree()
135 + ")");
136
137 ContextMenuItem menuActivateExcl = new ContextMenuItem("activate");
138 menuActivateExcl.setLabel(msgs.get("tree.roles.menu.activate"));
139 menuActivateExcl.setIcon(request.getContextPath() + "/.resources/icons/16/arrow_right_green.gif");
140 menuActivateExcl.setOnclick(tree.getJavascriptTree() + ".activateNode(" + Tree.ACTION_ACTIVATE + ",false);");
141 menuActivateExcl.addJavascriptCondition("new mgnlTreeMenuItemConditionSelectedNotRoot("
142 + tree.getJavascriptTree()
143 + ")");
144 ContextMenuItem menuDeactivate = new ContextMenuItem("deactivate");
145 menuDeactivate.setLabel(msgs.get("tree.roles.menu.deactivate"));
146 menuDeactivate.setIcon(request.getContextPath() + "/.resources/icons/16/arrow_left_red.gif");
147 menuDeactivate.setOnclick(tree.getJavascriptTree() + ".deactivateNode(" + Tree.ACTION_DEACTIVATE + ");");
148 menuDeactivate.addJavascriptCondition("new mgnlTreeMenuItemConditionSelectedNotRoot("
149 + tree.getJavascriptTree()
150 + ")");
151
152 if (!hasAnyActiveSubscriber()) {
153 menuActivateExcl.addJavascriptCondition("new mgnlTreeMenuItemConditionBoolean(false)");
154 menuDeactivate.addJavascriptCondition("new mgnlTreeMenuItemConditionBoolean(false)");
155 }
156
157 if (!browseMode) {
158 tree.addMenuItem(menuOpen);
159 tree.addMenuItem(menuNewPage);
160
161 tree.addMenuItem(null);
162 tree.addMenuItem(menuDelete);
163
164 tree.addMenuItem(null);
165 tree.addMenuItem(menuActivateExcl);
166 tree.addMenuItem(menuDeactivate);
167 }
168 else {
169 tree.addMenuItem(ContextMenuItem.getRefreshMenuItem(tree, msgs, request));
170 }
171 }
172
173
174
175
176
177 @Override
178 public void prepareFunctionBar(Tree tree, boolean browseMode, HttpServletRequest request) {
179 tree.addFunctionBarItemFromContextMenu("edit");
180 tree.addFunctionBarItemFromContextMenu("new");
181 tree.addFunctionBarItem(null);
182 tree.addFunctionBarItemFromContextMenu("activate");
183 tree.addFunctionBarItemFromContextMenu("deactivate");
184 tree.addFunctionBarItem(null);
185 tree.addFunctionBarItem(FunctionBarItem.getRefreshFunctionBarItem(tree, getMessages(), request));
186 }
187
188 }