]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/maintenance/AbstractOsgiComposite.java
Reset to argeo.cnd, in order to avoid surprises at this stage
[lgpl/argeo-commons.git] / org.argeo.cms / 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.layout.GridLayout;
11 import org.eclipse.swt.widgets.Composite;
12 import org.osgi.framework.BundleContext;
13 import org.osgi.framework.FrameworkUtil;
14 import org.osgi.framework.InvalidSyntaxException;
15 import org.osgi.framework.ServiceReference;
16
17 abstract class AbstractOsgiComposite extends Composite {
18 private static final long serialVersionUID = -4097415973477517137L;
19 protected final BundleContext bc = FrameworkUtil.getBundle(getClass()).getBundleContext();
20 protected final Log log = LogFactory.getLog(getClass());
21
22 public AbstractOsgiComposite(Composite parent, int style) {
23 super(parent, style);
24 parent.setLayout(CmsUtils.noSpaceGridLayout());
25 setLayout(CmsUtils.noSpaceGridLayout());
26 setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
27 initUi(style);
28 }
29
30 protected abstract void initUi(int style);
31
32 protected <T> T getService(Class<? extends T> clazz) {
33 return bc.getService(bc.getServiceReference(clazz));
34 }
35
36 protected <T> Collection<ServiceReference<T>> getServiceReferences(Class<T> clazz, String filter) {
37 try {
38 return bc.getServiceReferences(clazz, filter);
39 } catch (InvalidSyntaxException e) {
40 throw new IllegalArgumentException("Filter " + filter + " is invalid", e);
41 }
42 }
43 }