]> git.argeo.org Git - lgpl/argeo-commons.git/blob - security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/views/UsersView.java
Adapt Security to RCP
[lgpl/argeo-commons.git] / security / eclipse / plugins / org.argeo.security.ui / src / main / java / org / argeo / security / ui / views / UsersView.java
1 package org.argeo.security.ui.views;
2
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;
18
19 public class UsersView extends ViewPart {
20 private TableViewer viewer;
21 private ArgeoSecurityService securityService;
22
23 @Override
24 public void createPartControl(Composite parent) {
25
26 // viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
27 // | SWT.V_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());
33 }
34
35 protected Table createTable(Composite parent) {
36 int style = SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL;
37
38 Table table = new Table(parent, style);
39
40 // GridData gridData = new GridData(GridData.FILL_BOTH);
41 // gridData.grabExcessVerticalSpace = true;
42 // gridData.grabExcessHorizontalSpace = true;
43 // gridData.horizontalSpan = 3;
44 // table.setLayoutData(gridData);
45
46 table.setLinesVisible(true);
47 table.setHeaderVisible(true);
48
49 TableColumn column = new TableColumn(table, SWT.LEFT, 0);
50 column.setText("ID");
51 column.setWidth(100);
52
53 column = new TableColumn(table, SWT.LEFT, 1);
54 column.setText("Password");
55 column.setWidth(200);
56
57 // column = new TableColumn(table, SWT.LEFT, 2);
58 // column.setText("Roles");
59 // column.setWidth(300);
60
61 return table;
62 }
63
64 @Override
65 public void setFocus() {
66 viewer.getTable().setFocus();
67 }
68
69 private class UsersContentProvider implements IStructuredContentProvider {
70
71 public Object[] getElements(Object inputElement) {
72 return getChildren(inputElement);
73 }
74
75 public Object[] getChildren(Object parentElement) {
76 // try {
77 // Thread.sleep(3000);
78 // } catch (InterruptedException e) {
79 // // TODO Auto-generated catch block
80 // e.printStackTrace();
81 // }
82
83 return securityService.getSecurityDao().listUsers().toArray();
84 }
85
86 public void dispose() {
87 // TODO Auto-generated method stub
88
89 }
90
91 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
92 // TODO Auto-generated method stub
93
94 }
95
96 }
97
98 private class UsersLabelProvider extends LabelProvider implements
99 ITableLabelProvider {
100 public String getColumnText(Object element, int columnIndex) {
101 String currentUsername = CurrentUser.getUsername();
102 ArgeoUser argeoUser = (ArgeoUser) element;
103 switch (columnIndex) {
104 case 0:
105 String userName = argeoUser.getUsername();
106 if (userName.equals(currentUsername))
107 userName = userName + "*";
108 return userName;
109 case 1:
110 return argeoUser.getPassword();
111 case 2:
112 return argeoUser.getRoles().toString();
113 default:
114 throw new ArgeoException("Unmanaged column " + columnIndex);
115 }
116 }
117
118 public Image getColumnImage(Object element, int columnIndex) {
119 // TODO Auto-generated method stub
120 return null;
121 }
122
123 }
124
125 public void setSecurityService(ArgeoSecurityService securityService) {
126 this.securityService = securityService;
127 }
128
129 }