Introduce transaction in user admin UI.
[lgpl/argeo-commons.git] / org.argeo.security.ui.admin / src / org / argeo / security / ui / admin / editors / UserEditor.java
index 761f48b80f0d4292f3858f85fe1cffaad6245090..af6f5748e84a6c59c9d779bde6a23f852e28decd 100644 (file)
@@ -18,6 +18,8 @@ package org.argeo.security.ui.admin.editors;
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.transaction.UserTransaction;
+
 import org.argeo.ArgeoException;
 import org.argeo.security.ui.admin.SecurityAdminImages;
 import org.argeo.security.ui.admin.SecurityAdminPlugin;
@@ -41,6 +43,7 @@ public class UserEditor extends FormEditor implements UserAdminConstants {
 
        /* DEPENDENCY INJECTION */
        private UserAdmin userAdmin;
+       private UserTransaction userTransaction;
 
        // Context
        private User user;
@@ -116,6 +119,12 @@ public class UserEditor extends FormEditor implements UserAdminConstants {
        public void doSave(IProgressMonitor monitor) {
                commitPages(true);
                firePropertyChange(PROP_DIRTY);
+               // FIXME transaction should be managed at a higher level
+               try {
+                       userTransaction.commit();
+               } catch (Exception e) {
+                       throw new ArgeoException("Could not save user editor", e);
+               }
        }
 
        @Override
@@ -140,4 +149,9 @@ public class UserEditor extends FormEditor implements UserAdminConstants {
        public void setUserAdmin(UserAdmin userAdmin) {
                this.userAdmin = userAdmin;
        }
+
+       public void setUserTransaction(UserTransaction userTransaction) {
+               this.userTransaction = userTransaction;
+       }
+
 }
\ No newline at end of file