Working users management
[lgpl/argeo-commons.git] / org.argeo.cms.e4 / src / org / argeo / cms / e4 / users / GroupsView.java
index 2007abf7dffff778c02ff0fd3a1fb580ada4c9b9..53937c9d773e8fe78a82348fa0c7a5f79e4ed179 100644 (file)
@@ -47,6 +47,10 @@ import org.argeo.naming.LdapObjs;
 import org.argeo.node.NodeConstants;
 import org.eclipse.e4.ui.di.Focus;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.dnd.DND;
@@ -84,7 +88,7 @@ public class GroupsView implements ArgeoNames {
        private UserAdminListener listener;
 
        @PostConstruct
-       public void createPartControl(Composite parent) {
+       public void createPartControl(Composite parent, ESelectionService selectionService) {
                parent.setLayout(EclipseUiUtils.noSpaceGridLayout());
 
                // boolean isAdmin = CurrentUser.isInRole(NodeConstants.ROLE_ADMIN);
@@ -113,6 +117,14 @@ public class GroupsView implements ArgeoNames {
                userViewer = groupTableViewerCmp.getTableViewer();
                userViewer.addDoubleClickListener(new UserTableDefaultDClickListener(partService));
                // getViewSite().setSelectionProvider(userViewer);
+               userViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+
+                       @Override
+                       public void selectionChanged(SelectionChangedEvent event) {
+                               IStructuredSelection selection = (IStructuredSelection) event.getSelection();
+                               selectionService.setSelection(selection.toList());
+                       }
+               });
 
                // Really?
                groupTableViewerCmp.refresh();