X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=security%2Feclipse%2Fplugins%2Forg.argeo.security.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fui%2Fviews%2FUsersView.java;fp=security%2Feclipse%2Fplugins%2Forg.argeo.security.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fui%2Fviews%2FUsersView.java;h=d54c1a6e7b56bb60f82706e745aeacf750aecd62;hb=83dc7b38160651626d00f6048f20183e01ad323a;hp=0000000000000000000000000000000000000000;hpb=f41458fe3c21479bf614b3cf03cedf621a91e36c;p=lgpl%2Fargeo-commons.git diff --git a/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/views/UsersView.java b/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/views/UsersView.java new file mode 100644 index 000000000..d54c1a6e7 --- /dev/null +++ b/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/views/UsersView.java @@ -0,0 +1,129 @@ +package org.argeo.security.ui.views; + +import org.argeo.ArgeoException; +import org.argeo.security.ArgeoSecurityService; +import org.argeo.security.ArgeoUser; +import org.argeo.security.equinox.CurrentUser; +import org.eclipse.jface.viewers.IStructuredContentProvider; +import org.eclipse.jface.viewers.ITableLabelProvider; +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.TableColumn; +import org.eclipse.ui.part.ViewPart; + +public class UsersView extends ViewPart { + private TableViewer viewer; + private ArgeoSecurityService securityService; + + @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.setInput(SecurityContextHolder.getContext()); + } + + 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.setLinesVisible(true); + table.setHeaderVisible(true); + + TableColumn column = new TableColumn(table, SWT.LEFT, 0); + column.setText("ID"); + column.setWidth(100); + + 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); + + return table; + } + + @Override + public void setFocus() { + viewer.getTable().setFocus(); + } + + private class UsersContentProvider implements IStructuredContentProvider { + + public Object[] getElements(Object inputElement) { + return getChildren(inputElement); + } + + public Object[] getChildren(Object parentElement) { +// try { +// Thread.sleep(3000); +// } catch (InterruptedException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } + + return securityService.getSecurityDao().listUsers().toArray(); + } + + public void dispose() { + // TODO Auto-generated method stub + + } + + public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { + // TODO Auto-generated method stub + + } + + } + + private class UsersLabelProvider extends LabelProvider implements + ITableLabelProvider { + public String getColumnText(Object element, int columnIndex) { + String currentUsername = CurrentUser.getUsername(); + ArgeoUser argeoUser = (ArgeoUser) element; + switch (columnIndex) { + case 0: + String userName = argeoUser.getUsername(); + if (userName.equals(currentUsername)) + userName = userName + "*"; + return userName; + case 1: + return argeoUser.getPassword(); + case 2: + return argeoUser.getRoles().toString(); + default: + throw new ArgeoException("Unmanaged column " + columnIndex); + } + } + + public Image getColumnImage(Object element, int columnIndex) { + // TODO Auto-generated method stub + return null; + } + + } + + public void setSecurityService(ArgeoSecurityService securityService) { + this.securityService = securityService; + } + +}