]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms.ui/src/org/argeo/cms/maintenance/AbstractOsgiComposite.java
Better distinguish when admin login failed because there was no such JCR
[lgpl/argeo-commons.git] / org.argeo.cms.ui / src / org / argeo / cms / maintenance / AbstractOsgiComposite.java
1 package org.argeo.cms.maintenance;
2
3 import java.util.Collection;
4
5 import org.apache.commons.logging.Log;
6 import org.apache.commons.logging.LogFactory;
7 import org.argeo.cms.util.CmsUtils;
8 import org.eclipse.swt.SWT;
9 import org.eclipse.swt.layout.GridData;
10 import org.eclipse.swt.widgets.Composite;
11 import org.osgi.framework.BundleContext;
12 import org.osgi.framework.FrameworkUtil;
13 import org.osgi.framework.InvalidSyntaxException;
14 import org.osgi.framework.ServiceReference;
15
16 abstract class AbstractOsgiComposite extends Composite {
17 private static final long serialVersionUID = -4097415973477517137L;
18 protected final BundleContext bc = FrameworkUtil.getBundle(getClass()).getBundleContext();
19 protected final Log log = LogFactory.getLog(getClass());
20
21 public AbstractOsgiComposite(Composite parent, int style) {
22 super(parent, style);
23 parent.setLayout(CmsUtils.noSpaceGridLayout());
24 setLayout(CmsUtils.noSpaceGridLayout());
25 setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
26 initUi(style);
27 }
28
29 protected abstract void initUi(int style);
30
31 protected <T> T getService(Class<? extends T> clazz) {
32 return bc.getService(bc.getServiceReference(clazz));
33 }
34
35 protected <T> Collection<ServiceReference<T>> getServiceReferences(Class<T> clazz, String filter) {
36 try {
37 return bc.getServiceReferences(clazz, filter);
38 } catch (InvalidSyntaxException e) {
39 throw new IllegalArgumentException("Filter " + filter + " is invalid", e);
40 }
41 }
42 }