import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-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;
import org.argeo.cms.ui.CmsView;
-import org.argeo.cms.ui.util.CmsIcon;
import org.argeo.cms.ui.util.CmsUiUtils;
import org.argeo.suite.RankedObject;
import org.argeo.suite.SuiteUtils;
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.framework.BundleContext;
import org.osgi.framework.Constants;
+import org.osgi.framework.wiring.BundleWiring;
/** Side pane listing various perspectives. */
public class DefaultLeadPane implements CmsUiProvider {
private Map<String, RankedObject<SuiteLayer>> layers = Collections.synchronizedSortedMap(new TreeMap<>());
private List<String> defaultLayers;
- private List<String> adminLayers= new ArrayList<>();
+ private List<String> adminLayers = new ArrayList<>();
+
+ private ClassLoader l10nClassLoader;
@Override
public Control createUi(Composite parent, Node node) throws RepositoryException {
appLayersC.setLayout(layout);
appLayersC.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
- Composite adminLayersC = new Composite(parent, SWT.NONE);
- CmsUiUtils.style(adminLayersC, SuiteStyle.leadPane);
- GridLayout adminLayout = new GridLayout();
- adminLayout.verticalSpacing = 10;
- adminLayout.marginBottom = 10;
- adminLayout.marginLeft = 10;
- adminLayout.marginRight = 10;
- adminLayersC.setLayout(adminLayout);
- adminLayersC.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, false, true));
+ Composite adminLayersC;
+ if (!adminLayers.isEmpty()) {
+ adminLayersC = new Composite(parent, SWT.NONE);
+ CmsUiUtils.style(adminLayersC, SuiteStyle.leadPane);
+ GridLayout adminLayout = new GridLayout();
+ adminLayout.verticalSpacing = 10;
+ adminLayout.marginBottom = 10;
+ adminLayout.marginLeft = 10;
+ adminLayout.marginRight = 10;
+ adminLayersC.setLayout(adminLayout);
+ adminLayersC.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, false, true));
+ } else {
+ adminLayersC = null;
+ }
// boolean isAdmin = cmsView.doAs(() -> CurrentUser.isInRole(NodeConstants.ROLE_USER_ADMIN));
Set<String> userRoles = cmsView.doAs(() -> CurrentUser.roles());
buttonParent = adminLayersC;
else
buttonParent = appLayersC;
- Button b = createLayerButton(buttonParent, layerId, title, icon);
+ Button b = SuiteUiUtils.createLayerButton(buttonParent, layerId, title, icon, l10nClassLoader);
if (first == null)
first = b;
}
return first;
}
- public void init(Map<String, Object> properties) {
+ public void init(BundleContext bundleContext, Map<String, Object> properties) {
+ l10nClassLoader = bundleContext != null ? bundleContext.getBundle().adapt(BundleWiring.class).getClassLoader()
+ : getClass().getClassLoader();
+
String[] defaultLayers = (String[]) properties.get(Property.defaultLayers.toString());
if (defaultLayers == null)
throw new IllegalArgumentException("Default layers must be set.");
}
}
+ public void destroy(BundleContext bundleContext, Map<String, String> properties) {
+
+ }
+
public void addLayer(SuiteLayer layer, Map<String, Object> properties) {
if (properties.containsKey(Constants.SERVICE_PID)) {
String pid = (String) properties.get(Constants.SERVICE_PID);
}
}
- protected Button createLayerButton(Composite parent, String layer, Localized msg, CmsIcon icon) {
- CmsTheme theme = CmsTheme.getCmsTheme(parent);
- Button button = new Button(parent, SWT.PUSH);
- CmsUiUtils.style(button, SuiteStyle.leadPane);
- if (icon != null)
- button.setImage(icon.getBigIcon(theme));
- button.setLayoutData(new GridData(SWT.CENTER, SWT.BOTTOM, true, false));
- // button.setToolTipText(msg.lead());
- if (msg != null) {
- Label lbl = new Label(parent, SWT.CENTER);
- CmsUiUtils.style(lbl, SuiteStyle.leadPane);
- // CmsUiUtils.markup(lbl);
- ClassLoader l10nClassLoader = getClass().getClassLoader();
- String txt = LocaleUtils.lead(msg, l10nClassLoader);
-// String txt = msg.lead();
- lbl.setText(txt);
- lbl.setLayoutData(new GridData(SWT.CENTER, SWT.TOP, true, false));
- }
- CmsUiUtils.sendEventOnSelect(button, SuiteEvent.switchLayer.topic(), SuiteEvent.LAYER, layer);
- return button;
- }
+// protected Button createLayerButton(Composite parent, String layer, Localized msg, CmsIcon icon) {
+// CmsTheme theme = CmsTheme.getCmsTheme(parent);
+// Button button = new Button(parent, SWT.PUSH);
+// CmsUiUtils.style(button, SuiteStyle.leadPane);
+// if (icon != null)
+// button.setImage(icon.getBigIcon(theme));
+// button.setLayoutData(new GridData(SWT.CENTER, SWT.BOTTOM, true, false));
+// // button.setToolTipText(msg.lead());
+// if (msg != null) {
+// Label lbl = new Label(parent, SWT.CENTER);
+// CmsUiUtils.style(lbl, SuiteStyle.leadPane);
+// // CmsUiUtils.markup(lbl);
+// ClassLoader l10nClassLoader = getClass().getClassLoader();
+// String txt = LocaleUtils.lead(msg, l10nClassLoader);
+//// String txt = msg.lead();
+// lbl.setText(txt);
+// lbl.setLayoutData(new GridData(SWT.CENTER, SWT.TOP, true, false));
+// }
+// CmsUiUtils.sendEventOnSelect(button, SuiteEvent.switchLayer.topic(), SuiteEvent.LAYER, layer);
+// return button;
+// }
}