]> git.argeo.org Git - lgpl/argeo-commons.git/blob - server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/editors/NodeRightsManagementPage.java
6c5bbb15946e85466b5b3ad4e66eff2f33bbfe01
[lgpl/argeo-commons.git] / server / plugins / org.argeo.jcr.ui.explorer / src / main / java / org / argeo / jcr / ui / explorer / editors / NodeRightsManagementPage.java
1 package org.argeo.jcr.ui.explorer.editors;
2
3 import javax.jcr.Node;
4 import javax.jcr.security.AccessControlManager;
5 import javax.jcr.security.Privilege;
6
7 import org.argeo.ArgeoException;
8 import org.argeo.jcr.ui.explorer.JcrExplorerPlugin;
9 import org.eclipse.jface.viewers.ColumnLabelProvider;
10 import org.eclipse.jface.viewers.IStructuredContentProvider;
11 import org.eclipse.jface.viewers.TableViewer;
12 import org.eclipse.jface.viewers.TableViewerColumn;
13 import org.eclipse.jface.viewers.Viewer;
14 import org.eclipse.swt.SWT;
15 import org.eclipse.swt.graphics.Image;
16 import org.eclipse.swt.layout.FillLayout;
17 import org.eclipse.swt.widgets.Composite;
18 import org.eclipse.swt.widgets.Table;
19 import org.eclipse.swt.widgets.TableColumn;
20 import org.eclipse.ui.forms.IManagedForm;
21 import org.eclipse.ui.forms.editor.FormEditor;
22 import org.eclipse.ui.forms.editor.FormPage;
23 import org.eclipse.ui.forms.widgets.ScrolledForm;
24
25 /**
26 * This comments will be nicely fill by mbaudier in.
27 */
28 public class NodeRightsManagementPage extends FormPage {
29 // private final static Log log =
30 // LogFactory.getLog(NodeRightsManagementPage.class);
31
32 private Node currentNode;
33
34 private TableViewer viewer;
35
36 public NodeRightsManagementPage(FormEditor editor, String title,
37 Node currentNode) {
38 super(editor, "NodeRightsManagementPage", title);
39 this.currentNode = currentNode;
40 }
41
42 protected void createFormContent(IManagedForm managedForm) {
43 ScrolledForm form = managedForm.getForm();
44 form.setText(JcrExplorerPlugin
45 .getMessage("nodeRightsManagementPageTitle"));
46 FillLayout layout = new FillLayout();
47 layout.marginHeight = 5;
48 layout.marginWidth = 5;
49 form.getBody().setLayout(layout);
50 createRightsPart(form.getBody());
51 }
52
53 /** Creates the rights part */
54 protected void createRightsPart(Composite parent) {
55 Table table = new Table(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
56 table.setLinesVisible(true);
57 table.setHeaderVisible(true);
58 viewer = new TableViewer(table);
59
60 // check column
61 TableViewerColumn column = createTableViewerColumn(viewer, "checked",
62 20);
63 column.setLabelProvider(new ColumnLabelProvider() {
64 public String getText(Object element) {
65 return null;
66 }
67
68 public Image getImage(Object element) {
69 return null;
70 }
71 });
72 // column.setEditingSupport(new RoleEditingSupport(rolesViewer, part));
73
74 // role column
75 column = createTableViewerColumn(viewer, "Role", 200);
76 column.setLabelProvider(new ColumnLabelProvider() {
77 public String getText(Object element) {
78 Privilege p = (Privilege) element;
79 return p.getName();
80 }
81
82 public Image getImage(Object element) {
83 return null;
84 }
85 });
86 viewer.setContentProvider(new RightsContentProvider());
87 viewer.setInput(getEditorSite());
88 }
89
90 protected TableViewerColumn createTableViewerColumn(TableViewer viewer,
91 String title, int bound) {
92 final TableViewerColumn viewerColumn = new TableViewerColumn(viewer,
93 SWT.NONE);
94 final TableColumn column = viewerColumn.getColumn();
95 column.setText(title);
96 column.setWidth(bound);
97 column.setResizable(true);
98 column.setMoveable(true);
99 return viewerColumn;
100 }
101
102 private class RightsContentProvider implements IStructuredContentProvider {
103
104 public void dispose() {
105 }
106
107 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
108 }
109
110 public Object[] getElements(Object inputElement) {
111 try {
112 AccessControlManager accessControlManager = currentNode
113 .getSession().getAccessControlManager();
114 Privilege[] privileges = accessControlManager
115 .getPrivileges(currentNode.getPath());
116 return privileges;
117 } catch (Exception e) {
118 throw new ArgeoException("Cannot retrieve rights", e);
119 }
120 }
121
122 }
123 }