2 * Copyright (C) 2007-2012 Mathieu Baudier
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org
.argeo
.jcr
.ui
.explorer
.editors
;
18 import javax
.jcr
.Node
;
19 import javax
.jcr
.security
.AccessControlManager
;
20 import javax
.jcr
.security
.Privilege
;
22 import org
.argeo
.ArgeoException
;
23 import org
.argeo
.jcr
.ui
.explorer
.JcrExplorerPlugin
;
24 import org
.eclipse
.jface
.viewers
.ColumnLabelProvider
;
25 import org
.eclipse
.jface
.viewers
.IStructuredContentProvider
;
26 import org
.eclipse
.jface
.viewers
.TableViewer
;
27 import org
.eclipse
.jface
.viewers
.TableViewerColumn
;
28 import org
.eclipse
.jface
.viewers
.Viewer
;
29 import org
.eclipse
.swt
.SWT
;
30 import org
.eclipse
.swt
.graphics
.Image
;
31 import org
.eclipse
.swt
.layout
.FillLayout
;
32 import org
.eclipse
.swt
.widgets
.Composite
;
33 import org
.eclipse
.swt
.widgets
.Table
;
34 import org
.eclipse
.swt
.widgets
.TableColumn
;
35 import org
.eclipse
.ui
.forms
.IManagedForm
;
36 import org
.eclipse
.ui
.forms
.editor
.FormEditor
;
37 import org
.eclipse
.ui
.forms
.editor
.FormPage
;
38 import org
.eclipse
.ui
.forms
.widgets
.ScrolledForm
;
41 * This comments will be nicely fill by mbaudier in.
43 public class NodeRightsManagementPage
extends FormPage
{
44 // private final static Log log =
45 // LogFactory.getLog(NodeRightsManagementPage.class);
47 private Node currentNode
;
49 private TableViewer viewer
;
51 public NodeRightsManagementPage(FormEditor editor
, String title
,
53 super(editor
, "NodeRightsManagementPage", title
);
54 this.currentNode
= currentNode
;
57 protected void createFormContent(IManagedForm managedForm
) {
58 ScrolledForm form
= managedForm
.getForm();
59 form
.setText(JcrExplorerPlugin
60 .getMessage("nodeRightsManagementPageTitle"));
61 FillLayout layout
= new FillLayout();
62 layout
.marginHeight
= 5;
63 layout
.marginWidth
= 5;
64 form
.getBody().setLayout(layout
);
65 createRightsPart(form
.getBody());
68 /** Creates the rights part */
69 protected void createRightsPart(Composite parent
) {
70 Table table
= new Table(parent
, SWT
.MULTI
| SWT
.H_SCROLL
| SWT
.V_SCROLL
);
71 table
.setLinesVisible(true);
72 table
.setHeaderVisible(true);
73 viewer
= new TableViewer(table
);
76 TableViewerColumn column
= createTableViewerColumn(viewer
, "checked",
78 column
.setLabelProvider(new ColumnLabelProvider() {
79 public String
getText(Object element
) {
83 public Image
getImage(Object element
) {
87 // column.setEditingSupport(new RoleEditingSupport(rolesViewer, part));
90 column
= createTableViewerColumn(viewer
, "Role", 200);
91 column
.setLabelProvider(new ColumnLabelProvider() {
92 public String
getText(Object element
) {
93 Privilege p
= (Privilege
) element
;
97 public Image
getImage(Object element
) {
101 viewer
.setContentProvider(new RightsContentProvider());
102 viewer
.setInput(getEditorSite());
105 protected TableViewerColumn
createTableViewerColumn(TableViewer viewer
,
106 String title
, int bound
) {
107 final TableViewerColumn viewerColumn
= new TableViewerColumn(viewer
,
109 final TableColumn column
= viewerColumn
.getColumn();
110 column
.setText(title
);
111 column
.setWidth(bound
);
112 column
.setResizable(true);
113 column
.setMoveable(true);
117 private class RightsContentProvider
implements IStructuredContentProvider
{
119 public void dispose() {
122 public void inputChanged(Viewer viewer
, Object oldInput
, Object newInput
) {
125 public Object
[] getElements(Object inputElement
) {
127 AccessControlManager accessControlManager
= currentNode
128 .getSession().getAccessControlManager();
129 Privilege
[] privileges
= accessControlManager
130 .getPrivileges(currentNode
.getPath());
132 } catch (Exception e
) {
133 throw new ArgeoException("Cannot retrieve rights", e
);