Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.e4.extensionfactory;
- import org.eclipse.core.runtime.CoreException;
- import org.eclipse.core.runtime.IConfigurationElement;
- import org.eclipse.core.runtime.IExecutableExtension;
- import org.eclipse.core.runtime.IExecutableExtensionFactory;
- import org.eclipse.core.runtime.IStatus;
- import org.eclipse.core.runtime.Status;
- import org.eclipse.e4.core.contexts.EclipseContextFactory;
- import org.eclipse.e4.core.contexts.IEclipseContext;
- import org.eclipse.e4.core.di.InjectionException;
- import org.eclipse.e4.core.services.contributions.IContributionFactory;
- import org.osgi.framework.Bundle;
- import org.osgi.framework.BundleContext;
- import org.osgi.framework.FrameworkUtil;
- import org.osgi.util.tracker.ServiceTracker;
- public class MyExtensionFactory implements IExecutableExtensionFactory,
- IExecutableExtension {
- private ServiceTracker bundleTracker = null;
- private IConfigurationElement config;
- private String id;
- private String propertyName;
- private BundleContext context;
- @Override
- public Object create() throws CoreException {
- Bundle bundle = FrameworkUtil.getBundle(getClass());
- BundleContext bundleContext = bundle.getBundleContext();
- IEclipseContext eclipseCtx = EclipseContextFactory
- .getServiceContext(bundleContext);
- IContributionFactory contributionFactory = (IContributionFactory) eclipseCtx
- .get(IContributionFactory.class.getName());
- IEclipseContext localContext = EclipseContextFactory.create();
- Object object = null;
- try {
- System.out.println("This is the View id: " + id);
- context = FrameworkUtil.getBundle(this.getClass())
- .getBundleContext();
- object = contributionFactory
- .create("bundleclass:de.vogella.rcp.di.test/de.vogella.rcp.di.test.View",
- localContext);
- } catch (InjectionException e) {
- e.printStackTrace();
- }
- return object;
- }
- public void setInitializationData(IConfigurationElement config,
- String propertyName, Object data) throws CoreException {
- System.out.println("Initialization is calleed");
- if (data instanceof String) {
- id = (String) data;
- } else {
- throw new CoreException(new Status(IStatus.ERROR,
- "com.example.e4.extensionfactory", 0,
- "Data argument must be a String for " + getClass(), null)); //$NON-NLS-1$
- }
- this.config = config;
- this.propertyName = propertyName;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement