1 package org
.argeo
.security
.ui
.admin
.views
;
3 import org
.argeo
.ArgeoException
;
4 import org
.argeo
.security
.UserAdminService
;
5 import org
.argeo
.security
.ui
.admin
.SecurityAdminPlugin
;
6 import org
.argeo
.security
.ui
.admin
.commands
.AddRole
;
7 import org
.eclipse
.jface
.viewers
.IStructuredContentProvider
;
8 import org
.eclipse
.jface
.viewers
.ITableLabelProvider
;
9 import org
.eclipse
.jface
.viewers
.LabelProvider
;
10 import org
.eclipse
.jface
.viewers
.TableViewer
;
11 import org
.eclipse
.jface
.viewers
.Viewer
;
12 import org
.eclipse
.swt
.SWT
;
13 import org
.eclipse
.swt
.graphics
.Image
;
14 import org
.eclipse
.swt
.layout
.GridData
;
15 import org
.eclipse
.swt
.layout
.GridLayout
;
16 import org
.eclipse
.swt
.widgets
.Composite
;
17 import org
.eclipse
.swt
.widgets
.Event
;
18 import org
.eclipse
.swt
.widgets
.Listener
;
19 import org
.eclipse
.swt
.widgets
.Table
;
20 import org
.eclipse
.swt
.widgets
.Text
;
21 import org
.eclipse
.ui
.IWorkbench
;
22 import org
.eclipse
.ui
.handlers
.IHandlerService
;
23 import org
.eclipse
.ui
.part
.ViewPart
;
25 /** List all roles. */
26 public class RolesView
extends ViewPart
{
27 public final static String ID
= "org.argeo.security.ui.admin.adminRolesView";
31 private TableViewer viewer
;
32 private UserAdminService userAdminService
;
34 private String addNewRoleText
= "<add new role here>";
37 public void createPartControl(Composite parent
) {
38 parent
.setLayout(new GridLayout(1, false));
40 // new role text field
41 newRole
= new Text(parent
, SWT
.BORDER
);
42 newRole
.setText(addNewRoleText
);
43 newRole
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, false));
44 // default action is add role
45 newRole
.addListener(SWT
.DefaultSelection
, new Listener() {
46 public void handleEvent(Event evt
) {
47 IWorkbench iw
= SecurityAdminPlugin
.getDefault().getWorkbench();
48 IHandlerService handlerService
= (IHandlerService
) iw
49 .getService(IHandlerService
.class);
51 handlerService
.executeCommand(AddRole
.COMMAND_ID
, evt
);
52 } catch (Exception e
) {
53 throw new ArgeoException("Cannot execute add role command",
58 // select all on focus
59 newRole
.addListener(SWT
.FocusIn
, new Listener() {
60 public void handleEvent(Event e
) {
66 Table table
= new Table(parent
, SWT
.V_SCROLL
| SWT
.BORDER
);
67 table
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
68 table
.setLinesVisible(false);
69 table
.setHeaderVisible(false);
70 viewer
= new TableViewer(table
);
71 viewer
.setContentProvider(new RolesContentProvider());
72 viewer
.setLabelProvider(new UsersLabelProvider());
73 viewer
.setInput(getViewSite());
77 public void setFocus() {
78 viewer
.getTable().setFocus();
81 public void setUserAdminService(UserAdminService userAdminService
) {
82 this.userAdminService
= userAdminService
;
85 public String
getAddNewRoleText() {
86 return addNewRoleText
;
89 private class RolesContentProvider
implements IStructuredContentProvider
{
91 public Object
[] getElements(Object inputElement
) {
92 return userAdminService
.listEditableRoles().toArray();
95 public void dispose() {
98 public void inputChanged(Viewer viewer
, Object oldInput
, Object newInput
) {
103 private class UsersLabelProvider
extends LabelProvider
implements
104 ITableLabelProvider
{
105 public String
getColumnText(Object element
, int columnIndex
) {
106 return element
.toString();
109 public Image
getColumnImage(Object element
, int columnIndex
) {
115 public String
getNewRole() {
116 return newRole
.getText();
119 public void refresh() {
121 newRole
.setText(addNewRoleText
);