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%2FDefaultEditionLayer.java;fp=core%2Forg.argeo.suite.ui%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fui%2FDefaultEditionLayer.java;h=9c2ad475e6e5c219622c1cd38f73609f48ccf7da;hp=0ab5ab43c1b47c0db39e2ea9a69f5d4bab419077;hb=3afd052c9c380355ebfce9455e8fa3993f168fe0;hpb=141bd601f003f607bfa3dda6c74d4220ca63a2d3 diff --git a/core/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultEditionLayer.java b/core/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultEditionLayer.java index 0ab5ab4..9c2ad47 100644 --- a/core/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultEditionLayer.java +++ b/core/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultEditionLayer.java @@ -7,6 +7,7 @@ import java.util.Map; import javax.jcr.Node; import javax.jcr.RepositoryException; +import org.argeo.cms.Localized; import org.argeo.cms.ui.CmsTheme; import org.argeo.cms.ui.CmsUiProvider; import org.argeo.cms.ui.util.CmsUiUtils; @@ -17,6 +18,8 @@ import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; +import org.osgi.framework.BundleContext; +import org.osgi.framework.wiring.BundleWiring; /** An app layer based on an entry area and an editor area. */ public class DefaultEditionLayer implements SuiteLayer { @@ -24,6 +27,7 @@ public class DefaultEditionLayer implements SuiteLayer { private CmsUiProvider workArea; private List weights = new ArrayList<>(); private boolean startMaximized = false; + private Localized title = null; @Override public Control createUi(Composite parent, Node context) throws RepositoryException { @@ -64,12 +68,43 @@ public class DefaultEditionLayer implements SuiteLayer { tabbedArea.open(uiProvider, context); } - public void init(Map properties) { + @Override + public Localized getTitle() { + return title; + } + + public void init(BundleContext bundleContext, Map properties) { weights = LangUtils.toStringList(properties.get(Property.weights.name())); startMaximized = properties.containsKey(Property.startMaximized.name()) && "true".equals(properties.get(Property.startMaximized.name())); + + String titleStr = (String) properties.get(SuiteLayer.Property.title.name()); + 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() { + + } + public void setEntryArea(CmsUiProvider entryArea) { this.entryArea = entryArea; }