X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=core%2Forg.argeo.suite.ui%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fui%2FDefaultHeader.java;h=91154c3b9f7f09b7ca2ac936c56e28c58ac2cabe;hp=d3b474000e1ed57b13b65940b867163e5b597817;hb=9ab716f8f45fc34f4848bd1a8b8c0a5e7783a5a9;hpb=3afd052c9c380355ebfce9455e8fa3993f168fe0 diff --git a/core/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultHeader.java b/core/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultHeader.java index d3b4740..91154c3 100644 --- a/core/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultHeader.java +++ b/core/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultHeader.java @@ -1,8 +1,6 @@ package org.argeo.suite.ui; -import java.util.Dictionary; import java.util.Map; -import java.util.TreeMap; import javax.jcr.Node; import javax.jcr.RepositoryException; @@ -13,7 +11,6 @@ import org.argeo.cms.ui.CmsTheme; import org.argeo.cms.ui.CmsUiProvider; import org.argeo.cms.ui.CmsView; import org.argeo.cms.ui.util.CmsUiUtils; -import org.argeo.util.LangUtils; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; @@ -23,14 +20,12 @@ import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; -import org.osgi.service.cm.ConfigurationException; -import org.osgi.service.cm.ManagedService; +import org.osgi.framework.BundleContext; +import org.osgi.framework.wiring.BundleWiring; -/** HEader of a standard Argeo Suite application. */ -public class DefaultHeader implements CmsUiProvider, ManagedService { +/** Header of a standard Argeo Suite application. */ +public class DefaultHeader implements CmsUiProvider { public final static String TITLE_PROPERTY = "argeo.suite.ui.header.title"; - private Map properties; - private Localized title = null; @Override @@ -38,26 +33,6 @@ public class DefaultHeader implements CmsUiProvider, ManagedService { 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 @@ -109,14 +84,36 @@ public class DefaultHeader implements CmsUiProvider, ManagedService { return lbl; } - public void init(Map properties) { - this.properties = new TreeMap<>(properties); + public void init(BundleContext bundleContext, Map properties) { + 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 bundleContext != null + ? bundleContext.getBundle().adapt(BundleWiring.class).getClassLoader() + : getClass().getClassLoader(); + } + }; + } else { + title = new Localized.Untranslated(titleStr); + } + } + } + + public void destroy(BundleContext bundleContext, Map properties) { + } - @Override - public void updated(Dictionary properties) throws ConfigurationException { - if (properties != null) - this.properties.putAll(LangUtils.dictToStringMap(properties)); + public Localized getTitle() { + return title; } }