import org.argeo.security.ArgeoSecurityService;
import org.argeo.security.ArgeoUser;
import org.argeo.security.equinox.CurrentUser;
+import org.argeo.security.nature.SimpleUserNature;
import org.argeo.security.ui.SecurityUiPlugin;
import org.argeo.security.ui.commands.OpenArgeoUserEditor;
import org.eclipse.core.commands.Command;
import org.eclipse.ui.handlers.IHandlerService;
import org.eclipse.ui.part.ViewPart;
+/** List all users. */
public class UsersView extends ViewPart {
+ public final static String ID = "org.argeo.security.ui.usersView";
+
private TableViewer viewer;
private ArgeoSecurityService securityService;
+ private String simpleNatureType = null;
+
@Override
public void createPartControl(Composite parent) {
-
- // viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
- // | SWT.V_SCROLL);
viewer = new TableViewer(createTable(parent));
viewer.setContentProvider(new UsersContentProvider());
viewer.setLabelProvider(new UsersLabelProvider());
- viewer.setInput(getViewSite());
viewer.addDoubleClickListener(new ViewDoubleClickListener());
- // viewer.setInput(SecurityContextHolder.getContext());
+ viewer.setInput(getViewSite());
}
protected Table createTable(Composite parent) {
- int style = SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL;
-
- Table table = new Table(parent, style);
-
- // GridData gridData = new GridData(GridData.FILL_BOTH);
- // gridData.grabExcessVerticalSpace = true;
- // gridData.grabExcessHorizontalSpace = true;
- // gridData.horizontalSpan = 3;
- // table.setLayoutData(gridData);
-
+ Table table = new Table(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
table.setLinesVisible(true);
table.setHeaderVisible(true);
-
TableColumn column = new TableColumn(table, SWT.LEFT, 0);
- column.setText("ID");
- column.setWidth(100);
-
+ column.setText("User");
+ column.setWidth(50);
column = new TableColumn(table, SWT.LEFT, 1);
- column.setText("Password");
- column.setWidth(200);
-
- // column = new TableColumn(table, SWT.LEFT, 2);
- // column.setText("Roles");
- // column.setWidth(300);
-
+ column.setText("First Name");
+ column.setWidth(100);
+ column = new TableColumn(table, SWT.LEFT, 2);
+ column.setText("Last Name");
+ column.setWidth(100);
+ column = new TableColumn(table, SWT.LEFT, 3);
+ column.setText("E-mail");
+ column.setWidth(100);
return table;
}
this.securityService = securityService;
}
- private class UsersContentProvider implements IStructuredContentProvider {
+ public void setSimpleNatureType(String simpleNatureType) {
+ this.simpleNatureType = simpleNatureType;
+ }
- public Object[] getElements(Object inputElement) {
- return getChildren(inputElement);
- }
+ public void refresh() {
+ viewer.refresh();
+ }
- public Object[] getChildren(Object parentElement) {
- // try {
- // Thread.sleep(3000);
- // } catch (InterruptedException e) {
- // // TODO Auto-generated catch block
- // e.printStackTrace();
- // }
+ private class UsersContentProvider implements IStructuredContentProvider {
- return securityService.getSecurityDao().listUsers().toArray();
+ public Object[] getElements(Object inputElement) {
+ return securityService.listUsers().toArray();
}
public void dispose() {
- // TODO Auto-generated method stub
-
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- // TODO Auto-generated method stub
-
}
}
ITableLabelProvider {
public String getColumnText(Object element, int columnIndex) {
String currentUsername = CurrentUser.getUsername();
- ArgeoUser argeoUser = (ArgeoUser) element;
+ ArgeoUser user = (ArgeoUser) element;
+ SimpleUserNature simpleNature = SimpleUserNature
+ .findSimpleUserNature(user, simpleNatureType);
switch (columnIndex) {
case 0:
- String userName = argeoUser.getUsername();
+ String userName = user.getUsername();
if (userName.equals(currentUsername))
userName = userName + "*";
return userName;
case 1:
- return argeoUser.getPassword();
+ return simpleNature.getFirstName();
case 2:
- return argeoUser.getRoles().toString();
+ return simpleNature.getLastName();
+ case 3:
+ return simpleNature.getEmail();
default:
throw new ArgeoException("Unmanaged column " + columnIndex);
}