Improve user admin perspective
authorMathieu Baudier <mbaudier@argeo.org>
Tue, 14 Nov 2017 13:36:05 +0000 (14:36 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Tue, 14 Nov 2017 13:36:05 +0000 (14:36 +0100)
org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/SecurityAdminPerspective.java
org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/parts/GroupMainPage.java
org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/parts/GroupsView.java
org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/parts/UserMainPage.java
org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/providers/CommonNameLP.java
org.argeo.cms.ui/src/org/argeo/cms/util/UserAdminUtils.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/parts/LdifUsersTable.java

index f9904f2f190d703cb717f7b954aadd4e4298c232..04b54ee808979a6c29aba4b529d052fcc3722f99 100644 (file)
@@ -28,9 +28,9 @@ public class SecurityAdminPerspective implements IPerspectiveFactory {
                layout.setEditorAreaVisible(true);
                layout.setFixed(false);
 
-               IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT,
-                               0.25f, editorArea);
+               IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT, 0.3f, editorArea);
+               IFolderLayout right = layout.createFolder("right", IPageLayout.RIGHT, 0.5f, editorArea);
                left.addView(UsersView.ID);
-               left.addView(GroupsView.ID);
+               right.addView(GroupsView.ID);
        }
 }
index 32219d2d73c530ee00e6aac14bfd6e362dad2a59..2103ec9ada5f0021aeb09d7463a0db5cf5f77f9a 100644 (file)
@@ -38,7 +38,6 @@ import org.argeo.cms.ui.workbench.internal.useradmin.providers.CommonNameLP;
 import org.argeo.cms.ui.workbench.internal.useradmin.providers.MailLP;
 import org.argeo.cms.ui.workbench.internal.useradmin.providers.RoleIconLP;
 import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserFilter;
-import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserNameLP;
 import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserTableDefaultDClickListener;
 import org.argeo.cms.util.CmsUtils;
 import org.argeo.cms.util.UserAdminUtils;
@@ -132,18 +131,17 @@ public class GroupMainPage extends FormPage implements ArgeoNames {
        protected void appendOverviewPart(final Composite parent, final Group group) {
                FormToolkit tk = getManagedForm().getToolkit();
                Composite body = addSection(tk, parent);
-               GridLayout layout = new GridLayout(5, false);
+               // GridLayout layout = new GridLayout(5, false);
+               GridLayout layout = new GridLayout(2, false);
                body.setLayout(layout);
 
-               final Text dnTxt = createLT(body, "DN", group.getName());
-               dnTxt.setEnabled(false);
+               String cn = UserAdminUtils.getProperty(group, LdapAttrs.cn.name());
+               Text cnTxt = createReadOnlyLT(body, "Common Name", cn);
 
-               final String cn = UserAdminUtils.getProperty(group, LdapAttrs.cn.name());
-               final Text cnTxt = createLT(body, "Common Name", cn);
-               cnTxt.setEnabled(false);
+               Text dnTxt = createReadOnlyLT(body, "DN", group.getName());
 
-               final Link markAsWorkgroupLk = new Link(body, SWT.NONE);
-               markAsWorkgroupLk.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+               Link markAsWorkgroupLk = new Link(body, SWT.NONE);
+               markAsWorkgroupLk.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1));
 
                // Label descLbl = new Label(body, SWT.LEAD);
                // descLbl.setText("Description");
@@ -248,7 +246,8 @@ public class GroupMainPage extends FormPage implements ArgeoNames {
                columnDefs.add(new ColumnDefinition(new RoleIconLP(), "", 0, 24));
                columnDefs.add(new ColumnDefinition(new CommonNameLP(), "Common Name", 150));
                columnDefs.add(new ColumnDefinition(new MailLP(), "Primary Mail", 150));
-               columnDefs.add(new ColumnDefinition(new UserNameLP(), "Distinguished Name", 240));
+               // columnDefs.add(new ColumnDefinition(new UserNameLP(), "Distinguished Name",
+               // 240));
 
                // Create and configure the table
                LdifUsersTable userViewerCmp = new MyUserTableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL,
@@ -287,6 +286,7 @@ public class GroupMainPage extends FormPage implements ArgeoNames {
                        Role[] roles = group.getMembers();
                        List<User> users = new ArrayList<User>();
                        userFilter.setSearchText(filter);
+                       // userFilter.setShowSystemRole(true);
                        for (Role role : roles)
                                // if (role.getType() == Role.GROUP)
                                if (userFilter.select(null, null, role))
@@ -482,14 +482,27 @@ public class GroupMainPage extends FormPage implements ArgeoNames {
        }
 
        /** Creates label and text. */
-       private Text createLT(Composite parent, String label, String value) {
+//     private Text createLT(Composite parent, String label, String value) {
+//             FormToolkit toolkit = getManagedForm().getToolkit();
+//             Label lbl = toolkit.createLabel(parent, label);
+//             lbl.setLayoutData(new GridData(SWT.LEAD, SWT.CENTER, false, false));
+//             lbl.setFont(EclipseUiUtils.getBoldFont(parent));
+//             Text text = toolkit.createText(parent, value, SWT.BORDER);
+//             text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+//             CmsUtils.style(text, CmsWorkbenchStyles.WORKBENCH_FORM_TEXT);
+//             return text;
+//     }
+//     
+       Text createReadOnlyLT(Composite parent, String label, String value) {
                FormToolkit toolkit = getManagedForm().getToolkit();
                Label lbl = toolkit.createLabel(parent, label);
                lbl.setLayoutData(new GridData(SWT.END, SWT.CENTER, false, false));
                lbl.setFont(EclipseUiUtils.getBoldFont(parent));
-               Text text = toolkit.createText(parent, value, SWT.BORDER);
+               Text text = toolkit.createText(parent, value, SWT.NONE);
                text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+               text.setEditable(false);
                CmsUtils.style(text, CmsWorkbenchStyles.WORKBENCH_FORM_TEXT);
                return text;
        }
+
 }
index 0d33677ac572da6e018da14fc9556f10af99071e..545a7c89663edc14fa85c5ab105114bb02311b65 100644 (file)
@@ -30,7 +30,6 @@ import org.argeo.cms.ui.workbench.internal.useradmin.providers.CommonNameLP;
 import org.argeo.cms.ui.workbench.internal.useradmin.providers.DomainNameLP;
 import org.argeo.cms.ui.workbench.internal.useradmin.providers.RoleIconLP;
 import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserDragListener;
-import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserNameLP;
 import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserTableDefaultDClickListener;
 import org.argeo.eclipse.ui.ColumnDefinition;
 import org.argeo.eclipse.ui.EclipseUiUtils;
@@ -45,6 +44,7 @@ import org.eclipse.swt.dnd.TextTransfer;
 import org.eclipse.swt.dnd.Transfer;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
@@ -75,29 +75,27 @@ public class GroupsView extends ViewPart implements ArgeoNames {
        public void createPartControl(Composite parent) {
                parent.setLayout(EclipseUiUtils.noSpaceGridLayout());
 
-               boolean isAdmin = CurrentUser.isInRole(NodeConstants.ROLE_ADMIN);
+//             boolean isAdmin = CurrentUser.isInRole(NodeConstants.ROLE_ADMIN);
 
                // Define the displayed columns
-               columnDefs.add(new ColumnDefinition(new RoleIconLP(), "", 26));
-               columnDefs.add(new ColumnDefinition(new CommonNameLP(), "Common Name",
-                               150));
-               columnDefs.add(new ColumnDefinition(new DomainNameLP(), "Domain", 200));
+               columnDefs.add(new ColumnDefinition(new RoleIconLP(), "", 19));
+               columnDefs.add(new ColumnDefinition(new CommonNameLP(), "Common Name", 150));
+               columnDefs.add(new ColumnDefinition(new DomainNameLP(), "Domain", 100));
                // Only show technical DN to admin
-               if (isAdmin)
-                       columnDefs.add(new ColumnDefinition(new UserNameLP(),
-                                       "Distinguished Name", 300));
+               // if (isAdmin)
+               // columnDefs.add(new ColumnDefinition(new UserNameLP(),
+               // "Distinguished Name", 300));
 
                // Create and configure the table
-               groupTableViewerCmp = new MyUserTableViewer(parent, SWT.MULTI
-                               | SWT.H_SCROLL | SWT.V_SCROLL);
+               groupTableViewerCmp = new MyUserTableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
 
                groupTableViewerCmp.setColumnDefinitions(columnDefs);
-               if (isAdmin)
-                       groupTableViewerCmp.populateWithStaticFilters(false, false);
-               else
+//             if (isAdmin)
+//                     groupTableViewerCmp.populateWithStaticFilters(false, false);
+//             else
                        groupTableViewerCmp.populate(true, false);
 
-               groupTableViewerCmp.setLayoutData(EclipseUiUtils.fillAll());
+               groupTableViewerCmp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
 
                // Links
                userViewer = groupTableViewerCmp.getTableViewer();
@@ -110,8 +108,7 @@ public class GroupsView extends ViewPart implements ArgeoNames {
                // Drag and drop
                int operations = DND.DROP_COPY | DND.DROP_MOVE;
                Transfer[] tt = new Transfer[] { TextTransfer.getInstance() };
-               userViewer.addDragSupport(operations, tt, new UserDragListener(
-                               userViewer));
+               userViewer.addDragSupport(operations, tt, new UserDragListener(userViewer));
 
                // // Register a useradmin listener
                // listener = new UserAdminListener() {
@@ -144,23 +141,22 @@ public class GroupsView extends ViewPart implements ArgeoNames {
        private class MyUserTableViewer extends LdifUsersTable {
                private static final long serialVersionUID = 8467999509931900367L;
 
-               private boolean showSystemRoles;
+               private boolean showSystemRoles = true;
 
-               private final String[] knownProps = { LdapAttrs.uid.name(),
-                               LdapAttrs.cn.name(), LdapAttrs.DN };
+               private final String[] knownProps = { LdapAttrs.uid.name(), LdapAttrs.cn.name(), LdapAttrs.DN };
 
                public MyUserTableViewer(Composite parent, int style) {
                        super(parent, style);
+                       showSystemRoles = CurrentUser.isInRole(NodeConstants.ROLE_ADMIN);
                }
 
                protected void populateStaticFilters(Composite staticFilterCmp) {
                        staticFilterCmp.setLayout(new GridLayout());
-                       final Button showSystemRoleBtn = new Button(staticFilterCmp,
-                                       SWT.CHECK);
+                       final Button showSystemRoleBtn = new Button(staticFilterCmp, SWT.CHECK);
                        showSystemRoleBtn.setText("Show system roles");
                        showSystemRoles = CurrentUser.isInRole(NodeConstants.ROLE_ADMIN);
                        showSystemRoleBtn.setSelection(showSystemRoles);
-                       
+
                        showSystemRoleBtn.addSelectionListener(new SelectionAdapter() {
                                private static final long serialVersionUID = -7033424592697691676L;
 
@@ -188,39 +184,27 @@ public class GroupsView extends ViewPart implements ArgeoNames {
                                                tmpBuilder.append("*)");
                                        }
                                if (tmpBuilder.length() > 1) {
-                                       builder.append("(&(").append(LdapAttrs.objectClass.name())
-                                                       .append("=").append(LdapObjs.groupOfNames.name())
-                                                       .append(")");
+                                       builder.append("(&(").append(LdapAttrs.objectClass.name()).append("=")
+                                                       .append(LdapObjs.groupOfNames.name()).append(")");
                                        if (!showSystemRoles)
-                                               builder.append("(!(").append(LdapAttrs.DN).append("=*")
-                                                               .append(NodeConstants.ROLES_BASEDN)
+                                               builder.append("(!(").append(LdapAttrs.DN).append("=*").append(NodeConstants.ROLES_BASEDN)
                                                                .append("))");
                                        builder.append("(|");
                                        builder.append(tmpBuilder.toString());
                                        builder.append("))");
                                } else {
                                        if (!showSystemRoles)
-                                               builder.append("(&(")
-                                                               .append(LdapAttrs.objectClass.name())
-                                                               .append("=")
-                                                               .append(LdapObjs.groupOfNames.name())
-                                                               .append(")(!(").append(LdapAttrs.DN)
-                                                               .append("=*")
-                                                               .append(NodeConstants.ROLES_BASEDN)
-                                                               .append(")))");
+                                               builder.append("(&(").append(LdapAttrs.objectClass.name()).append("=")
+                                                               .append(LdapObjs.groupOfNames.name()).append(")(!(").append(LdapAttrs.DN).append("=*")
+                                                               .append(NodeConstants.ROLES_BASEDN).append(")))");
                                        else
-                                               builder.append("(")
-                                                               .append(LdapAttrs.objectClass.name())
-                                                               .append("=")
-                                                               .append(LdapObjs.groupOfNames.name())
-                                                               .append(")");
+                                               builder.append("(").append(LdapAttrs.objectClass.name()).append("=")
+                                                               .append(LdapObjs.groupOfNames.name()).append(")");
 
                                }
-                               roles = userAdminWrapper.getUserAdmin().getRoles(
-                                               builder.toString());
+                               roles = userAdminWrapper.getUserAdmin().getRoles(builder.toString());
                        } catch (InvalidSyntaxException e) {
-                               throw new CmsException("Unable to get roles with filter: "
-                                               + filter, e);
+                               throw new CmsException("Unable to get roles with filter: " + filter, e);
                        }
                        List<User> users = new ArrayList<User>();
                        for (Role role : roles)
index 570a3a1ddd17bb33f01b0d1b11711adf07ea3dba..1edbee1a7da6b3e409d843a87963e9abb7e57c24 100644 (file)
  */
 package org.argeo.cms.ui.workbench.internal.useradmin.parts;
 
+import static org.argeo.cms.util.UserAdminUtils.getProperty;
+import static org.argeo.naming.LdapAttrs.cn;
+import static org.argeo.naming.LdapAttrs.givenName;
+import static org.argeo.naming.LdapAttrs.mail;
+import static org.argeo.naming.LdapAttrs.sn;
+import static org.argeo.naming.LdapAttrs.uid;
+
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -30,7 +37,6 @@ import org.argeo.cms.ui.workbench.internal.useradmin.providers.CommonNameLP;
 import org.argeo.cms.ui.workbench.internal.useradmin.providers.DomainNameLP;
 import org.argeo.cms.ui.workbench.internal.useradmin.providers.RoleIconLP;
 import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserFilter;
-import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserNameLP;
 import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserTableDefaultDClickListener;
 import org.argeo.cms.util.CmsUtils;
 import org.argeo.cms.util.UserAdminUtils;
@@ -127,14 +133,14 @@ public class UserMainPage extends FormPage implements ArgeoNames {
                Composite body = tk.createComposite(section, SWT.WRAP);
                body.setLayoutData(EclipseUiUtils.fillAll());
                section.setClient(body);
-               body.setLayout(new GridLayout(6, false));
-
-               final Text commonName = createLT(tk, body, "User Name", UserAdminUtils.getProperty(user, LdapAttrs.cn.name()));
-               commonName.setEnabled(false);
+               // body.setLayout(new GridLayout(6, false));
+               body.setLayout(new GridLayout(2, false));
 
-               final Text distinguishedName = createLT(tk, body, "Login",
-                               UserAdminUtils.getProperty(user, LdapAttrs.uid.name()));
-               distinguishedName.setEnabled(false);
+               Text commonName = createReadOnlyLT(tk, body, "Name", getProperty(user, cn));
+               Text distinguishedName = createReadOnlyLT(tk, body, "Login", getProperty(user, uid));
+               Text firstName = createLT(tk, body, "First name", getProperty(user, givenName));
+               Text lastName = createLT(tk, body, "Last name", getProperty(user, sn));
+               Text email = createLT(tk, body, "Email", getProperty(user, mail));
 
                Link resetPwdLk = new Link(body, SWT.NONE);
                if (!UserAdminUtils.isCurrentUser(user)) {
@@ -142,13 +148,6 @@ public class UserMainPage extends FormPage implements ArgeoNames {
                }
                resetPwdLk.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
 
-               final Text firstName = createLT(tk, body, "First name",
-                               UserAdminUtils.getProperty(user, LdapAttrs.givenName.name()));
-
-               final Text lastName = createLT(tk, body, "Last name", UserAdminUtils.getProperty(user, LdapAttrs.sn.name()));
-
-               final Text email = createLT(tk, body, "Email", UserAdminUtils.getProperty(user, LdapAttrs.mail.name()));
-
                // create form part (controller)
                AbstractFormPart part = new SectionPart((Section) body.getParent()) {
                        private MainInfoListener listener;
@@ -289,25 +288,26 @@ public class UserMainPage extends FormPage implements ArgeoNames {
                Composite body = (Composite) section.getClient();
                body.setLayout(EclipseUiUtils.noSpaceGridLayout());
 
-               boolean isAdmin = CurrentUser.isInRole(NodeConstants.ROLE_ADMIN);
+               // boolean isAdmin = CurrentUser.isInRole(NodeConstants.ROLE_ADMIN);
 
                // Displayed columns
                List<ColumnDefinition> columnDefs = new ArrayList<ColumnDefinition>();
                columnDefs.add(new ColumnDefinition(new RoleIconLP(), "", 0, 24));
-               columnDefs.add(new ColumnDefinition(new CommonNameLP(), "Common Name", 250));
-               columnDefs.add(new ColumnDefinition(new DomainNameLP(), "Domain Name", 120));
+               columnDefs.add(new ColumnDefinition(new CommonNameLP(), "Common Name", 150));
+               columnDefs.add(new ColumnDefinition(new DomainNameLP(), "Domain Name", 100));
                // Only show technical DN to administrators
-               if (isAdmin)
-                       columnDefs.add(new ColumnDefinition(new UserNameLP(), "Distinguished Name", 300));
+               // if (isAdmin)
+               // columnDefs.add(new ColumnDefinition(new UserNameLP(), "Distinguished Name",
+               // 300));
 
                // Create and configure the table
                final LdifUsersTable userViewerCmp = new MyUserTableViewer(body, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL, user);
 
                userViewerCmp.setColumnDefinitions(columnDefs);
-               if (isAdmin)
-                       userViewerCmp.populateWithStaticFilters(false, false);
-               else
-                       userViewerCmp.populate(true, false);
+               // if (isAdmin)
+               // userViewerCmp.populateWithStaticFilters(false, false);
+               // else
+               userViewerCmp.populate(true, false);
                GridData gd = EclipseUiUtils.fillAll();
                gd.heightHint = 500;
                userViewerCmp.setLayoutData(gd);
@@ -557,4 +557,15 @@ public class UserMainPage extends FormPage implements ArgeoNames {
                CmsUtils.style(text, CmsWorkbenchStyles.WORKBENCH_FORM_TEXT);
                return text;
        }
+
+       Text createReadOnlyLT(FormToolkit toolkit, Composite parent, String label, String value) {
+               Label lbl = toolkit.createLabel(parent, label);
+               lbl.setLayoutData(new GridData(SWT.END, SWT.CENTER, false, false));
+               lbl.setFont(EclipseUiUtils.getBoldFont(parent));
+               Text text = toolkit.createText(parent, value, SWT.NONE);
+               text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+               text.setEditable(false);
+               CmsUtils.style(text, CmsWorkbenchStyles.WORKBENCH_FORM_TEXT);
+               return text;
+       }
 }
index 5059f7c3e106701d843535e28066db615e60add2..cbe6b6a1c2224795edfd5e56fab6411fac8d8573 100644 (file)
@@ -12,4 +12,10 @@ public class CommonNameLP extends UserAdminAbstractLP {
        public String getText(User user) {
                return UserAdminUtils.getProperty(user, LdapAttrs.cn.name());
        }
+
+       @Override
+       public String getToolTipText(Object element) {
+               return UserAdminUtils.getProperty((User) element, LdapAttrs.DN);
+       }
+
 }
index 83f3d0042d42bb17b1869864959774b4b2e500a5..f8c7a57209cb70cba96ca1e6a6d2a109d1d9b8d3 100644 (file)
@@ -51,8 +51,8 @@ public class UserAdminUtils {
 
        // OTHER USERS HELPERS
        /**
-        * Retrieves the local id of a user or group, that is respectively the uid
-        * or cn of the passed dn with no {@link UserAdmin}
+        * Retrieves the local id of a user or group, that is respectively the uid or cn
+        * of the passed dn with no {@link UserAdmin}
         */
        public static String getUserLocalId(String dn) {
                LdapName ldapName = getLdapName(dn);
@@ -65,8 +65,8 @@ public class UserAdminUtils {
        }
 
        /**
-        * Returns the local username if no user with this dn is found or if the
-        * found user has no defined display name
+        * Returns the local username if no user with this dn is found or if the found
+        * user has no defined display name
         */
        public static String getUserDisplayName(UserAdmin userAdmin, String dn) {
                Role user = userAdmin.getRole(dn);
@@ -97,8 +97,8 @@ public class UserAdminUtils {
 
        // LDAP NAMES HELPERS
        /**
-        * Easily retrieves one of the {@link Role}'s property or an empty String if
-        * the requested property is not defined
+        * Easily retrieves one of the {@link Role}'s property or an empty String if the
+        * requested property is not defined
         */
        public final static String getProperty(Role role, String key) {
                Object obj = role.getProperties().get(key);
@@ -108,9 +108,16 @@ public class UserAdminUtils {
                        return "";
        }
 
+       public final static String getProperty(Role role, Enum<?> key) {
+               Object obj = role.getProperties().get(key.name());
+               if (obj != null)
+                       return (String) obj;
+               else
+                       return "";
+       }
+
        /**
-        * Simply retrieves a LDAP name from a {@link LdapAttrs.DN} with no
-        * exception
+        * Simply retrieves a LDAP name from a {@link LdapAttrs.DN} with no exception
         */
        private static LdapName getLdapName(String dn) {
                try {
index 07e5b2a3552bf505049c2cc08472aa1ebd2d8848..d6dc82cef7326f22d338b5fa3bb48fd6da5517f8 100644 (file)
@@ -66,8 +66,7 @@ public abstract class LdifUsersTable extends Composite {
        }
 
        // TODO workaround the bug of the table layout in the Form
-       public LdifUsersTable(Composite parent, int style,
-                       boolean preventTableLayout) {
+       public LdifUsersTable(Composite parent, int style, boolean preventTableLayout) {
                super(parent, SWT.NO_FOCUS);
                this.tableStyle = style;
                this.preventTableLayout = preventTableLayout;
@@ -83,8 +82,8 @@ public abstract class LdifUsersTable extends Composite {
         * @param addFilter
         *            choose to add a field to filter results or not
         * @param addSelection
-        *            choose to add a column to select some of the displayed results
-        *            or not
+        *            choose to add a column to select some of the displayed results or
+        *            not
         */
        public void populate(boolean addFilter, boolean addSelection) {
                // initialization
@@ -110,8 +109,8 @@ public abstract class LdifUsersTable extends Composite {
         * @param showMore
         *            display static filters on creation
         * @param addSelection
-        *            choose to add a column to select some of the displayed results
-        *            or not
+        *            choose to add a column to select some of the displayed results or
+        *            not
         */
        public void populateWithStaticFilters(boolean showMore, boolean addSelection) {
                // initialization
@@ -134,8 +133,7 @@ public abstract class LdifUsersTable extends Composite {
        /** Enable access to the selected users or groups */
        public List<User> getSelectedUsers() {
                if (hasSelectionColumn) {
-                       Object[] elements = ((CheckboxTableViewer) usersViewer)
-                                       .getCheckedElements();
+                       Object[] elements = ((CheckboxTableViewer) usersViewer).getCheckedElements();
 
                        List<User> result = new ArrayList<User>();
                        for (Object obj : elements) {
@@ -143,8 +141,8 @@ public abstract class LdifUsersTable extends Composite {
                        }
                        return result;
                } else
-                       throw new EclipseUiException("Unvalid request: no selection column "
-                                       + "has been created for the current table");
+                       throw new EclipseUiException(
+                                       "Unvalid request: no selection column " + "has been created for the current table");
        }
 
        /** Returns the User table viewer, typically to add doubleclick listener */
@@ -153,8 +151,8 @@ public abstract class LdifUsersTable extends Composite {
        }
 
        /**
-        * Force the refresh of the underlying table using the current filter string
-        * if relevant
+        * Force the refresh of the underlying table using the current filter string if
+        * relevant
         */
        public void refresh() {
                String filter = hasFilter ? filterTxt.getText().trim() : null;
@@ -218,10 +216,8 @@ public abstract class LdifUsersTable extends Composite {
        /* MANAGE FILTER */
        private void createFilterPart(Composite parent) {
                // Text Area for the filter
-               filterTxt = new Text(parent, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH
-                               | SWT.ICON_CANCEL);
-               filterTxt.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
-                               | GridData.HORIZONTAL_ALIGN_FILL));
+               filterTxt = new Text(parent, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH | SWT.ICON_CANCEL);
+               filterTxt.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
                filterTxt.addModifyListener(new ModifyListener() {
                        private static final long serialVersionUID = 1L;
 
@@ -236,10 +232,10 @@ public abstract class LdifUsersTable extends Composite {
                filterComp.setLayout(new GridLayout(2, false));
                filterComp.setLayoutData(EclipseUiUtils.fillWidth());
                // generic search
-               filterTxt = new Text(filterComp, SWT.BORDER | SWT.SEARCH
-                               | SWT.ICON_SEARCH | SWT.ICON_CANCEL);
-               filterTxt.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
-                               | GridData.HORIZONTAL_ALIGN_FILL));
+               filterTxt = new Text(filterComp, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH | SWT.ICON_CANCEL);
+               filterTxt.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+               // filterTxt.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL |
+               // GridData.HORIZONTAL_ALIGN_FILL));
                filterTxt.addModifyListener(new ModifyListener() {
                        private static final long serialVersionUID = 1L;
 
@@ -254,8 +250,7 @@ public abstract class LdifUsersTable extends Composite {
                staticFilterCmp.setLayoutData(EclipseUiUtils.fillWidth(2));
                populateStaticFilters(staticFilterCmp);
 
-               MoreLinkListener listener = new MoreLinkListener(moreLk,
-                               staticFilterCmp, showMore);
+               MoreLinkListener listener = new MoreLinkListener(moreLk, staticFilterCmp, showMore);
                // initialise the layout
                listener.refresh();
                moreLk.addSelectionListener(listener);
@@ -274,8 +269,7 @@ public abstract class LdifUsersTable extends Composite {
                private final Composite staticFilterCmp;
                private final Link moreLk;
 
-               public MoreLinkListener(Link moreLk, Composite staticFilterCmp,
-                               boolean isShown) {
+               public MoreLinkListener(Link moreLk, Composite staticFilterCmp, boolean isShown) {
                        this.moreLk = moreLk;
                        this.staticFilterCmp = staticFilterCmp;
                        this.isShown = isShown;
@@ -332,8 +326,7 @@ public abstract class LdifUsersTable extends Composite {
                // int offset = 0;
                if (hasSelectionColumn) {
                        // offset = 1;
-                       column = ViewerUtils.createTableViewerColumn(viewer, "", SWT.NONE,
-                                       25);
+                       column = ViewerUtils.createTableViewerColumn(viewer, "", SWT.NONE, 25);
                        column.setLabelProvider(new ColumnLabelProvider() {
                                private static final long serialVersionUID = 1L;
 
@@ -342,8 +335,7 @@ public abstract class LdifUsersTable extends Composite {
                                        return null;
                                }
                        });
-                       layout.setColumnData(column.getColumn(), new ColumnWeightData(25,
-                                       25, false));
+                       layout.setColumnData(column.getColumn(), new ColumnWeightData(25, 25, false));
 
                        SelectionAdapter selectionAdapter = new SelectionAdapter() {
                                private static final long serialVersionUID = 1L;
@@ -353,8 +345,7 @@ public abstract class LdifUsersTable extends Composite {
                                @Override
                                public void widgetSelected(SelectionEvent e) {
                                        allSelected = !allSelected;
-                                       ((CheckboxTableViewer) usersViewer)
-                                                       .setAllChecked(allSelected);
+                                       ((CheckboxTableViewer) usersViewer).setAllChecked(allSelected);
                                }
                        };
                        column.getColumn().addSelectionListener(selectionAdapter);
@@ -386,8 +377,8 @@ public abstract class LdifUsersTable extends Composite {
        }
 
        /** Default creation of a column for a user table */
-       private TableViewerColumn createTableColumn(TableViewer tableViewer,
-                       TableColumnLayout layout, ColumnDefinition columnDef) {
+       private TableViewerColumn createTableColumn(TableViewer tableViewer, TableColumnLayout layout,
+                       ColumnDefinition columnDef) {
 
                boolean resizable = true;
                TableViewerColumn tvc = new TableViewerColumn(tableViewer, SWT.NONE);
@@ -404,8 +395,7 @@ public abstract class LdifUsersTable extends Composite {
                // .getDisplay());
                tvc.setLabelProvider(lp);
 
-               layout.setColumnData(column, new ColumnWeightData(
-                               columnDef.getWeight(), columnDef.getMinWidth(), resizable));
+               layout.setColumnData(column, new ColumnWeightData(columnDef.getWeight(), columnDef.getMinWidth(), resizable));
 
                return tvc;
        }