- try {
- ScrolledForm form = managedForm.getForm();
- GridLayout twt = new GridLayout(1, false);
- twt.marginWidth = twt.marginHeight = 0;
- form.getBody().setLayout(twt);
- Label lbl = new Label(form.getBody(), SWT.NONE);
- lbl.setText("Implement this for node " + currentNode.getPath());
- } catch (Exception e) {
- e.printStackTrace();
+ ScrolledForm form = managedForm.getForm();
+ form.setText("Rights");
+ FillLayout mainLayout = new FillLayout();
+ form.getBody().setLayout(mainLayout);
+ createRightsPart(form.getBody());
+ }
+
+ /** Creates the rights section */
+ protected void createRightsPart(Composite parent) {
+ Table table = new Table(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
+ table.setLinesVisible(true);
+ table.setHeaderVisible(true);
+ viewer = new TableViewer(table);
+
+ // check column
+ TableViewerColumn column = createTableViewerColumn(viewer, "checked",
+ 20);
+ column.setLabelProvider(new ColumnLabelProvider() {
+ public String getText(Object element) {
+ return null;
+ }
+
+ public Image getImage(Object element) {
+ return null;
+ }
+ });
+ // column.setEditingSupport(new RoleEditingSupport(rolesViewer, part));
+
+ // role column
+ column = createTableViewerColumn(viewer, "Role", 200);
+ column.setLabelProvider(new ColumnLabelProvider() {
+ public String getText(Object element) {
+ Privilege p = (Privilege) element;
+ return p.getName();
+ }
+
+ public Image getImage(Object element) {
+ return null;
+ }
+ });
+ viewer.setContentProvider(new RightsContentProvider());
+ viewer.setInput(getEditorSite());
+ }
+
+ protected TableViewerColumn createTableViewerColumn(TableViewer viewer,
+ String title, int bound) {
+ final TableViewerColumn viewerColumn = new TableViewerColumn(viewer,
+ SWT.NONE);
+ final TableColumn column = viewerColumn.getColumn();
+ column.setText(title);
+ column.setWidth(bound);
+ column.setResizable(true);
+ column.setMoveable(true);
+ return viewerColumn;
+ }
+
+ private class RightsContentProvider implements IStructuredContentProvider {
+
+ public void dispose() {
+ }
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ }
+
+ public Object[] getElements(Object inputElement) {
+ try {
+ AccessControlManager accessControlManager = currentNode
+ .getSession().getAccessControlManager();
+ Privilege[] privileges = accessControlManager
+ .getPrivileges(currentNode.getPath());
+ return privileges;
+ } catch (Exception e) {
+ throw new ArgeoException("Cannot retrieve rights", e);
+ }