]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/views/UsersView.java
Introduce commands to manage user transaction
[lgpl/argeo-commons.git] / org.argeo.security.ui.admin / src / org / argeo / security / ui / admin / views / UsersView.java
index 31586085bddbd62969e627d2b6c39f11e52055f2..6604e61061421e6d2f07df6a36d30b9e8b70ede2 100644 (file)
@@ -18,6 +18,10 @@ package org.argeo.security.ui.admin.views;
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.transaction.UserTransaction;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.argeo.ArgeoException;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.jcr.ArgeoNames;
@@ -39,11 +43,13 @@ import org.osgi.service.useradmin.UserAdmin;
 
 /** List all users with filter - based on Ldif userAdmin */
 public class UsersView extends ViewPart implements ArgeoNames {
+       private final static Log log = LogFactory.getLog(UsersView.class);
        public final static String ID = SecurityAdminPlugin.PLUGIN_ID
                        + ".usersView";
 
        /* DEPENDENCY INJECTION */
        private UserAdmin userAdmin;
+       private UserTransaction userTransaction;
 
        // UI Objects
        private UserTableViewer userTableViewerCmp;
@@ -54,11 +60,11 @@ public class UsersView extends ViewPart implements ArgeoNames {
        public void createPartControl(Composite parent) {
                parent.setLayout(EclipseUiUtils.noSpaceGridLayout());
                // Define the displayed columns
-               columnDefs.add(new ColumnDefinition(new UserNameLP(),
-                               "Distinguished Name", 200));
                columnDefs.add(new ColumnDefinition(new CommonNameLP(), "Common Name",
                                150));
                columnDefs.add(new ColumnDefinition(new MailLP(), "E-mail", 150));
+               columnDefs.add(new ColumnDefinition(new UserNameLP(),
+                               "Distinguished Name", 300));
 
                // Create and configure the table
                userTableViewerCmp = new MyUserTableViewer(parent, SWT.MULTI
@@ -75,6 +81,13 @@ public class UsersView extends ViewPart implements ArgeoNames {
 
                // Really?
                userTableViewerCmp.refresh();
+
+//             try {
+//                     if (userTransaction != null)
+//                             userTransaction.begin();
+//             } catch (Exception e) {
+//                     throw new ArgeoException("Cannot begin transaction", e);
+//             }
        }
 
        private class MyUserTableViewer extends UserTableViewer {
@@ -102,10 +115,21 @@ public class UsersView extends ViewPart implements ArgeoNames {
                }
        }
 
+       public void refresh() {
+               userTableViewerCmp.refresh();
+       }
+
        // Override generic view methods
        @Override
        public void dispose() {
                super.dispose();
+               // try {
+               // if (userTransaction != null
+               // && userTransaction.getStatus() != Status.STATUS_NO_TRANSACTION)
+               // userTransaction.rollback();
+               // } catch (Exception e) {
+               // log.error("Cannot clean transaction", e);
+               // }
        }
 
        @Override
@@ -117,4 +141,9 @@ public class UsersView extends ViewPart implements ArgeoNames {
        public void setUserAdmin(UserAdmin userAdmin) {
                this.userAdmin = userAdmin;
        }
+
+       public void setUserTransaction(UserTransaction userTransaction) {
+               this.userTransaction = userTransaction;
+       }
+
 }
\ No newline at end of file