Improve layers UI.
[gpl/argeo-suite.git] / core / org.argeo.suite.ui / src / org / argeo / suite / ui / DefaultHeader.java
index 692a23badf2c4c1f3c5d2446420a5404ddb676d5..d3b474000e1ed57b13b65940b867163e5b597817 100644 (file)
@@ -7,7 +7,7 @@ import java.util.TreeMap;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.argeo.cms.LocaleUtils;
+import org.argeo.cms.Localized;
 import org.argeo.cms.auth.CurrentUser;
 import org.argeo.cms.ui.CmsTheme;
 import org.argeo.cms.ui.CmsUiProvider;
@@ -26,16 +26,38 @@ import org.eclipse.swt.widgets.Label;
 import org.osgi.service.cm.ConfigurationException;
 import org.osgi.service.cm.ManagedService;
 
-/** HEader of a standard Argeo Suite applicaiton. */
+/** HEader of a standard Argeo Suite application. */
 public class DefaultHeader implements CmsUiProvider, ManagedService {
        public final static String TITLE_PROPERTY = "argeo.suite.ui.header.title";
        private Map<String, String> properties;
 
+       private Localized title = null;
+
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
                CmsView cmsView = CmsView.getCmsView(parent);
                CmsTheme theme = CmsTheme.getCmsTheme(parent);
 
+               String titleStr = (String) properties.get(TITLE_PROPERTY);
+               if (titleStr != null) {
+                       if (titleStr.startsWith("%")) {
+                               title = new Localized() {
+
+                                       @Override
+                                       public String name() {
+                                               return titleStr;
+                                       }
+
+                                       @Override
+                                       public ClassLoader getL10nClassLoader() {
+                                               return getClass().getClassLoader();
+                                       }
+                               };
+                       } else {
+                               title = new Localized.Untranslated(titleStr);
+                       }
+               }
+
                parent.setLayout(CmsUiUtils.noSpaceGridLayout(new GridLayout(3, true)));
 
                // TODO right to left
@@ -44,9 +66,11 @@ public class DefaultHeader implements CmsUiProvider, ManagedService {
                lead.setLayoutData(new GridData(SWT.LEAD, SWT.CENTER, true, false));
                lead.setLayout(new GridLayout());
                Label lbl = new Label(lead, SWT.NONE);
-               String title = properties.get(TITLE_PROPERTY);
-               lbl.setText(LocaleUtils.isLocaleKey(title) ? LocaleUtils.local(title, getClass().getClassLoader()).toString()
-                               : title);
+//             String title = properties.get(TITLE_PROPERTY);
+//             // TODO expose the localized
+//             lbl.setText(LocaleUtils.isLocaleKey(title) ? LocaleUtils.local(title, getClass().getClassLoader()).toString()
+//                             : title);
+               lbl.setText(title.lead());
                CmsUiUtils.style(lbl, SuiteStyle.headerTitle);
                lbl.setLayoutData(CmsUiUtils.fillWidth());