1 package org
.argeo
.security
.ui
.views
;
3 import org
.argeo
.ArgeoException
;
4 import org
.argeo
.security
.ArgeoSecurityService
;
5 import org
.argeo
.security
.ArgeoUser
;
6 import org
.argeo
.security
.equinox
.CurrentUser
;
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
.widgets
.Composite
;
15 import org
.eclipse
.swt
.widgets
.Table
;
16 import org
.eclipse
.swt
.widgets
.TableColumn
;
17 import org
.eclipse
.ui
.part
.ViewPart
;
19 public class UsersView
extends ViewPart
{
20 private TableViewer viewer
;
21 private ArgeoSecurityService securityService
;
24 public void createPartControl(Composite parent
) {
26 // viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
28 viewer
= new TableViewer(createTable(parent
));
29 viewer
.setContentProvider(new UsersContentProvider());
30 viewer
.setLabelProvider(new UsersLabelProvider());
31 viewer
.setInput(getViewSite());
32 // viewer.setInput(SecurityContextHolder.getContext());
35 protected Table
createTable(Composite parent
) {
36 int style
= SWT
.MULTI
| SWT
.H_SCROLL
| SWT
.V_SCROLL
;
38 Table table
= new Table(parent
, style
);
40 // GridData gridData = new GridData(GridData.FILL_BOTH);
41 // gridData.grabExcessVerticalSpace = true;
42 // gridData.grabExcessHorizontalSpace = true;
43 // gridData.horizontalSpan = 3;
44 // table.setLayoutData(gridData);
46 table
.setLinesVisible(true);
47 table
.setHeaderVisible(true);
49 TableColumn column
= new TableColumn(table
, SWT
.LEFT
, 0);
53 column
= new TableColumn(table
, SWT
.LEFT
, 1);
54 column
.setText("Password");
57 // column = new TableColumn(table, SWT.LEFT, 2);
58 // column.setText("Roles");
59 // column.setWidth(300);
65 public void setFocus() {
66 viewer
.getTable().setFocus();
69 private class UsersContentProvider
implements IStructuredContentProvider
{
71 public Object
[] getElements(Object inputElement
) {
72 return getChildren(inputElement
);
75 public Object
[] getChildren(Object parentElement
) {
77 // Thread.sleep(3000);
78 // } catch (InterruptedException e) {
79 // // TODO Auto-generated catch block
80 // e.printStackTrace();
83 return securityService
.getSecurityDao().listUsers().toArray();
86 public void dispose() {
87 // TODO Auto-generated method stub
91 public void inputChanged(Viewer viewer
, Object oldInput
, Object newInput
) {
92 // TODO Auto-generated method stub
98 private class UsersLabelProvider
extends LabelProvider
implements
100 public String
getColumnText(Object element
, int columnIndex
) {
101 String currentUsername
= CurrentUser
.getUsername();
102 ArgeoUser argeoUser
= (ArgeoUser
) element
;
103 switch (columnIndex
) {
105 String userName
= argeoUser
.getUsername();
106 if (userName
.equals(currentUsername
))
107 userName
= userName
+ "*";
110 return argeoUser
.getPassword();
112 return argeoUser
.getRoles().toString();
114 throw new ArgeoException("Unmanaged column " + columnIndex
);
118 public Image
getColumnImage(Object element
, int columnIndex
) {
119 // TODO Auto-generated method stub
125 public void setSecurityService(ArgeoSecurityService securityService
) {
126 this.securityService
= securityService
;