catch up with branch daily

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/org.eclipse.osbp.authentication.ui/META-INF/MANIFEST.MF b/org.eclipse.osbp.authentication.ui/META-INF/MANIFEST.MF
index c9ed54c..9dddb4f 100644
--- a/org.eclipse.osbp.authentication.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.authentication.ui/META-INF/MANIFEST.MF
@@ -120,7 +120,8 @@
  org.eclipse.osbp.vaaclipse.addons.app,
  org.eclipse.osbp.datainterchange.api;bundle-version="0.9.0",
  org.eclipse.osbp.vaaclipse.addons.common.api;bundle-version="0.9.0",
- org.eclipse.osbp.runtime.web.vaadin.common;bundle-version="0.9.0"
+ org.eclipse.osbp.runtime.web.vaadin.common;bundle-version="0.9.0",
+ joda-time
 Service-Component: OSGI-INF/*.xml
 Bundle-Activator: org.eclipse.osbp.authentication.ui.login.Activator
 Factory-Translations: 
diff --git a/org.eclipse.osbp.authentication.ui/OSGI-INF/org.eclipse.osbp.authentication.account.dialogs.UserAccountDialogEmbeddedContextFunction.xml b/org.eclipse.osbp.authentication.ui/OSGI-INF/org.eclipse.osbp.authentication.account.dialogs.UserAccountDialogContextFunction.xml
similarity index 82%
rename from org.eclipse.osbp.authentication.ui/OSGI-INF/org.eclipse.osbp.authentication.account.dialogs.UserAccountDialogEmbeddedContextFunction.xml
rename to org.eclipse.osbp.authentication.ui/OSGI-INF/org.eclipse.osbp.authentication.account.dialogs.UserAccountDialogContextFunction.xml
index 76f1cd9..4bb20f2 100644
--- a/org.eclipse.osbp.authentication.ui/OSGI-INF/org.eclipse.osbp.authentication.account.dialogs.UserAccountDialogEmbeddedContextFunction.xml
+++ b/org.eclipse.osbp.authentication.ui/OSGI-INF/org.eclipse.osbp.authentication.account.dialogs.UserAccountDialogContextFunction.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.authentication.account.dialogs.UserAccountDialogEmbeddedContextFunction">
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.authentication.account.dialogs.UserAccountDialogContextFunction">
    <property name="service.context.key" value="UserAccount"/>
    <service>
       <provide interface="org.eclipse.e4.core.contexts.IContextFunction"/>
    </service>
-   <implementation class="org.eclipse.osbp.authentication.account.dialogs.UserAccountDialogEmbeddedContextFunction"/>
+   <implementation class="org.eclipse.osbp.authentication.account.dialogs.UserAccountDialogContextFunction"/>
 </scr:component>
\ No newline at end of file
diff --git a/org.eclipse.osbp.authentication.ui/ecviews/org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAccount.ecview b/org.eclipse.osbp.authentication.ui/ecviews/org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAccount.ecview
index 4329eda..8ae0dde 100644
--- a/org.eclipse.osbp.authentication.ui/ecviews/org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAccount.ecview
+++ b/org.eclipse.osbp.authentication.ui/ecviews/org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAccount.ecview
@@ -4,15 +4,23 @@
     <elements xsi:type="model:YStrategyLayout" id="strategyLayout">
       <suspects xsi:type="model:YTypedSuspect" id="org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAccount.org.eclipse.osbp.authentication.account.dtos.UserAccountDto.email" authorizationGroup="org.eclipse.osbp.authentication.account.dtos.UserAccountDto" authorizationId="email" labelI18nKey="email" label="email" typeQualifiedName="java.lang.String" type="java.lang.String">
         <tags>text</tags>
+        <tags>unique</tags>
+        <properties key="class" value="org.eclipse.osbp.authentication.account.dtos.UserAccountDto"/>
+        <properties key="name" value="email"/>
         <valueBindingEndpoints xsi:type="binding:YDetailValueBindingEndpoint" propertyPath="email" type="org.eclipse.osbp.authentication.account.dtos.UserAccountDto">
           <masterObservable xsi:type="core:YBeanSlotValueBindingEndpoint" attributePath="value" beanSlot="//@beanSlots.0"/>
         </valueBindingEndpoints>
+        <containerValueBindingEndpoint xsi:type="core:YBeanSlotValueBindingEndpoint" attributePath="value" beanSlot="//@beanSlots.0"/>
       </suspects>
       <suspects xsi:type="model:YTypedSuspect" id="org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAccount.org.eclipse.osbp.authentication.account.dtos.UserAccountDto.userName" authorizationGroup="org.eclipse.osbp.authentication.account.dtos.UserAccountDto" authorizationId="userName" labelI18nKey="userName" label="userName" typeQualifiedName="java.lang.String" type="java.lang.String">
         <tags>text</tags>
+        <tags>unique</tags>
+        <properties key="class" value="org.eclipse.osbp.authentication.account.dtos.UserAccountDto"/>
+        <properties key="name" value="userName"/>
         <valueBindingEndpoints xsi:type="binding:YDetailValueBindingEndpoint" propertyPath="userName" type="org.eclipse.osbp.authentication.account.dtos.UserAccountDto">
           <masterObservable xsi:type="core:YBeanSlotValueBindingEndpoint" attributePath="value" beanSlot="//@beanSlots.0"/>
         </valueBindingEndpoints>
+        <containerValueBindingEndpoint xsi:type="core:YBeanSlotValueBindingEndpoint" attributePath="value" beanSlot="//@beanSlots.0"/>
       </suspects>
       <suspects xsi:type="model:YTypedSuspect" id="org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAccount.org.eclipse.osbp.authentication.account.dtos.UserAccountDto.extraPassword" authorizationGroup="org.eclipse.osbp.authentication.account.dtos.UserAccountDto" authorizationId="extraPassword" labelI18nKey="extraPassword" label="extraPassword" typeQualifiedName="java.lang.String" type="java.lang.String">
         <tags>text</tags>
diff --git a/org.eclipse.osbp.authentication.ui/ecviews/org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAdministration.ecview b/org.eclipse.osbp.authentication.ui/ecviews/org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAdministration.ecview
index a8b15c6..5e17f41 100644
--- a/org.eclipse.osbp.authentication.ui/ecviews/org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAdministration.ecview
+++ b/org.eclipse.osbp.authentication.ui/ecviews/org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAdministration.ecview
@@ -4,15 +4,23 @@
     <elements xsi:type="model:YStrategyLayout" id="strategyLayout">
       <suspects xsi:type="model:YTypedSuspect" id="org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAdministration.org.eclipse.osbp.authentication.account.dtos.UserAccountDto.email" authorizationGroup="org.eclipse.osbp.authentication.account.dtos.UserAccountDto" authorizationId="email" labelI18nKey="email" label="email" typeQualifiedName="java.lang.String" type="java.lang.String">
         <tags>text</tags>
+        <tags>unique</tags>
+        <properties key="class" value="org.eclipse.osbp.authentication.account.dtos.UserAccountDto"/>
+        <properties key="name" value="email"/>
         <valueBindingEndpoints xsi:type="binding:YDetailValueBindingEndpoint" propertyPath="email" type="org.eclipse.osbp.authentication.account.dtos.UserAccountDto">
           <masterObservable xsi:type="core:YBeanSlotValueBindingEndpoint" attributePath="value" beanSlot="//@beanSlots.0"/>
         </valueBindingEndpoints>
+        <containerValueBindingEndpoint xsi:type="core:YBeanSlotValueBindingEndpoint" attributePath="value" beanSlot="//@beanSlots.0"/>
       </suspects>
       <suspects xsi:type="model:YTypedSuspect" id="org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAdministration.org.eclipse.osbp.authentication.account.dtos.UserAccountDto.userName" authorizationGroup="org.eclipse.osbp.authentication.account.dtos.UserAccountDto" authorizationId="userName" labelI18nKey="userName" label="userName" typeQualifiedName="java.lang.String" type="java.lang.String">
         <tags>text</tags>
+        <tags>unique</tags>
+        <properties key="class" value="org.eclipse.osbp.authentication.account.dtos.UserAccountDto"/>
+        <properties key="name" value="userName"/>
         <valueBindingEndpoints xsi:type="binding:YDetailValueBindingEndpoint" propertyPath="userName" type="org.eclipse.osbp.authentication.account.dtos.UserAccountDto">
           <masterObservable xsi:type="core:YBeanSlotValueBindingEndpoint" attributePath="value" beanSlot="//@beanSlots.0"/>
         </valueBindingEndpoints>
+        <containerValueBindingEndpoint xsi:type="core:YBeanSlotValueBindingEndpoint" attributePath="value" beanSlot="//@beanSlots.0"/>
       </suspects>
       <suspects xsi:type="model:YTypedSuspect" id="org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAdministration.org.eclipse.osbp.authentication.account.dtos.UserAccountDto.extraPassword" authorizationGroup="org.eclipse.osbp.authentication.account.dtos.UserAccountDto" authorizationId="extraPassword" labelI18nKey="extraPassword" label="extraPassword" typeQualifiedName="java.lang.String" type="java.lang.String">
         <tags>text</tags>
diff --git a/org.eclipse.osbp.authentication.ui/i18n/I18N.properties b/org.eclipse.osbp.authentication.ui/i18n/I18N.properties
index 7dc8cc1..8ee55ce 100644
--- a/org.eclipse.osbp.authentication.ui/i18n/I18N.properties
+++ b/org.eclipse.osbp.authentication.ui/i18n/I18N.properties
@@ -45,7 +45,7 @@
 new_password_success_message=New password was successfully saved.
 new_password_tip=Enter your new password
 new_password_verifying_is_empty=Please fill the verifying new password!
-not_registered_message=You are not registered yet! Please wait until you received the registered notification!
+not_registered_message=You are not registered yet. Please wait until you received the registered notification.
 ok=ok
 old_password=Old password
 old_password_is_empty_message=Please fill the old password!
@@ -65,8 +65,8 @@
 perspective_na=perspective_na
 register_caption=REGISTRATION
 register_new_user=Register
+register_new_user_tip=If this is the first time to work with the system, you must provide some personal data so the Administrator can create an account for you. After successful registration process, you can use the sign-in button the next time.
 register_password_is_empty_message=Please fill both password fields with your desired password! 
-register_tip=If this is the first time to work with the system, you must provide some personal data so the Administrator can create an account for you. After successful registration process, you can use the sign-in button the next time.
 register_username_already_exists=User name already exists! Its registration is not possible!
 register_username_is_empty_message=Please fill the username to register! 
 registration_success_message=The administrator will contact you as soon as your registration was completed.
@@ -101,7 +101,7 @@
 user_administration=user_administration
 user_exist_message=User already exists!
 username=Username
-username_tip=Enter your name
+username_tip=Enter your user name
 users=users
 validation_report=validation_report
 version=Version
diff --git a/org.eclipse.osbp.authentication.ui/i18n/I18N_de.properties b/org.eclipse.osbp.authentication.ui/i18n/I18N_de.properties
index a101d22..1fa155e 100644
--- a/org.eclipse.osbp.authentication.ui/i18n/I18N_de.properties
+++ b/org.eclipse.osbp.authentication.ui/i18n/I18N_de.properties
@@ -46,7 +46,7 @@
 new_password_success_message=Das neue Passwort wurde erfolgreich gespeichert.
 new_password_tip=Geben Sie Ihr neues Passwort ein
 new_password_verifying_is_empty=Bitte geben Sie Ihr neues Passwort zur Best\u00E4tigung ein!
-not_registered_message=Sie sind immer noch nicht registriert! Bitte warten Sie auf die Nachricht Ihrer erfolgreichen Registrierung.
+not_registered_message=Die Registrierung ist nicht abgeschlossen! Bitte warten Sie auf die Nachricht Ihrer erfolgreichen Registrierung.
 ok=Ok
 old_password=Altes Passwort
 old_password_is_empty_message=Geben Sie bitte Ihr altes Passwort ein!
@@ -68,8 +68,8 @@
 perspective_na=Perspective nicht gefunden
 register_caption=REGISTRIERUNG
 register_new_user=Registrieren
+register_new_user_tip=Wenn dies Ihr erstes Mal am System ist, m\u00FCssen Sie einige pers\u00F6nliche Daten angeben, damit der Administrator ein Konto f\u00FCr Sie einrichten kann. Nach der erfolgreichen Registrierung k\u00F6nnen Sie sich am System anmelden.
 register_password_is_empty_message=Bitte geben Sie in beiden Passwortfeldern das gew\u00FCnsche Passwort ein! 
-register_tip=Wenn dies Ihr erstes Mal am System ist, m\u00FCssen Sie einige pers\u00F6nliche Daten angeben, damit der Administrator ein Konto f\u00FCr Sie einrichten kann. Nach der erfolgreichen Registrierung k\u00F6nnen Sie sich am System anmelden.
 register_username_already_exists=Benutzername ist bereits vorhanden! Registrierung nicht m\u00F6glich!
 register_username_is_empty_message=Bitte geben Sie ein Benutzernamen zur Registrierung ein!
 registration_success_message=Sie werden vom Administrator kontaktiert, sobald Ihre Registrierung abgeschlossen ist.
diff --git a/org.eclipse.osbp.authentication.ui/i18n/I18N_de_AT.properties b/org.eclipse.osbp.authentication.ui/i18n/I18N_de_AT.properties
deleted file mode 100644
index 3f64431..0000000
--- a/org.eclipse.osbp.authentication.ui/i18n/I18N_de_AT.properties
+++ /dev/null
@@ -1 +0,0 @@
-#Generated by Eclipse Messages Editor (Eclipse Babel)
diff --git a/org.eclipse.osbp.authentication.ui/i18n/I18N_en.properties b/org.eclipse.osbp.authentication.ui/i18n/I18N_en.properties
index 1732f2d..5c747fc 100644
--- a/org.eclipse.osbp.authentication.ui/i18n/I18N_en.properties
+++ b/org.eclipse.osbp.authentication.ui/i18n/I18N_en.properties
@@ -45,7 +45,7 @@
 new_password_success_message=New password was successfully saved.
 new_password_tip=Enter your new password
 new_password_verifying_is_empty=Please fill the verifying new password!
-not_registered_message=You are not registered yet! Please wait until you received the registered notification!
+not_registered_message=The registration process is not completed yet! Please wait until you received the registered notification!
 ok=Ok
 old_password=Old password
 old_password_is_empty_message=Please fill the old password!
@@ -65,8 +65,8 @@
 perspective_na=Perspective not available
 register_caption=REGISTRATION
 register_new_user=Register
+register_new_user_tip=If this is the first time to work with the system, you must provide some personal data so the Administrator can create an account for you. After successful registration process, you can use the sign-in button the next time.
 register_password_is_empty_message=Please fill both password fields with your desired password!
-register_tip=If this is the first time to work with the system, you must provide some personal data so the Administrator can create an account for you. After successful registration process, you can use the sign-in button the next time.
 register_username_already_exists=User name already exists! Registration is not possible!
 register_username_is_empty_message=Please fill the username to register!
 registration_success_message=The administrator will contact you as soon as your registration was completed.
@@ -101,7 +101,7 @@
 user_administration=User administration
 user_exist_message=User already exists!
 username=Username
-username_tip=Enter your name
+username_tip=Enter your user name
 users=Users
 validation_report=Validation report
 version=Version
diff --git a/org.eclipse.osbp.authentication.ui/i18n/I18N_en_US.properties b/org.eclipse.osbp.authentication.ui/i18n/I18N_en_US.properties
deleted file mode 100644
index 3f64431..0000000
--- a/org.eclipse.osbp.authentication.ui/i18n/I18N_en_US.properties
+++ /dev/null
@@ -1 +0,0 @@
-#Generated by Eclipse Messages Editor (Eclipse Babel)
diff --git a/org.eclipse.osbp.authentication.ui/i18n/I18N_fr.properties b/org.eclipse.osbp.authentication.ui/i18n/I18N_fr.properties
index 72f7b49..2916b6b 100644
--- a/org.eclipse.osbp.authentication.ui/i18n/I18N_fr.properties
+++ b/org.eclipse.osbp.authentication.ui/i18n/I18N_fr.properties
@@ -1,23 +1,108 @@
 #fr
+all_accounts=All accounts
+bundle_symbolic_name=Bundle symbolic name
+cancel=Cancel
+cancel_item=Cancel item
+cancel_newPassword_tip=Cancels the new password process and steps back to login.
+cancel_register_tip=Cancels the registration and steps back to login.
+clear_filter=Clear filter
+close=Close
 copyright=Copyright 2012-
-disabledmessage=For security reasons your account was disabled. Contact your administrator to enable your account.
+create_new_item=Create new item
+created_at=Created at
+created_by=Created by
+creator_class=Creator class
+database_info=Database info
+delete_item=Delete item
+disabledmessage=This account is not yet enabled. Contact your administrator to enable your account.
+edit_account=Edit account
+email_is_empty_message=Please fill the email address!
+email_is_incorrect_message=Email is incorrect!
+email_password_reset_body=Please find your new password here.\\nYou have to change it with your next login!\\n\\nYour new password is: {0}
+email_password_reset_subject=Your password has been reset. Please find your new password in the message.
+end_date=End date
+equal_to=Equal to
 failedmessage=L'utilisateur est inconnu ou le mot de passe est non valide. S'il vous pla\u00EEt essaiez encore une fois ou pressez le bouton \"Mot de passe oubli\u00E9\" pour recevoir un nouveau.
+field_name=Field name
 forgot_password=Mot de passe oubli\u00E9 ?
-forgot_password_tip=Si vous pressez ce bouton, vous verrez recevoir un courrier \u00E9lectronique pour avoir la possibilit\u00E9 de remettre votre mot de passe.
+forgot_password_tip=En cliquant sur ce bouton, vous recevrez un courriel vous permettant de changer votre mot de passe.
+greater_than=Greater than
+groups=Groups
+information=Information
+items_per_page=Items per page
+lesser_than=Lesser than
 lockedmessage=Due to too many failed login attempts your account was locked for security reasons. Contact your administrator to unlock your account.
 login_caption=LOGIN
-login_caption_tip=Vous \u00EAtes forcer d'identifier \u00E0 syst\u00E8me avant vous pouvez utilizer la fonctionnalit\u00E9 provisionn\u00E9e. 
+login_caption_tip=Vous devez vous identifier pour avoir acc\u00E8s \u00E0 l\u2019application.
+message=Message
+message_code=Message code
+message_path=Message path
+new_item=New item
+new_password=New password
+new_password_caption=CHANGE TO NEW PASSWORD
+new_password_caption_tip=Change your old password to a new one.
+new_password_is_empty=Please fill the new password!
+new_password_success_message=New password was successfully saved.
+new_password_tip=Enter your new password
+new_password_verifying_is_empty=Please fill the verifying new password!
+not_registered_message=Vous n'\uFFFDtes pas encore inscrit. Veuillez patienter jusqu'\uFFFD ce que vous ayez re\uFFFDu la notification enregistr\uFFFDe.
+ok=Ok
+old_password=Old password
+old_password_is_empty_message=Please fill the old password!
+old_password_is_wrong=Please fill the correct old password!
+old_password_tip=Enter your old password
+page=Page
+part_name=Part name
 password=Mot de passe
+password_is_empty=Please fill the password!
 password_reset=R\u00E9initialiser le mot de passe
-password_tip=Saisirez votre mot de passe
+password_reset_success_message=Password successfully reset!
+password_tip=Saisissez votre mot de passe
+password_verifying_is_empty=Please repeat your new password!
+password_verifying_tip=Enter your verify password here!
+passwords_not_equal=The passwords are not equal!
 perspective_na=Perspective non disponible
+register_caption=REGISTRATION
 register_new_user=Enregistrer
-register_tip=Si vous travaillez avec le syst\u00E8me la premiere fois, il faut donner quelques donn\u00E9es personelles pour que l'Administrateur peut installer un compte d'utilisateur pour vous. Apr\u00E8s l'enregistration r\u00E9ussi, vous \u00EAtez en \u00E9tat de connexer avec le syst\u00E8me la prochaine fois.  
+register_new_user_tip=Si vous travaillez avec le syst\u00E8me la premiere fois, il faut donner quelques donn\u00E9es personelles pour que l'Administrateur peut installer un compte d'utilisateur pour vous. Apr\u00E8s l'enregistration r\u00E9ussi, vous \u00EAtez en \u00E9tat de connexer avec le syst\u00E8me la prochaine fois.  
+register_password_is_empty_message=Please fill both password fields with your desired password!
+register_username_already_exists=User name already exists! Registration is not possible!
+register_username_is_empty_message=Please fill the username to register!
+registration_success_message=The administrator will contact you as soon as your registration was completed.
 remember_me=Garder ma session active
-remember_me_tip=Posez ce crochet quand vous voulez connexier avec le syst\u00E8me automaticallement la prochaine fois. 
-sign_in=Connexion
-sign_in_tip=Si votre nom et mot de passe est valide, vous deveniez connexer avec le syst\u00E8me et d\u00E9verrouiller correspondant \u00E0 votre autorisation.
+remember_me_tip=Cochez cette case si vous voulez que le syst\u00E8me vous reconnecte automatiquement la prochaine fois.
+reset=Reset
+save=Save
+save_and_new=Save and new
+save_as=Save as
+save_as_new=Save as new
+save_item=Save item
+save_tip=Saves the change.
+saved=Saved
+savedandnew=Savedandnew
+savedas=Savedas
+security_message=Security message
+servicemissing=JPA service for authentication is missing! Please contact your administrator!
+set_filter=Set filter
+severity=Severity
+show_all=Show all
+sign_in=Sign In
+sign_in_tip=Si vos noms et mots de passe sont corrects, vous serez connect\u00E9 \u00E0 l\u2019application avec les autorisations correspondant \u00E0 votre profil.
+start_date=Start date
+too_many_users=More than one user with the same user name found.
+toolbar_for_dialogs=Toolbar for dialogs
+trademark=OS.bee is a Registered Trademark of Loetz GmbH&Co.KG.
+undo_changes=Undo changes
+unknown=Unknown
+updated_at=Updated at
+updated_by=Updated by
+user_account=User account
+user_administration=User administration
+user_exist_message=User already exists!
 username=Utilisateur
-username_tip=Saisirez votre nom
+username_tip=Saisissez votre nom d\u2019utilisateur
+users=Users
+validation_report=Validation report
 version=Version
 wait_init=Patientez vous pour l'initialisation s.v.p.
+x=X
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/DeleteItemAction.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/DeleteItemAction.java
index d018cf5..36ce885 100644
--- a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/DeleteItemAction.java
+++ b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/DeleteItemAction.java
@@ -114,6 +114,9 @@
     	return false;
     }
     Object dto = viewContext.getBean(IViewContext.MAIN_BEAN_SLOT);
+    if (dto == null) {
+    	return false;
+    }
     boolean result1 = !(boolean) ContextInjectionFactory.invoke(dialog, IsNew.class, eclipseContext);
     boolean result2 = (boolean) ContextInjectionFactory.invoke(dialog, IsPositioned.class, eclipseContext);
     boolean result3 = true;
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/DialogToolbar.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/DialogToolbar.java
index 2e1989e..d205ef7 100644
--- a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/DialogToolbar.java
+++ b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/DialogToolbar.java
@@ -95,9 +95,8 @@
 
 @SuppressWarnings("all")
 public class DialogToolbar implements IToolbarAction {
-  public DialogToolbar(final String uuid) {
+  public DialogToolbar() {
     super();
-    this.uuid = uuid;
   }
   
   private static Logger log = org.slf4j.LoggerFactory.getLogger("toolbar");
@@ -109,7 +108,8 @@
   private String stateLabelUUID;
   
   @Override
-  public void createToolbar(final IEclipseContext eclipseContext, final IPresentationEngine renderingEngine, final IThemeResourceService themeResourceService) {
+  public void createToolbar(final IEclipseContext eclipseContext, final IPresentationEngine renderingEngine, final IThemeResourceService themeResourceService, final String uuid) {
+    this.uuid = uuid;
     MenuFactoryImpl factory = MenuFactoryImpl.eINSTANCE;
     MHandledToolItem toolItem = null;
     MToolBarSeparator separator = null;
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/NewItemAction.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/NewItemAction.java
index edffea2..e4aa0b7 100644
--- a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/NewItemAction.java
+++ b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/NewItemAction.java
@@ -114,6 +114,9 @@
     	return false;
     }
     Object dto = viewContext.getBean(IViewContext.MAIN_BEAN_SLOT);
+    if (dto == null) {
+    	return false;
+    }
     boolean result = !(boolean) ContextInjectionFactory.invoke(dialog, IsDirty.class, eclipseContext);
     boolean result2 = true;
     if( result ) {
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/SaveAndNewAction.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/SaveAndNewAction.java
index 9462a2c..54997fb 100644
--- a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/SaveAndNewAction.java
+++ b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/SaveAndNewAction.java
@@ -114,6 +114,9 @@
     	return false;
     }
     Object dto = viewContext.getBean(IViewContext.MAIN_BEAN_SLOT);
+    if (dto == null) {
+    	return false;
+    }
     boolean result1 = (boolean) ContextInjectionFactory.invoke(dialog, IsValid.class, eclipseContext);
     boolean result2 = (boolean) ContextInjectionFactory.invoke(dialog, IsDirty.class, eclipseContext);
     boolean result3 = true;
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/SaveAsNewAction.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/SaveAsNewAction.java
index 4c5d424..1e3a5ba 100644
--- a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/SaveAsNewAction.java
+++ b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/SaveAsNewAction.java
@@ -114,6 +114,9 @@
     	return false;
     }
     Object dto = viewContext.getBean(IViewContext.MAIN_BEAN_SLOT);
+    if (dto == null) {
+    	return false;
+    }
     boolean result1 = (boolean) ContextInjectionFactory.invoke(dialog, IsValid.class, eclipseContext);
     boolean result2 = (boolean) ContextInjectionFactory.invoke(dialog, IsDirty.class, eclipseContext);
     boolean result3 = true;
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/SaveItemAction.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/SaveItemAction.java
index f60ca05..af5e61a 100644
--- a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/SaveItemAction.java
+++ b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/actions/SaveItemAction.java
@@ -114,6 +114,9 @@
     	return false;
     }
     Object dto = viewContext.getBean(IViewContext.MAIN_BEAN_SLOT);
+    if (dto == null) {
+    	return false;
+    }
     boolean result1 = (boolean) ContextInjectionFactory.invoke(dialog, IsValid.class, eclipseContext);
     boolean result2 = (boolean) ContextInjectionFactory.invoke(dialog, IsDirty.class, eclipseContext);
     boolean result3 = true;
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/datamarts/DatamartsServiceBinder.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/datamarts/DatamartsServiceBinder.java
index 563fb4b..a62bcdf 100644
--- a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/datamarts/DatamartsServiceBinder.java
+++ b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/datamarts/DatamartsServiceBinder.java
@@ -17,6 +17,7 @@
 import java.sql.DriverManager;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.sql.Statement;
 import java.sql.Timestamp;
 import java.util.HashMap;
 import java.util.List;
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/datamarts/DatamartsTestClass.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/datamarts/DatamartsTestClass.java
index db5615e..f451e7e 100644
--- a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/datamarts/DatamartsTestClass.java
+++ b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/datamarts/DatamartsTestClass.java
@@ -17,6 +17,7 @@
 import java.sql.DriverManager;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.sql.Statement;
 import java.sql.Timestamp;
 import java.util.HashMap;
 import java.util.List;
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/datamarts/UserAccountDatamart.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/datamarts/UserAccountDatamart.java
index 9349b87..761c1c8 100644
--- a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/datamarts/UserAccountDatamart.java
+++ b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/datamarts/UserAccountDatamart.java
@@ -7,6 +7,7 @@
 import java.sql.DriverManager;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.sql.Statement;
 import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -57,21 +58,21 @@
   
   private Map<Integer, ArrayList<String>> axisMap = new HashMap<Integer,ArrayList<String>>() {{
     		put(0,new ArrayList<String>() {{
-    		add("position");
     		add("userName");
-    		add("notRegistered");
     		add("email");
+    		add("position");
     		add("profileimage");
+    		add("notRegistered");
     		add("__UserAccount__ID__");
     		}});
     }};
   
   private Map<String, String> aliasMap = new HashMap<String,String>() {{
-    	put("position","org.eclipse.osbp.authentication.account.entities.UserAccount.position");
     	put("userName","org.eclipse.osbp.authentication.account.entities.UserAccount.userName");
-    	put("notRegistered","org.eclipse.osbp.authentication.account.entities.UserAccount.notRegistered");
     	put("email","org.eclipse.osbp.authentication.account.entities.UserAccount.email");
+    	put("position","org.eclipse.osbp.authentication.account.entities.UserAccount.position");
     	put("profileimage","org.eclipse.osbp.authentication.account.entities.UserAccount.profileimage");
+    	put("notRegistered","org.eclipse.osbp.authentication.account.entities.UserAccount.notRegistered");
     }};
   
   private Map<String, IDataMart.AttributeVisibility> hiddenMap = new HashMap<String,AttributeVisibility>() {{
@@ -86,11 +87,11 @@
     }};
   
   private Map<String, IDataMart.EType> typesMap = new HashMap<String,EType>() {{
+    	put("UserAccount.userName", EType.STRING);
+    	put("UserAccount.email", EType.STRING);
     	put("UserAccount.position", EType.STRING);
     	put("UserAccount.profileimage", EType.BLOPMAPPING);
     	put("UserAccount.notRegistered", EType.BOOLEAN);
-    	put("UserAccount.userName", EType.STRING);
-    	put("UserAccount.email", EType.STRING);
     }};
   
   private Map<String, String> typesProp = new HashMap<String, String>() {{
@@ -99,6 +100,8 @@
   
   private Map<String, String> resultAttributes = new HashMap<String,String>();
   
+  private boolean moreToLoad = false;
+  
   public Map<String, IDataMart.EType> getIdMap() {
     return this.idMap;
   }
@@ -133,7 +136,7 @@
   
   protected ArrayList<DatamartFilter> initializeFilterMap() {
     return new ArrayList<DatamartFilter>() {{
-    add(new DatamartFilter(org.eclipse.osbp.authentication.account.datamarts.DatamartsServiceBinder.getDSLMetadataService(), user, DatamartFilter.FilterType.BY_ID, "UserAccount.id","", false));
+    add(new DatamartFilter(org.eclipse.osbp.authentication.account.datamarts.DatamartsServiceBinder.getDSLMetadataService(), user, DatamartFilter.FilterType.BY_ID, "UserAccount.id", "UserAccount.id","", false));
     }};
     
   }
@@ -167,7 +170,6 @@
     if (connection == null) {   			
     	try {
     		connection = org.eclipse.osbp.authentication.account.datamarts.DatamartsServiceBinder.getPersistenceService().getPersistenceUnitConnection(getPersistenceUnit());
-    		org.eclipse.osbp.authentication.account.datamarts.DatamartsServiceBinder.getPersistenceService().registerPersistenceUnit(getPersistenceUnit(), org.eclipse.osbp.authentication.account.entities.UserAccount.class);
     	} catch (SQLException e) {
     		log.error("{}", e);
     		return (connection);
@@ -187,6 +189,10 @@
     }
   }
   
+  public boolean isMoreToLoad() {
+    return moreToLoad;
+  }
+  
   public String insertCondition(final String filteredStatement, final String condition) {
     int index = filteredStatement.indexOf("order by");
     if(index > -1) {
@@ -295,21 +301,37 @@
     return filteredStatement;
   }
   
-  public DerivedCellSet getResults(final Class operativeDtoClass, final List<IDto> operativeDtos) {
+  public DerivedCellSet getResults() {
+    return getResults(false, null, null);
+  }
+  
+  public DerivedCellSet getResults(final boolean limited, final Class operativeDtoClass, final List<IDto> operativeDtos) {
     SqlCellSet cellSet = null;
     java.sql.ResultSetMetaData metaData = null;
     connect();
     if (connection != null) {
     	String query = applyFilters();
     	if (query.length()>0) {
-    		try (ResultSet rs = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY).executeQuery(query)){
-    			cellSet = new SqlCellSet(rs, getAxisMap(), getIdMap(), getAliasMap(), getHiddenMap(), datamartDtoMapper, operativeDtoClass, operativeDtos, getPrimaryList(), org.eclipse.osbp.authentication.account.datamarts.DatamartsServiceBinder.getUserAccessService());
-    			registerFirstLine(rs, user);
-    			metaData = rs.getMetaData();
-    			disconnect();
-    			return (new DerivedCellSet(cellSet,
-    				metaData,
-    				org.eclipse.osbp.authentication.account.datamarts.DatamartsServiceBinder.getDSLMetadataService(), user));
+    		try {
+    			log.debug("statement:{} limited:{}", query, limited);
+    			Statement stmt = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
+    			if(limited) {
+    				stmt.setMaxRows(500);
+    				stmt.setFetchSize(500);
+    			}
+    			ResultSet rs = stmt.executeQuery(query);
+    			if(!rs.isClosed()) {
+    				metaData = rs.getMetaData();
+    				cellSet = new SqlCellSet(rs, metaData, user, resultAttributes, getAxisMap(), getIdMap(), getAliasMap(), getHiddenMap(), datamartDtoMapper, operativeDtoClass, operativeDtos, getPrimaryList(), org.eclipse.osbp.authentication.account.datamarts.DatamartsServiceBinder.getUserAccessService());
+    				moreToLoad = false;
+    				if(limited && cellSet.getFetchedRows() == 500) {
+    					moreToLoad = true;
+    				}
+    				disconnect();
+    				return (new DerivedCellSet(cellSet,
+    					metaData,
+    					org.eclipse.osbp.authentication.account.datamarts.DatamartsServiceBinder.getDSLMetadataService(), user));
+    			}
     		}
     		catch (java.sql.SQLException e) {
     			log.error("Statement: {}  error {}", query, e);
@@ -320,60 +342,9 @@
     return null;
   }
   
-  public void registerFirstLine(final ResultSet rs, final IUser user) throws SQLException {
-    if (rs != null && !rs.isClosed() && rs.first()) {
-    	for (int column = 1; column <= rs.getMetaData().getColumnCount(); column++) {
-    		int type = rs.getMetaData().getColumnType(column);
-    		switch (type) {
-    		case java.sql.Types.DATE:
-    			if(rs.getDate(column) != null) {
-    				if (user == null) {
-    					resultAttributes.put(rs.getMetaData().getColumnName(column), rs.getDate(column).toString());
-    				} else {
-    					resultAttributes.put(rs.getMetaData().getColumnName(column),
-    							SimpleDateFormatter.getFormat("LONGDATE", user.getLocale()).format(rs.getDate(column)));
-    				}
-    			}
-    			break;
-    		case java.sql.Types.TIMESTAMP:
-    			if(rs.getTimestamp(column) != null) {
-    				if (user == null) {
-    					resultAttributes.put(rs.getMetaData().getColumnName(column), rs.getTimestamp(column).toString());
-    				} else {
-    					resultAttributes.put(rs.getMetaData().getColumnName(column), SimpleDateFormatter
-    							.getFormat("LONGDATE", user.getLocale()).format(rs.getTimestamp(column)));
-    				}
-    			}
-    			break;
-    		case java.sql.Types.DECIMAL:
-    			if(rs.getBigDecimal(column) != null) {
-    				resultAttributes.put(rs.getMetaData().getColumnName(column),
-    					rs.getBigDecimal(column).toPlainString());
-    			}
-    			break;
-    		case java.sql.Types.NUMERIC:
-    		case java.sql.Types.DOUBLE:
-    			resultAttributes.put(rs.getMetaData().getColumnName(column), Double.toString(rs.getDouble(column)));
-    			break;
-    		case java.sql.Types.FLOAT:
-    			resultAttributes.put(rs.getMetaData().getColumnName(column), Float.toString(rs.getFloat(column)));
-    			break;
-    		case java.sql.Types.CHAR:
-    		case java.sql.Types.NCHAR:
-    		case java.sql.Types.NVARCHAR:
-    		case java.sql.Types.VARCHAR:
-    		case java.sql.Types.LONGVARCHAR:
-    			resultAttributes.put(rs.getMetaData().getColumnName(column), rs.getString(column));
-    			break;
-    		}
-    	}
-    }
-    
-  }
-  
   @Test
   public void TestUserAccount() {
     renderFilters();
-    org.junit.Assert.assertNotNull(getResults(null, null));
+    org.junit.Assert.assertNotNull(getResults(true, null, null));
   }
 }
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/DialogsServiceBinder.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/DialogsServiceBinder.java
index 97a8efd..5043350 100644
--- a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/DialogsServiceBinder.java
+++ b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/DialogsServiceBinder.java
@@ -1,74 +1,32 @@
 package org.eclipse.osbp.authentication.account.dialogs;
 
 import com.vaadin.ui.ComponentContainer;
-import com.vaadin.ui.Label;
-import com.vaadin.ui.Notification;
-import com.vaadin.ui.Notification.Type;
-import com.vaadin.ui.UI;
 import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.ResourceBundle;
-import java.util.Set;
-import java.util.UUID;
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.BeansObservables;
 import org.eclipse.e4.core.contexts.ContextInjectionFactory;
 import org.eclipse.e4.ui.model.application.MApplication;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.osbp.blob.component.BlobConverter;
 import org.eclipse.osbp.core.api.persistence.IPersistenceService;
 import org.eclipse.osbp.dsl.dto.lib.impl.DtoServiceAccess;
-import org.eclipse.osbp.ecview.core.common.context.ContextException;
 import org.eclipse.osbp.ecview.core.common.context.IConfiguration;
 import org.eclipse.osbp.ecview.core.common.context.IContext;
 import org.eclipse.osbp.ecview.core.common.context.IViewContext;
-import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
-import org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy;
-import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
-import org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint;
-import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
-import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
-import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
 import org.eclipse.osbp.ecview.core.common.model.core.YView;
-import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityFactory;
-import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
-import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
-import org.eclipse.osbp.ecview.extension.api.ILayoutingStrategyProvider;
-import org.eclipse.osbp.ecview.extension.model.YStrategyLayout;
-import org.eclipse.osbp.ecview.extension.strategy.DefaultLayoutingStrategyProvider;
-import org.eclipse.osbp.ecview.extension.strategy.FormLayoutLayoutingStrategy;
-import org.eclipse.osbp.ecview.xtext.builder.participant.IECViewAddonsMetadataService;
 import org.eclipse.osbp.eventbroker.EventBrokerMsg;
-import org.eclipse.osbp.runtime.common.filter.IDTOService;
 import org.eclipse.osbp.runtime.common.i18n.II18nService;
 import org.eclipse.osbp.runtime.web.ecview.presentation.vaadin.VaadinRenderer;
-import org.eclipse.osbp.runtime.web.vaadin.databinding.VaadinObservables;
 import org.eclipse.osbp.ui.api.contextfunction.IViewEmbeddedProvider;
-import org.eclipse.osbp.ui.api.customfields.IBlobConverter;
-import org.eclipse.osbp.ui.api.e4.IE4Dialog;
 import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
 import org.eclipse.osbp.ui.api.report.IReportProvider;
 import org.eclipse.osbp.ui.api.statemachine.IDataProvider;
 import org.eclipse.osbp.ui.api.statemachine.IStateMachine;
 import org.eclipse.osbp.ui.api.statemachine.IStateMachineParticipant;
 import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
-import org.eclipse.osbp.ui.api.themes.IThemeResourceService.ThemeResourceType;
-import org.eclipse.osbp.ui.api.user.IUser;
 import org.eclipse.osbp.ui.api.useraccess.IUserAccessService;
-import org.eclipse.osbp.utils.vaadin.SelectDialog;
-import org.eclipse.osbp.xtext.dialogdsl.common.AbstractMobileView;
-import org.osgi.framework.FrameworkUtil;
+import org.eclipse.osbp.xtext.dialogdsl.DialogDSLPackage;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.component.annotations.ReferenceCardinality;
 import org.osgi.service.component.annotations.ReferencePolicy;
-import org.osgi.service.event.Event;
-import org.osgi.service.event.EventHandler;
-import org.osgi.util.tracker.ServiceTracker;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/UserAccountDialogContextFunction.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/UserAccountDialogContextFunction.java
new file mode 100644
index 0000000..0fdcdb9
--- /dev/null
+++ b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/UserAccountDialogContextFunction.java
@@ -0,0 +1,42 @@
+package org.eclipse.osbp.authentication.account.dialogs;
+
+import com.vaadin.ui.ComponentContainer;
+import java.util.HashMap;
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.core.contexts.IContextFunction;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.ui.model.application.MApplication;
+import org.eclipse.osbp.blob.component.BlobConverter;
+import org.eclipse.osbp.dsl.dto.lib.impl.DtoServiceAccess;
+import org.eclipse.osbp.ecview.core.common.context.IConfiguration;
+import org.eclipse.osbp.ecview.core.common.context.IContext;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.eventbroker.EventBrokerMsg;
+import org.eclipse.osbp.runtime.common.i18n.II18nService;
+import org.eclipse.osbp.runtime.web.ecview.presentation.vaadin.VaadinRenderer;
+import org.eclipse.osbp.ui.api.contextfunction.IViewEmbeddedProvider;
+import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
+import org.eclipse.osbp.ui.api.statemachine.IDataProvider;
+import org.eclipse.osbp.ui.api.statemachine.IStateMachine;
+import org.eclipse.osbp.ui.api.statemachine.IStateMachineParticipant;
+import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
+import org.eclipse.osbp.xtext.dialogdsl.DialogDSLPackage;
+import org.osgi.service.component.annotations.Component;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Component(service = IContextFunction.class, property = "service.context.key=UserAccount")
+@SuppressWarnings("all")
+public class UserAccountDialogContextFunction implements IContextFunction {
+  @Override
+  public Object compute(final IEclipseContext context, final String contextKey) {
+    MApplication application = context.get(MApplication.class);
+    IEclipseContext appCtx = application.getContext();
+    IDSLMetadataService dslMetadataService = appCtx.get(IDSLMetadataService.class);
+    appCtx.set("embeddedDialogModel", dslMetadataService.getMetadata("org.eclipse.osbp.authentication.account.dialogs.UserAccount", DialogDSLPackage.Literals.DIALOG));
+    IViewEmbeddedProvider provider = ContextInjectionFactory.make(org.eclipse.osbp.vaaclipse.addons.softwarefactory.perspective.DialogProvider.class, appCtx);
+    appCtx.set(IViewEmbeddedProvider.class, provider);
+    return provider;
+  }
+}
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/UserAccountDialogEmbedded.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/UserAccountDialogEmbedded.java
deleted file mode 100644
index 19fdc4d..0000000
--- a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/UserAccountDialogEmbedded.java
+++ /dev/null
@@ -1,138 +0,0 @@
-package org.eclipse.osbp.authentication.account.dialogs;
-
-import com.vaadin.ui.ComponentContainer;
-import com.vaadin.ui.Label;
-import com.vaadin.ui.Notification;
-import com.vaadin.ui.Notification.Type;
-import com.vaadin.ui.UI;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.ResourceBundle;
-import java.util.Set;
-import java.util.UUID;
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.e4.core.contexts.ContextInjectionFactory;
-import org.eclipse.e4.ui.model.application.MApplication;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.osbp.authentication.account.dtos.UserAccountDto;
-import org.eclipse.osbp.blob.component.BlobConverter;
-import org.eclipse.osbp.core.api.persistence.IPersistenceService;
-import org.eclipse.osbp.dsl.dto.lib.impl.DtoServiceAccess;
-import org.eclipse.osbp.ecview.core.common.context.ContextException;
-import org.eclipse.osbp.ecview.core.common.context.IConfiguration;
-import org.eclipse.osbp.ecview.core.common.context.IContext;
-import org.eclipse.osbp.ecview.core.common.context.IViewContext;
-import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
-import org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy;
-import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
-import org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint;
-import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
-import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
-import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
-import org.eclipse.osbp.ecview.core.common.model.core.YView;
-import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityFactory;
-import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
-import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
-import org.eclipse.osbp.ecview.extension.api.ILayoutingStrategyProvider;
-import org.eclipse.osbp.ecview.extension.model.YStrategyLayout;
-import org.eclipse.osbp.ecview.extension.strategy.DefaultLayoutingStrategyProvider;
-import org.eclipse.osbp.ecview.extension.strategy.FormLayoutLayoutingStrategy;
-import org.eclipse.osbp.ecview.xtext.builder.participant.IECViewAddonsMetadataService;
-import org.eclipse.osbp.eventbroker.EventBrokerMsg;
-import org.eclipse.osbp.runtime.common.filter.IDTOService;
-import org.eclipse.osbp.runtime.common.filter.IDTOServiceWithMutablePersistence;
-import org.eclipse.osbp.runtime.common.i18n.II18nService;
-import org.eclipse.osbp.runtime.web.ecview.presentation.vaadin.VaadinRenderer;
-import org.eclipse.osbp.runtime.web.vaadin.databinding.VaadinObservables;
-import org.eclipse.osbp.ui.api.contextfunction.IViewEmbeddedProvider;
-import org.eclipse.osbp.ui.api.customfields.IBlobConverter;
-import org.eclipse.osbp.ui.api.e4.IE4Dialog;
-import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
-import org.eclipse.osbp.ui.api.statemachine.IDataProvider;
-import org.eclipse.osbp.ui.api.statemachine.IStateMachine;
-import org.eclipse.osbp.ui.api.statemachine.IStateMachineParticipant;
-import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
-import org.eclipse.osbp.ui.api.themes.IThemeResourceService.ThemeResourceType;
-import org.eclipse.osbp.ui.api.user.IUser;
-import org.eclipse.osbp.utils.vaadin.SelectDialog;
-import org.eclipse.osbp.xtext.action.common.IToolbarAction;
-import org.eclipse.osbp.xtext.dialogdsl.common.AbstractEmbeddedDialog;
-import org.eclipse.osbp.xtext.dialogdsl.common.AbstractMobileView;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.service.event.Event;
-import org.osgi.service.event.EventHandler;
-import org.osgi.util.tracker.ServiceTracker;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings("all")
-public class UserAccountDialogEmbedded extends AbstractEmbeddedDialog<UserAccountDto> implements IViewEmbeddedProvider {
-  public UserAccountDialogEmbedded() {
-    super();
-    uuid = UUID.randomUUID().toString();
-  }
-  
-  private final static Logger log = LoggerFactory.getLogger("vaaclipseDialog");
-  
-  public String getViewId() {
-    return "org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAccount";
-  }
-  
-  public String getBaseDtoName() {
-    return "org.eclipse.osbp.authentication.account.dtos.UserAccountDto";
-  }
-  
-  public String getBaseEntityName() {
-    return "org.eclipse.osbp.authentication.account.entities.UserAccount";
-  }
-  
-  public Object getIdForDto(final UserAccountDto savedDto) {
-    return savedDto.getId();
-  }
-  
-  public String getDataName() {
-    return "UserAccount";
-  }
-  
-  public String getPrimaryKey() {
-    return "org.eclipse.osbp.authentication.account.entities.UserAccount.id";
-  }
-  
-  public IDTOServiceWithMutablePersistence<UserAccountDto> getDtoService() {
-    return (IDTOServiceWithMutablePersistence<org.eclipse.osbp.authentication.account.dtos.UserAccountDto>) DtoServiceAccess
-    					.getService(org.eclipse.osbp.authentication.account.dtos.UserAccountDto.class);
-  }
-  
-  public void registerPersistenceUnit(final IPersistenceService persistenceService) {
-    persistenceService.registerPersistenceUnit("authentication", 
-    org.eclipse.osbp.authentication.account.entities.UserAccount.class);
-    log.debug("PersistenceService registered");
-  }
-  
-  public IToolbarAction createToobarHelper() {
-    return null;
-  }
-  
-  @Override
-  public String getBindingPropertyName() {
-    return "user_account";
-  }
-  
-  @Override
-  public int getNumColumns() {
-    return 0;
-  }
-  
-  public String getInitializationGroup() {
-    return null;
-  }
-  
-  public String getInitializationMethod() {
-    return null;
-  }
-}
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/UserAccountDialogEmbeddedContextFunction.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/UserAccountDialogEmbeddedContextFunction.java
deleted file mode 100644
index 75eadae..0000000
--- a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/UserAccountDialogEmbeddedContextFunction.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.eclipse.osbp.authentication.account.dialogs;
-
-import com.vaadin.ui.ComponentContainer;
-import com.vaadin.ui.Label;
-import com.vaadin.ui.Notification;
-import com.vaadin.ui.Notification.Type;
-import com.vaadin.ui.UI;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.ResourceBundle;
-import java.util.Set;
-import java.util.UUID;
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.e4.core.contexts.ContextInjectionFactory;
-import org.eclipse.e4.core.contexts.IContextFunction;
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.ui.model.application.MApplication;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.osbp.blob.component.BlobConverter;
-import org.eclipse.osbp.dsl.dto.lib.impl.DtoServiceAccess;
-import org.eclipse.osbp.ecview.core.common.context.ContextException;
-import org.eclipse.osbp.ecview.core.common.context.IConfiguration;
-import org.eclipse.osbp.ecview.core.common.context.IContext;
-import org.eclipse.osbp.ecview.core.common.context.IViewContext;
-import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
-import org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy;
-import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
-import org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint;
-import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
-import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
-import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
-import org.eclipse.osbp.ecview.core.common.model.core.YView;
-import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityFactory;
-import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
-import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
-import org.eclipse.osbp.ecview.extension.api.ILayoutingStrategyProvider;
-import org.eclipse.osbp.ecview.extension.model.YStrategyLayout;
-import org.eclipse.osbp.ecview.extension.strategy.DefaultLayoutingStrategyProvider;
-import org.eclipse.osbp.ecview.extension.strategy.FormLayoutLayoutingStrategy;
-import org.eclipse.osbp.ecview.xtext.builder.participant.IECViewAddonsMetadataService;
-import org.eclipse.osbp.eventbroker.EventBrokerMsg;
-import org.eclipse.osbp.runtime.common.filter.IDTOService;
-import org.eclipse.osbp.runtime.common.i18n.II18nService;
-import org.eclipse.osbp.runtime.web.ecview.presentation.vaadin.VaadinRenderer;
-import org.eclipse.osbp.runtime.web.vaadin.databinding.VaadinObservables;
-import org.eclipse.osbp.ui.api.contextfunction.IViewEmbeddedProvider;
-import org.eclipse.osbp.ui.api.customfields.IBlobConverter;
-import org.eclipse.osbp.ui.api.e4.IE4Dialog;
-import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
-import org.eclipse.osbp.ui.api.statemachine.IDataProvider;
-import org.eclipse.osbp.ui.api.statemachine.IStateMachine;
-import org.eclipse.osbp.ui.api.statemachine.IStateMachineParticipant;
-import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
-import org.eclipse.osbp.ui.api.themes.IThemeResourceService.ThemeResourceType;
-import org.eclipse.osbp.ui.api.user.IUser;
-import org.eclipse.osbp.utils.vaadin.SelectDialog;
-import org.eclipse.osbp.xtext.dialogdsl.common.AbstractMobileView;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.event.Event;
-import org.osgi.service.event.EventHandler;
-import org.osgi.util.tracker.ServiceTracker;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Component(service = IContextFunction.class, property = "service.context.key=UserAccount")
-@SuppressWarnings("all")
-public class UserAccountDialogEmbeddedContextFunction implements IContextFunction {
-  @Override
-  public Object compute(final IEclipseContext context, final String contextKey) {
-    MApplication application = context.get(MApplication.class);
-    IEclipseContext appCtx = application.getContext();
-    IViewEmbeddedProvider provider = ContextInjectionFactory.make(org.eclipse.osbp.authentication.account.dialogs.UserAccountDialogEmbedded.class, appCtx);
-    appCtx.set(IViewEmbeddedProvider.class, provider);
-    return provider;
-  }
-}
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/UserAdministrationDialog.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/UserAdministrationDialog.java
deleted file mode 100644
index 220ccd5..0000000
--- a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/dialogs/UserAdministrationDialog.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package org.eclipse.osbp.authentication.account.dialogs;
-
-import com.vaadin.ui.ComponentContainer;
-import com.vaadin.ui.Label;
-import com.vaadin.ui.Notification;
-import com.vaadin.ui.Notification.Type;
-import com.vaadin.ui.UI;
-import com.vaadin.ui.VerticalLayout;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.ResourceBundle;
-import java.util.Set;
-import java.util.UUID;
-import javax.inject.Inject;
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.e4.core.contexts.ContextInjectionFactory;
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.ui.model.application.MApplication;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.osbp.authentication.account.dtos.UserAccountDto;
-import org.eclipse.osbp.blob.component.BlobConverter;
-import org.eclipse.osbp.core.api.persistence.IPersistenceService;
-import org.eclipse.osbp.dsl.dto.lib.impl.DtoServiceAccess;
-import org.eclipse.osbp.ecview.core.common.context.ContextException;
-import org.eclipse.osbp.ecview.core.common.context.IConfiguration;
-import org.eclipse.osbp.ecview.core.common.context.IContext;
-import org.eclipse.osbp.ecview.core.common.context.IViewContext;
-import org.eclipse.osbp.ecview.core.common.model.binding.BindingFactory;
-import org.eclipse.osbp.ecview.core.common.model.binding.YBindingUpdateStrategy;
-import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
-import org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint;
-import org.eclipse.osbp.ecview.core.common.model.core.CoreModelFactory;
-import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlot;
-import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
-import org.eclipse.osbp.ecview.core.common.model.core.YView;
-import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityFactory;
-import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
-import org.eclipse.osbp.ecview.core.extension.model.extension.YTable;
-import org.eclipse.osbp.ecview.extension.api.ILayoutingStrategyProvider;
-import org.eclipse.osbp.ecview.extension.model.YStrategyLayout;
-import org.eclipse.osbp.ecview.extension.strategy.DefaultLayoutingStrategyProvider;
-import org.eclipse.osbp.ecview.extension.strategy.FormLayoutLayoutingStrategy;
-import org.eclipse.osbp.ecview.xtext.builder.participant.IECViewAddonsMetadataService;
-import org.eclipse.osbp.eventbroker.EventBrokerMsg;
-import org.eclipse.osbp.runtime.common.filter.IDTOService;
-import org.eclipse.osbp.runtime.common.filter.IDTOServiceWithMutablePersistence;
-import org.eclipse.osbp.runtime.common.i18n.II18nService;
-import org.eclipse.osbp.runtime.web.ecview.presentation.vaadin.VaadinRenderer;
-import org.eclipse.osbp.runtime.web.vaadin.databinding.VaadinObservables;
-import org.eclipse.osbp.ui.api.contextfunction.IViewEmbeddedProvider;
-import org.eclipse.osbp.ui.api.customfields.IBlobConverter;
-import org.eclipse.osbp.ui.api.e4.IE4Dialog;
-import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
-import org.eclipse.osbp.ui.api.statemachine.IDataProvider;
-import org.eclipse.osbp.ui.api.statemachine.IStateMachine;
-import org.eclipse.osbp.ui.api.statemachine.IStateMachineParticipant;
-import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
-import org.eclipse.osbp.ui.api.themes.IThemeResourceService.ThemeResourceType;
-import org.eclipse.osbp.ui.api.user.IUser;
-import org.eclipse.osbp.utils.vaadin.SelectDialog;
-import org.eclipse.osbp.xtext.action.common.IToolbarAction;
-import org.eclipse.osbp.xtext.dialogdsl.common.AbstractECViewDialog;
-import org.eclipse.osbp.xtext.dialogdsl.common.AbstractMobileView;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.service.event.Event;
-import org.osgi.service.event.EventHandler;
-import org.osgi.util.tracker.ServiceTracker;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings("all")
-public class UserAdministrationDialog extends AbstractECViewDialog<UserAccountDto> {
-  @Inject
-  public UserAdministrationDialog(final VerticalLayout parent, final IEclipseContext context, final MApplication app) {
-    super(parent,context,app);
-    uuid = UUID.randomUUID().toString();
-  }
-  
-  private final static Logger log = LoggerFactory.getLogger("vaaclipseDialog");
-  
-  public String getViewId() {
-    return "org.eclipse.osbp.authentication.account.dialogs.autobinded.UserAdministration";
-  }
-  
-  public String getBaseDtoName() {
-    return "org.eclipse.osbp.authentication.account.dtos.UserAccountDto";
-  }
-  
-  public String getBaseEntityName() {
-    return "org.eclipse.osbp.authentication.account.entities.UserAccount";
-  }
-  
-  public Object getIdForDto(final UserAccountDto savedDto) {
-    return savedDto.getId();
-  }
-  
-  public String getDataName() {
-    return "UserAccount";
-  }
-  
-  public String getPrimaryKey() {
-    return "org.eclipse.osbp.authentication.account.entities.UserAccount.id";
-  }
-  
-  public IDTOServiceWithMutablePersistence<UserAccountDto> getDtoService() {
-    return (IDTOServiceWithMutablePersistence<org.eclipse.osbp.authentication.account.dtos.UserAccountDto>) DtoServiceAccess
-    					.getService(org.eclipse.osbp.authentication.account.dtos.UserAccountDto.class);
-  }
-  
-  public void registerPersistenceUnit(final IPersistenceService persistenceService) {
-    persistenceService.registerPersistenceUnit("authentication", 
-    org.eclipse.osbp.authentication.account.entities.UserAccount.class);
-    log.debug("PersistenceService registered");
-  }
-  
-  public IToolbarAction createToobarHelper() {
-    return new org.eclipse.osbp.authentication.account.actions.DialogToolbar(uuid);
-  }
-  
-  @Override
-  public String getBindingPropertyName() {
-    return "user_administration";
-  }
-  
-  @Override
-  public int getNumColumns() {
-    return 0;
-  }
-  
-  public String getInitializationGroup() {
-    return null;
-  }
-  
-  public String getInitializationMethod() {
-    return null;
-  }
-}
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/tables/TablesServiceBinder.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/tables/TablesServiceBinder.java
index 5d72547..9149fc5 100644
--- a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/tables/TablesServiceBinder.java
+++ b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/tables/TablesServiceBinder.java
@@ -75,6 +75,7 @@
 import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent.EventDispatcherCommand;
 import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent.EventDispatcherDataTag;
 import org.eclipse.osbp.runtime.common.event.IDualData;
+import org.eclipse.osbp.runtime.common.event.SelectionStore;
 import org.eclipse.osbp.runtime.common.filter.IDTOServiceWithMutablePersistence;
 import org.eclipse.osbp.runtime.web.vaadin.common.data.IBeanSearchServiceFactory;
 import org.eclipse.osbp.ui.api.contextfunction.IViewEmbeddedProvider;
diff --git a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/tables/UserAdministrationTable.java b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/tables/UserAdministrationTable.java
index 6557d19..20b94c4 100644
--- a/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/tables/UserAdministrationTable.java
+++ b/org.eclipse.osbp.authentication.ui/src-gen/org/eclipse/osbp/authentication/account/tables/UserAdministrationTable.java
@@ -74,6 +74,7 @@
 import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent.EventDispatcherDataTag;
 import org.eclipse.osbp.runtime.common.event.IDualData;
 import org.eclipse.osbp.runtime.common.event.IEventDispatcher;
+import org.eclipse.osbp.runtime.common.event.SelectionStore;
 import org.eclipse.osbp.runtime.common.filter.IDTOServiceWithMutablePersistence;
 import org.eclipse.osbp.runtime.web.vaadin.common.data.IBeanSearchServiceFactory;
 import org.eclipse.osbp.ui.api.contextfunction.IViewEmbeddedProvider;
@@ -144,12 +145,12 @@
   @Inject
   private IBlobService blobService;
   
-  private Object selectedId = null;
-  
   private UserAccountDatamart datamartInstance;
   
   private IDatamartFilterGenerator filterGenerator;
   
+  private boolean moreToLoad = false;
+  
   private Component dataComponent;
   
   private boolean mustRefresh = false;
@@ -182,13 +183,10 @@
     return this.coordinateSystem;
   }
   
-  public Object getSelectedId() {
-    return this.selectedId;
-  }
-  
-  public DerivedCellSet getCellSet() {
+  public DerivedCellSet getCellSet(final boolean limited) {
     operativeDtoContainer = null;
-    DerivedCellSet cellSet = datamartInstance.getResults(getTaskOperativeDtoClass(), getTaskInitialOperativeDtos());
+    DerivedCellSet cellSet = datamartInstance.getResults(limited, getTaskOperativeDtoClass(), getTaskInitialOperativeDtos());
+    moreToLoad = datamartInstance.isMoreToLoad();
     if	(cellSet != null) {
     	operativeDtoContainer = cellSet.getOperativeDtoContainer();
     }
@@ -205,9 +203,9 @@
   
   @PostConstruct
   public void activate() {
+    super.initView();
     user.addUserLocaleListener(this);
     eventDispatcher.addEventReceiver(this);
-    filterGenerator.addFilterChangeListener(this);
     
   }
   
@@ -216,7 +214,7 @@
     user.removeUserLocaleListener(this);
     eventDispatcher.removeEventReceiver(this);
     filterGenerator.removeFilterChangeListener(this);
-    
+    super.destroyView();
   }
   
   public void createView(final VerticalLayout parent) {
@@ -245,7 +243,7 @@
   public void createComponents() {
     if (renderAllowed()){
     	// get the results
-    	final DerivedCellSet cellSet = getCellSet();
+    	final DerivedCellSet cellSet = getCellSet(true);
     	if (cellSet == null) {
     		promptSecurityMessage(dslMetadataService.translate(user.getLocale().toLanguageTag(), "securityMessage"), layoutManager.getDataArea());
     		return;
@@ -256,6 +254,32 @@
     	tables.clear();
     	// generate a new result component
     	if (cellSet != null) {
+    		if(moreToLoad) {
+    			Runnable backgroundFetch = new Runnable() {
+    				public void run() {
+    				    operativeDtoContainer = null;
+    				    final DerivedCellSet cellSetAll = datamartInstance.getResults(false, getTaskOperativeDtoClass(), getTaskInitialOperativeDtos());
+    				    if	(cellSet != null) {
+    				    	operativeDtoContainer = cellSet.getOperativeDtoContainer();
+    				    }
+    					for(CellSetFilterTable table:tables) {
+    					    dataSourceContainer = new CellSetIndexedContainer(eclipseContext, attributeLookupMap, cellSetAll, coordinateSystem, false);
+    						UI.getCurrent().access(new Runnable() {
+    							@Override
+    							public void run() {
+    							    table.setContainerDataSource(dataSourceContainer);
+    							    initTable(table, cellSetAll);
+    							    filterGenerator.addFilterChangeListener(org.eclipse.osbp.authentication.account.tables.UserAdministrationTable.this);
+    							}
+    						});
+    					}
+    				}
+    			};
+    			new Thread(backgroundFetch).start();
+    			moreToLoad = false;
+    		} else {
+    		    filterGenerator.addFilterChangeListener(org.eclipse.osbp.authentication.account.tables.UserAdministrationTable.this);
+    		}
     		// create a multidimensional coordinate system against the cellSet
     		for	(int axis = 0; axis < cellSet.getAxes().size(); axis++) {
     			getCoordinateSystem().add(0);
@@ -284,6 +308,14 @@
     
   }
   
+  public void setEnableManualInput(final boolean manualInput) {
+    
+  }
+  
+  public void setInput(final Object dto) {
+    
+  }
+  
   private boolean getSelectById() {
     return false;
   }
@@ -363,7 +395,12 @@
     table.setSizeFull();
     tableLayout.addComponent(table);
     tables.add(table);
-    // add attributeLookups for column and row attribute supplements
+    initTable(table, cellSet);
+    return tableLayout;
+  }
+  
+  public void initTable(final CellSetFilterTable table, final DerivedCellSet cellSet) {
+     // add attributeLookups for column and row attribute supplements
     attributeLookupMap.put("__USERACCOUNT__ID__", new PropertyLookup(themeResourceService, dslMetadataService, blobService, user.getLocale())
     	.setCollapseColumn(true)
     );
@@ -374,56 +411,7 @@
     dataSourceContainer = new CellSetIndexedContainer(eclipseContext, attributeLookupMap, cellSet, coordinateSystem, false);
     table.setContainerDataSource(dataSourceContainer);
     dataSourceContainer.addExtras(table);
-    // Setting the order of the columns via the visibleColumns list
-    Map<Object, Integer> visibleColumnsMap = user.getColumnUtil().getVisibleColumns(this.getClass().getCanonicalName() + ".columns");
-    if (visibleColumnsMap != null){
-    	boolean unmodifiedVisibleColumns = true;
-    	for (Object visibleColumnKey : visibleColumnsMap.keySet()) {
-    		CellSetIndexedContainer container = dataSourceContainer;
-    		// creates a hash code by the column position members		
-    		int membersHash = 0;
-    		if (container != null) {
-    			List<DerivedMember> members = container.getColumnPosition(visibleColumnKey).getMembers();
-    			for (DerivedMember member : members) {
-    				membersHash += (member.getUniqueName() != null) ? member.getUniqueName().hashCode() : member.hashCode();
-    			}
-    		}
-    		if (membersHash != visibleColumnsMap.get(visibleColumnKey)) {
-    			unmodifiedVisibleColumns = false;
-    			break;
-    		}
-    	}
-    	if (unmodifiedVisibleColumns) {
-    		try {
-    			Object[] visibleColumns = visibleColumnsMap.values().toArray();
-    			table.setVisibleColumns(visibleColumns );
-    		} catch (IllegalArgumentException e) {
-    			// this occurs if a saved column is no longer existing due to model changes
-    		}
-    	}
-    }
-    // Setting table columns width from the persisted user properties
-    for (Object visibleId : table.getVisibleColumns()) {
-    	String widthStr = user.getColumnUtil().getColumnWidth(this.getClass().getCanonicalName() + "." + visibleId.toString() + ".width");
-    	if (widthStr!= null) {
-    		try {
-    			table.setColumnWidth(visibleId, Integer.parseInt(widthStr));
-    		} catch (IllegalArgumentException e) {
-    			// this occurs if a saved column is no longer existing due to model changes
-    		}
-    	}
-    }
-    // Setting table collapsed columns from the persisted user properties
-    for (Object propertyId : table.getContainerDataSource().getContainerPropertyIds()) {
-    	String collapsedColumn = user.getColumnUtil().getColumnCollapsed(this.getClass().getCanonicalName() + "." + propertyId + ".collapsed");
-    	try {
-    		if (collapsedColumn != null){
-    			table.setColumnCollapsed(propertyId, true);
-    		}
-    	} catch (IllegalArgumentException e) {
-    		// this occurs if a saved column is no longer existing due to model changes
-    	}
-    }
+    tableSettingsByUserProperties(table);
     table.addValueChangeListener(new ValueChangeListener() {
     	@Override
     	public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) {
@@ -443,18 +431,18 @@
         			}
     			}
     		}
+    		Object idObj = dataSourceContainer.getValueByProperty(selection, "__useraccount__id__");
     		MPerspective perspective = getContext().get(MPerspective.class);
     		EventDispatcherEvent evnt = new EventDispatcherEvent(perspective, EventDispatcherCommand.SELECT, "org.eclipse.osbp.authentication.account.entities.UserAccount.id", "org.eclipse.osbp.authentication.account.tables.UserAdministration");
-    		evnt.addItem(EventDispatcherDataTag.ID, dataSourceContainer.getValueByProperty(selection, "__useraccount__id__"));
+    		evnt.addItem(EventDispatcherDataTag.ID, idObj);
     		eventDispatcher.sendEvent(evnt);
+    		SelectionStore.putSelectionToPerspectiveContext(getPart(), "org.eclipse.osbp.authentication.account.entities.UserAccount.id", idObj);
     		for (DatamartPrimary<?> primary : datamartInstance.getPrimaryList()){
     			if (!"org.eclipse.osbp.authentication.account.entities.UserAccount".equals(primary.getEntityName())){
     				Object primaryValue = dataSourceContainer.getValueByProperty(selection, primary.getAlias().toLowerCase());
-    				if (primaryValue != null) {
-    					evnt = new EventDispatcherEvent(perspective, EventDispatcherCommand.SELECT, primary.getEntityName() + "." + primary.getAttributeName(), "org.eclipse.osbp.authentication.account.tables.UserAdministration");
-    					evnt.addItem(EventDispatcherDataTag.ID, primaryValue);
-    					eventDispatcher.sendEvent(evnt);
-    				}
+    				evnt = new EventDispatcherEvent(perspective, EventDispatcherCommand.SELECT, primary.getEntityName() + "." + primary.getAttributeName(), "org.eclipse.osbp.authentication.account.tables.UserAdministration");
+    				evnt.addItem(EventDispatcherDataTag.ID, primaryValue);
+    				eventDispatcher.sendEvent(evnt);
     			}
     		}
     	}
@@ -512,7 +500,61 @@
     });
     // Must be immediate to send the resize events immediately
     table.setImmediate(true);
-    return tableLayout;
+    
+  }
+  
+  public void tableSettingsByUserProperties(final CellSetFilterTable table) {
+    // Setting the order of the columns via the visibleColumns list
+    Map<Object, Integer> visibleColumnsMap = user.getColumnUtil().getVisibleColumns(this.getClass().getCanonicalName() + ".columns");
+    if (visibleColumnsMap != null){
+    	boolean unmodifiedVisibleColumns = true;
+    	for (Object visibleColumnKey : visibleColumnsMap.keySet()) {
+    		CellSetIndexedContainer container = dataSourceContainer;
+    		// creates a hash code by the column position members		
+    		int membersHash = 0;
+    		if (container != null) {
+    			List<DerivedMember> members = container.getColumnPosition(visibleColumnKey).getMembers();
+    			for (DerivedMember member : members) {
+    				membersHash += (member.getUniqueName() != null) ? member.getUniqueName().hashCode() : member.hashCode();
+    			}
+    		}
+    		if (membersHash != visibleColumnsMap.get(visibleColumnKey)) {
+    			unmodifiedVisibleColumns = false;
+    			break;
+    		}
+    	}
+    	if (unmodifiedVisibleColumns) {
+    		try {
+    			Object[] visibleColumns = visibleColumnsMap.values().toArray();
+    			table.setVisibleColumns(visibleColumns );
+    		} catch (IllegalArgumentException e) {
+    			// this occurs if a saved column is no longer existing due to model changes
+    		}
+    	}
+    }
+    // Setting table columns width from the persisted user properties
+    for (Object visibleId : table.getVisibleColumns()) {
+    	String widthStr = user.getColumnUtil().getColumnWidth(this.getClass().getCanonicalName() + "." + visibleId.toString() + ".width");
+    	if (widthStr!= null) {
+    		try {
+    			table.setColumnWidth(visibleId, Integer.parseInt(widthStr));
+    		} catch (IllegalArgumentException e) {
+    			// this occurs if a saved column is no longer existing due to model changes
+    		}
+    	}
+    }
+    // Setting table collapsed columns from the persisted user properties
+    for (Object propertyId : table.getContainerDataSource().getContainerPropertyIds()) {
+    	String collapsedColumn = user.getColumnUtil().getColumnCollapsed(this.getClass().getCanonicalName() + "." + propertyId + ".collapsed");
+    	try {
+    		if (collapsedColumn != null){
+    			table.setColumnCollapsed(propertyId, true);
+    		}
+    	} catch (IllegalArgumentException e) {
+    		// this occurs if a saved column is no longer existing due to model changes
+    	}
+    }
+    
   }
   
   public void dataRefresh() {
@@ -524,7 +566,7 @@
     			break;
     		}
     	}
-    	if(dataSourceContainer== null || !dataSourceContainer.updateContainer(getCellSet())) {
+    	if(dataSourceContainer== null || !dataSourceContainer.updateContainer(getCellSet(true))) {
     		log.debug("cannot update container - full refresh");
     		renderData();
     	}
@@ -540,11 +582,14 @@
   }
   
   public boolean renderAllowed() {
-    if (getSelectById() && getSelectedId()==null) {
+    if (getSelectById()) {
     	for (DatamartFilter filter : datamartInstance.getFilters()) {
     		if(filter.isOptional()) {
     			return true;
     		}
+    		if(!filter.getSql().isEmpty()) {
+    			return true;
+    		}
     	} 
     	return false;
     }
@@ -578,7 +623,6 @@
     		if((event.getPerspective() == null || (perspective != null && event.getPerspective().equals(perspective))) && ((allowedSenderParts != null && allowedSenderParts.contains(event.getSender())) || allowedSenderParts == null)){
     			if(!event.getSender().equals("org.eclipse.osbp.authentication.account.tables.UserAdministration")) {
     				if(filterGenerator.selectItem(event, getSelectById())) {
-    					selectedId = event.getData().get(EventDispatcherDataTag.ID);
     					renderData();
     				}
     			}
@@ -605,9 +649,10 @@
     				dataRefresh();
     			}
     		}
+    		/* must be activated if sure that the filter is to be refreshed
     		if (filterGenerator != null) {
     			filterGenerator.updateFilter();
-    		}
+    		}*/
     		break;
     	}
     
diff --git a/org.eclipse.osbp.authentication.ui/src/account.datamart b/org.eclipse.osbp.authentication.ui/src/account.datamart
index 5702290..ce4c3f1 100644
--- a/org.eclipse.osbp.authentication.ui/src/account.datamart
+++ b/org.eclipse.osbp.authentication.ui/src/account.datamart
@@ -13,16 +13,16 @@
  * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
  * 
  */
-package org.eclipse.osbp.authentication.account.datamarts{ 
+package org.eclipse.osbp.authentication.account.datamarts{
 
 	datamart UserAccount 
-	using entity UserAccount {
+	using entity UserAccount { 
 		attributes {
 			attribute userName axis columns
 			attribute email axis columns
 			attribute position axis columns
 			attribute profileimage axis columns
-			attribute notRegistered axis columns
+			attribute notRegistered axis columns 
 		}
 	}
 }
diff --git a/org.eclipse.osbp.authentication.ui/src/account.dialog b/org.eclipse.osbp.authentication.ui/src/account.dialog
index 145e2ce..53ca25b 100644
--- a/org.eclipse.osbp.authentication.ui/src/account.dialog
+++ b/org.eclipse.osbp.authentication.ui/src/account.dialog
@@ -12,9 +12,9 @@
  * 
  */
 import ns org.eclipse.osbp.authentication.account.dtos.UserAccountDto
-import ns org.eclipse.osbp.authentication.account.actions.Dialog package org.eclipse.osbp.authentication.account.dialogs {
+import ns org.eclipse.osbp.authentication.account.actions.Dialog
 
-	dialog UserAccount autobinding UserAccountDto embedded
-
+package org.eclipse.osbp.authentication.account.dialogs {
+	dialog UserAccount autobinding UserAccountDto embedded 
 	dialog UserAdministration autobinding UserAccountDto toolbar Dialog
 }
\ No newline at end of file
diff --git a/org.eclipse.osbp.authentication.ui/src/account.perspective b/org.eclipse.osbp.authentication.ui/src/account.perspective
index 7e3472c..fcac86c 100644
--- a/org.eclipse.osbp.authentication.ui/src/account.perspective
+++ b/org.eclipse.osbp.authentication.ui/src/account.perspective
@@ -4,7 +4,7 @@
 import ns org.eclipse.osbp.authentication.account.tables.UserAdministrationTable
 
 package org.eclipse.osbp.authentication.account.perspectives {
-	perspective UserAdministration iconURI "employee" {
+	perspective UserAdministration icon "employee" { 
 		sashContainer left {
 			part allAccounts spaceVolume "40" view readOnlyTable UserAdministration 
 			part editAccount spaceVolume "60" view dialog UserAdministration
diff --git a/org.eclipse.osbp.authentication.ui/src/account.table b/org.eclipse.osbp.authentication.ui/src/account.table
index ecf0df3..6478236 100644
--- a/org.eclipse.osbp.authentication.ui/src/account.table
+++ b/org.eclipse.osbp.authentication.ui/src/account.table
@@ -15,5 +15,5 @@
  */
 package org.eclipse.osbp.authentication.account.tables {
 
-	table UserAdministration as readOnly filtering using datamart UserAccount
+	table UserAdministration as readOnly filtering using datamart UserAccount  
 }
\ No newline at end of file
diff --git a/org.eclipse.osbp.authentication.ui/src/org/eclipse/osbp/authentication/ui/login/AuthenticationProvider.java b/org.eclipse.osbp.authentication.ui/src/org/eclipse/osbp/authentication/ui/login/AuthenticationProvider.java
index db95a6b..1a0fe8f 100644
--- a/org.eclipse.osbp.authentication.ui/src/org/eclipse/osbp/authentication/ui/login/AuthenticationProvider.java
+++ b/org.eclipse.osbp.authentication.ui/src/org/eclipse/osbp/authentication/ui/login/AuthenticationProvider.java
@@ -66,8 +66,6 @@
 import com.vaadin.shared.ui.label.ContentMode;
 import com.vaadin.ui.Alignment;
 import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Button.ClickListener;
 import com.vaadin.ui.CheckBox;
 import com.vaadin.ui.HorizontalLayout;
 import com.vaadin.ui.Image;
@@ -107,12 +105,12 @@
 	@Inject
 	private IDSLMetadataService dslMetadataService;
 	
-	private IPostAuthentication postAuthentication;
+	private transient IPostAuthentication postAuthentication;
 
 	/** The Constant LOGGER. */
 	private static final Logger LOGGER = LoggerFactory.getLogger(AuthenticationProvider.class);
 
-	private AesCipherService cipher;
+	private transient AesCipherService cipher;
 	// this cookie remembers the user credentials
 	private static final String NAME_COOKIE = "osbp_rememberme"; //$NON-NLS-1$
 	// this cookie remembers the cipher key
@@ -126,7 +124,6 @@
 
 	private int failedLoginCnt = 0; 
 
-	private Label title;
 	private TextField userField;
 	private PasswordField passwordField;
 	private Button login;
@@ -135,16 +132,14 @@
 	private Button register;
 	private Image lockedImage;
 	private Image unlockedImage;
-	private Label copyrightField;
-	private Label versionField;
 	private String cookieValue;
 	private ProgressBar progressValue;
 	private VerticalLayout imageArea;
 
 	// Have the unmodified Enter key cause an event
-	Action do_login = new ShortcutAction("Default key", ShortcutAction.KeyCode.ENTER, null);
+	Action doLogin = new ShortcutAction("Default key", ShortcutAction.KeyCode.ENTER, null);
 	// Have the C key modified with Alt cause an event
-	Action action_cancel = new ShortcutAction("Alt+C", ShortcutAction.KeyCode.C, new int[] { ShortcutAction.ModifierKey.ALT });
+	Action actionCancel = new ShortcutAction("Alt+C", ShortcutAction.KeyCode.C, new int[] { ShortcutAction.ModifierKey.ALT });
 
 	public AuthenticationProvider() {
 		InitializationListener.addAuthenticationProvider(this);
@@ -170,9 +165,9 @@
 	@SuppressWarnings("restriction")
 	@PostConstruct
 	public void init(VerticalLayout parent) {
-		LOGGER.debug("AuthenticationProvider init");
+		LOGGER.debug("{}", "AuthenticationProvider init");
 		if (InitializationListener.getUserAccessService() == null) {
-			LOGGER.error("userAccessService not available");
+			LOGGER.error("{}", "userAccessService not available");
 			return;
 		}
 		cipher = new AesCipherService();
@@ -222,7 +217,7 @@
 		titleArea.addStyleName("loginTitleArea");
 		fullArea.addComponent(titleArea);
 		fullArea.setComponentAlignment(titleArea, Alignment.TOP_CENTER);
-		title = new Label( appName + "<br>" + dslMetadataService.translate(locale.toLanguageTag(), "login_caption") );
+		Label title = new Label( appName + "<br>" + dslMetadataService.translate(locale.toLanguageTag(), "login_caption") );
 		title.setContentMode(ContentMode.HTML);
 		title.addStyleName(EnumCssClass.VIEW_HEADER_H2.toString());
 		titleArea.addComponent(title);
@@ -309,12 +304,7 @@
 		loginArea.addComponent(login);
 		login.setCaption(dslMetadataService.translate(locale.toLanguageTag(), "sign_in"));
 		login.setDescription(dslMetadataService.translate(locale.toLanguageTag(), "sign_in_tip"));
-		login.addClickListener(new ClickListener() {
-			@Override
-			public void buttonClick(ClickEvent event) {
-				doLogin();
-			}
-		});
+		login.addClickListener(e -> doLogin());
 
 		if(context != null) {
 			forgotpasswordField = new NativeButton();
@@ -322,28 +312,16 @@
 			registerArea.addComponent(forgotpasswordField);
 			forgotpasswordField.setCaption(dslMetadataService.translate(locale.toLanguageTag(), "forgot_password"));
 			forgotpasswordField.setDescription(dslMetadataService.translate(locale.toLanguageTag(), "forgot_password_tip"));
-			forgotpasswordField.addClickListener(new ClickListener() {
-	
-				@Override
-				public void buttonClick(ClickEvent event) {
-					doResetPassword();
-				}
-			});
-
+			forgotpasswordField.addClickListener(e->doResetPassword());
 			register = new Button();
 			register.setSizeFull();
 			registerArea.addComponent(register);
 			register.setCaption(dslMetadataService.translate(locale.toLanguageTag(), "register_new_user"));
 			register.setDescription(dslMetadataService.translate(locale.toLanguageTag(), "register_new_user_tip"));
-			register.addClickListener(new ClickListener() {
-				@Override
-				public void buttonClick(ClickEvent event) {
-					doRegister();
-				}
-			});
+			register.addClickListener(e->doRegister());
 		}
 
-		copyrightField = new Label();
+		Label copyrightField = new Label();
 		copyrightField.setSizeFull();
 		copyrightArea.addComponent(copyrightField);
 		copyrightArea.setComponentAlignment(copyrightField, Alignment.MIDDLE_CENTER);
@@ -352,7 +330,7 @@
 		String trdmText = dslMetadataService.translate(locale.toLanguageTag(), "trademark");
 		copyrightField.setValue(cprText + "<br>" + trdmText);
 		copyrightField.setContentMode(ContentMode.HTML);
-		versionField = new Label();
+		Label versionField = new Label();
 		versionField.setSizeFull();
 		versionField.addStyleName("loginVersionField");
 
@@ -361,7 +339,7 @@
 		versionField.setValue(dslMetadataService.translate(locale.toLanguageTag(), "version") + ": "+ version);
 		// Set this object as the action handler
 		loginPanel.addActionHandler(this);
-		LOGGER.debug("AuthenticationProvider layouted");
+		LOGGER.debug("{}", "AuthenticationProvider layouted");
 
 		// eventually encrypt uncrypted passwords
 		checkCookie();
@@ -380,7 +358,7 @@
 		if (!ProductConfiguration.hasNoRememberMe()) {
 			BrowserCookie.detectCookieValue(KEY_COOKIE, this);
 		}
-		LOGGER.debug("AuthenticationProvider cookie detecting finished");
+		LOGGER.debug("{}", "AuthenticationProvider cookie detecting finished");
 	}
 
 	private void sendResetPasswordEmail(UserAccountDto user, String resetPassword) {
@@ -405,7 +383,7 @@
 			email.addTo(user.getEmail());
 			email.send();
 		} catch (Exception e) {
-			LOGGER.error("EmailException: " + e.getLocalizedMessage());
+			LOGGER.error("EmailException: {}", e.getLocalizedMessage());
 			LOGGER.error("failed to send password {} to user {} to address {}", resetPassword, user.getUserName(), user.getEmail() );
 		}
 	}
@@ -417,7 +395,7 @@
 	 */
 	@Override
 	public Action[] getActions(Object target, Object sender) {
-		return new Action[] { do_login };
+		return new Action[] { doLogin };
 	}
 
 	/**
@@ -426,7 +404,7 @@
 	 */
 	@Override
 	public void handleAction(Action action, Object sender, Object target) {
-		if (action == do_login) {
+		if (action == doLogin) {
 			doLogin();
 		}
 	}
@@ -439,25 +417,28 @@
 		String password = passwordField.getValue();
 		if (username.trim().isEmpty())
 			username = null;
-		if (check(username, password, ProductConfiguration.hasNoRememberMe() ? false : remembermeField.getValue())) {
-			if (!checkPasswordReset(username)) {
-				if(context != null) {
-					imageArea.removeComponent(lockedImage);
-					imageArea.addComponent(unlockedImage);
-				}
-				User user = new User(username);
-				if(context != null) {
-					if (context.get(IUser.class) == null) {
-						context.set(IUser.class, user);
-						context.set("user", user);
-					}
-					if(eventBroker != null) {
-						eventBroker.post(AuthenticationConstants.Events.Authentication.name, user);
-					}
-				}
-				if(postAuthentication != null) {
-					postAuthentication.execute(user);
-				}
+		boolean hasRememberMe = ProductConfiguration.hasNoRememberMe() ? false : remembermeField.getValue();
+		if (check(username, password, hasRememberMe) && !checkPasswordReset(username)) {
+			if(context != null) {
+				imageArea.removeComponent(lockedImage);
+				imageArea.addComponent(unlockedImage);
+			}
+			User user = new User(username);
+			registerUser(user);
+			if(postAuthentication != null) {
+				postAuthentication.execute(user);
+			}
+		}
+	}
+
+	private void registerUser(User user) {
+		if(context != null) {
+			if (context.get(IUser.class) == null) {
+				context.set(IUser.class, user);
+				context.set("user", user);
+			}
+			if(eventBroker != null) {
+				eventBroker.post(AuthenticationConstants.Events.Authentication.name, user);
 			}
 		}
 	}
@@ -467,7 +448,7 @@
 		if (cookieValue != null) {
 			if (!InitializationListener.getUserAccessService().isCookieValid(username, cookieValue)) {
 				// fraud detected - lock user account
-				LOGGER.debug("cookie fraud detection - account is locked");
+				LOGGER.debug("{}", "cookie fraud detection - account is locked");
 				InitializationListener.getUserAccessService().lockAccount(username, true);
 			}
 			cookieValid = true;
@@ -513,7 +494,7 @@
 					try {
 						cipher.setPaddingScheme(PaddingScheme.PKCS5);
 						encryptedData = cipher.encrypt(pkcs5Bytes(keyValue), generateKey().getEncoded());
-						BrowserCookie.setCookie(KEY_COOKIE, Hex.encodeToString(encryptedData.getBytes()), 40 * 24L * 3600L, "/");
+						BrowserCookie.setCookie(KEY_COOKIE, Hex.encodeToString(encryptedData.getBytes()));
 						keyWasFound = true;
 					} catch (Exception e) {
 						Throwable cause = e.getCause();
@@ -531,15 +512,15 @@
 				String loginData = encryptData(loginCredentials);
 				if (loginData != null) {
 					// cookie stays valid up to 40 days
-					BrowserCookie.setCookie(NAME_COOKIE, loginData, 40 * 24L * 3600L, "/");
+					BrowserCookie.setCookie(NAME_COOKIE, loginData);
 					InitializationListener.getUserAccessService().setCookieHash(username, loginData);
-					LOGGER.debug("cookie set for remember me");
+					LOGGER.debug("{}", "cookie set for remember me");
 				}
 			} else {
 				// destroy cookie
-				BrowserCookie.setCookie(NAME_COOKIE, "", 0L, "/");
+				BrowserCookie.deleteCookie(NAME_COOKIE);
 				InitializationListener.getUserAccessService().setCookieHash(username, null);
-				LOGGER.debug("cookie destroyed for remember me");
+				LOGGER.debug("{}", "cookie destroyed for remember me");
 			}
 		}
 		return true;
@@ -592,7 +573,7 @@
 	@Override
 	public void onValueDetected(String cookieName, String value) {
 		if (cookieName != null && value != null) {
-			LOGGER.debug("cookie " + cookieName + " was found");
+			LOGGER.debug("cookie {} was found", cookieName);
 			if (KEY_COOKIE.equals(cookieName)) {
 				try {
 					// deserialize the decoded hex encoded string
@@ -618,16 +599,16 @@
 					passwordField.setValue(loginCredentials.get(1));
 					remembermeField.setValue(true);
 					UI.getCurrent().getSession().unlock();
-					LOGGER.debug("cookie decoded");
+					LOGGER.debug("{}", "cookie decoded");
 					if (ProductConfiguration.hasAutoLogin()) {
 						login.click();
 					}
 				} else {
-					LOGGER.debug("cookie for remember me has invalid item count");
+					LOGGER.debug("{}", "cookie for remember me has invalid item count");
 				}
 			}
 		} else {
-			LOGGER.debug("no more valid cookies found");
+			LOGGER.debug("{}", "no more valid cookies found");
 		}
 	}
 
@@ -645,7 +626,7 @@
 		return pkcs5Bytes(data.getBytes("UTF-8"));
 	}
 
-	private byte[] pkcs5Bytes(byte[] data) throws UnsupportedEncodingException {
+	private byte[] pkcs5Bytes(byte[] data) {
 		byte diff = (byte) (16 - data.length % 16);
 		byte[] result = new byte[data.length + diff];
 		for (int i = 0; i < data.length + diff; i++) {
@@ -657,9 +638,8 @@
 		return result;
 	}
 
-	private static Key generateKey() throws Exception {
-		Key key = new SecretKeySpec(CIPHER_KEY, "AES");
-		return key;
+	private static Key generateKey() {
+		return new SecretKeySpec(CIPHER_KEY, "AES");
 	}
 
 	/**
diff --git a/org.eclipse.osbp.authentication.ui/src/org/eclipse/osbp/authentication/ui/login/BrowserCookie.java b/org.eclipse.osbp.authentication.ui/src/org/eclipse/osbp/authentication/ui/login/BrowserCookie.java
index 0bceda0..340469d 100644
--- a/org.eclipse.osbp.authentication.ui/src/org/eclipse/osbp/authentication/ui/login/BrowserCookie.java
+++ b/org.eclipse.osbp.authentication.ui/src/org/eclipse/osbp/authentication/ui/login/BrowserCookie.java
@@ -14,18 +14,18 @@
  */
 package org.eclipse.osbp.authentication.ui.login;
 
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
 import java.util.UUID;
 
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.joda.time.format.DateTimeFormatter;
+import org.joda.time.format.ISODateTimeFormat;
+
 import com.vaadin.ui.JavaScript;
 import com.vaadin.ui.JavaScriptFunction;
 
 import elemental.json.JsonArray;
 
-// TODO: Auto-generated Javadoc
-
 /**
  * A helper that provides access to browser cookies.
  *
@@ -55,25 +55,15 @@
 	 * @param value the value
 	 */
 	public static void setCookie(String key, String value) {
-		setCookie(key, value, 999999999L, "/");
+		DateTimeFormatter fmt = ISODateTimeFormat.dateTime();  
+		DateTime now = new DateTime();
+		now.plusMonths(12);
+		String expiry=fmt.print(now.toDateTime(DateTimeZone.UTC));		
+		JavaScript.getCurrent().execute(String.format("document.cookie = \"%s=%s; max-age=31536000; expires=%s; path=/\";", key, value, expiry));
 	}
 
-	/**
-	 * Sets the cookie.
-	 *
-	 * @param key the key
-	 * @param value the value
-	 * @param expires the expires
-	 * @param path the path
-	 */
-	public static void setCookie(String key, String value, Long expires, String path) {
-		DateFormat df = new SimpleDateFormat();
-		Date now = new Date();
-		long time = now.getTime();
-		Long expireTime = time + expires;
-		JavaScript.getCurrent().execute(
-				String.format("document.cookie = \"%s=%s; expires=%s; path=%s\";", key,
-						value, expireTime.toString(), path));
+	public static void deleteCookie(String key) {
+		JavaScript.getCurrent().execute(String.format("document.cookie = \"%s=Null; max-age=0; path=/\";", key));
 	}
 
 	/**
diff --git a/org.eclipse.osbp.authentication.ui/src/org/eclipse/osbp/authentication/ui/login/RegistrationDialog.java b/org.eclipse.osbp.authentication.ui/src/org/eclipse/osbp/authentication/ui/login/RegistrationDialog.java
index 9f32347..f38f207 100644
--- a/org.eclipse.osbp.authentication.ui/src/org/eclipse/osbp/authentication/ui/login/RegistrationDialog.java
+++ b/org.eclipse.osbp.authentication.ui/src/org/eclipse/osbp/authentication/ui/login/RegistrationDialog.java
@@ -225,7 +225,7 @@
 			Notification.show(dslMetadataService.translate(getLocale().toLanguageTag(), "email_is_empty_message"));
 			emailField.focus();
 			return false;
-		} else if (!EmailValidator.getInstance().isValid(emailField.getValue())) {
+		} else if (!EmailValidator.getInstance(true).isValid(emailField.getValue())) {
 			Notification.show(dslMetadataService.translate(getLocale().toLanguageTag(), "email_is_incorrect_message"));
 			emailField.focus();
 			return false;