Make E4 more robust
authorMathieu Baudier <mbaudier@argeo.org>
Tue, 17 Apr 2018 14:13:38 +0000 (16:13 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Tue, 17 Apr 2018 14:13:38 +0000 (16:13 +0200)
org.argeo.cms.e4/src/org/argeo/cms/e4/handlers/LocaleAddon.java
org.argeo.cms.ui/src/org/argeo/cms/ui/dialogs/CmsWizardDialog.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/dialogs/LightweightDialog.java

index e1a2581dc27052c6f0e58f7730df64245e3c942b..8582f60b3bbdefea19e2b5af9a1bd9d8492f864e 100644 (file)
@@ -2,6 +2,7 @@ package org.argeo.cms.e4.handlers;
 
 import java.security.AccessController;
 import java.util.Locale;
+import java.util.Set;
 
 import javax.annotation.PostConstruct;
 import javax.security.auth.Subject;
@@ -13,8 +14,11 @@ public class LocaleAddon {
        @PostConstruct
        public void init(ILocaleChangeService localeChangeService) {
                Subject subject = Subject.getSubject(AccessController.getContext());
-               Locale locale = subject.getPublicCredentials(Locale.class).iterator().next();
-               localeChangeService.changeApplicationLocale(locale);
-               UiContext.setLocale(locale);
+               Set<Locale> locales = subject.getPublicCredentials(Locale.class);
+               if (!locales.isEmpty()) {
+                       Locale locale = locales.iterator().next();
+                       localeChangeService.changeApplicationLocale(locale);
+                       UiContext.setLocale(locale);
+               }
        }
 }
index 93888bf46be0507b1af932de01c68d2685b898f4..24835afc00963c901762c3b2e122170faaa2402e 100644 (file)
@@ -133,12 +133,14 @@ public class CmsWizardDialog extends LightweightDialog implements IWizardContain
 
        @Override
        public void updateMessage() {
-               message.setText(currentPage.getMessage());
+               if (currentPage.getMessage() != null)
+                       message.setText(currentPage.getMessage());
        }
 
        @Override
        public void updateTitleBar() {
-               titleBar.setText(currentPage.getTitle());
+               if (currentPage.getTitle() != null)
+                       titleBar.setText(currentPage.getTitle());
        }
 
        @Override
index e816ec718dbb4fd30ad81e44af83d0fbc523d616..6d45e8cf21bc35ecae4be693ff993efdf807a4bc 100644 (file)
@@ -224,7 +224,7 @@ public class LightweightDialog {
 
        public void setTitle(String title) {
                this.title = title;
-               if (getForegoundShell() != null)
+               if (title != null && getForegoundShell() != null)
                        getForegoundShell().setText(title);
        }