Introduce Makefile for Java build
[lgpl/argeo-commons.git] / org.argeo.cms.e4 / src / org / argeo / cms / e4 / users / UsersView.java
index 7562421cc7d2c1d5794b93836993595d0acc852f..877a925c6d4371d7396cc1de8737a7e34c26e74d 100644 (file)
@@ -1,18 +1,3 @@
-/*
- * Copyright (C) 2007-2012 Argeo GmbH
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
 package org.argeo.cms.e4.users;
 
 import java.util.ArrayList;
@@ -22,7 +7,7 @@ import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 
-import org.argeo.cms.ArgeoNames;
+import org.argeo.api.cms.CmsConstants;
 import org.argeo.cms.CmsException;
 import org.argeo.cms.auth.CurrentUser;
 import org.argeo.cms.e4.users.providers.CommonNameLP;
@@ -33,11 +18,14 @@ import org.argeo.cms.e4.users.providers.UserNameLP;
 import org.argeo.eclipse.ui.ColumnDefinition;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.parts.LdifUsersTable;
-import org.argeo.naming.LdapAttrs;
-import org.argeo.naming.LdapObjs;
-import org.argeo.node.NodeConstants;
+import org.argeo.util.naming.LdapAttrs;
+import org.argeo.util.naming.LdapObjs;
 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;
@@ -52,7 +40,7 @@ import org.osgi.service.useradmin.UserAdminEvent;
 import org.osgi.service.useradmin.UserAdminListener;
 
 /** List all users with filter - based on Ldif userAdmin */
-public class UsersView implements ArgeoNames {
+public class UsersView {
        // private final static Log log = LogFactory.getLog(UsersView.class);
 
        // public final static String ID = WorkbenchUiPlugin.PLUGIN_ID + ".usersView";
@@ -70,7 +58,7 @@ public class UsersView implements ArgeoNames {
        private UserAdminListener listener;
 
        @PostConstruct
-       public void createPartControl(Composite parent) {
+       public void createPartControl(Composite parent, ESelectionService selectionService) {
 
                parent.setLayout(EclipseUiUtils.noSpaceGridLayout());
                // Define the displayed columns
@@ -78,7 +66,7 @@ public class UsersView implements ArgeoNames {
                columnDefs.add(new ColumnDefinition(new MailLP(), "E-mail", 150));
                columnDefs.add(new ColumnDefinition(new DomainNameLP(), "Domain", 200));
                // Only show technical DN to admin
-               if (CurrentUser.isInRole(NodeConstants.ROLE_ADMIN))
+               if (CurrentUser.isInRole(CmsConstants.ROLE_ADMIN))
                        columnDefs.add(new ColumnDefinition(new UserNameLP(), "Distinguished Name", 300));
 
                // Create and configure the table
@@ -90,6 +78,14 @@ public class UsersView implements ArgeoNames {
                // Links
                userViewer = userTableViewerCmp.getTableViewer();
                userViewer.addDoubleClickListener(new UserTableDefaultDClickListener(partService));
+               userViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+
+                       @Override
+                       public void selectionChanged(SelectionChangedEvent event) {
+                               IStructuredSelection selection = (IStructuredSelection) event.getSelection();
+                               selectionService.setSelection(selection.toList());
+                       }
+               });
                // getViewSite().setSelectionProvider(userViewer);
 
                // Really?