package org.eclipse.gmf.examples.mindmap.diagram; import java.util.ArrayList; import java.util.List; import org.eclipse.amalgam.examples.mindmap.provider.MindmapItemProviderAdapterFactory; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; import org.eclipse.emf.edit.provider.ComposedAdapterFactory; import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory; import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory; import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; public class MindmapDiagramEditorPlugin extends AbstractUIPlugin { public static final String ID = "org.eclipse.amalgam.examples.mindmap.diagram"; //$NON-NLS-1$ // public static final PreferencesHint DIAGRAM_PREFERENCES_HINT = new // PreferencesHint(ID); private static MindmapDiagramEditorPlugin instance; private ComposedAdapterFactory adapterFactory; public MindmapDiagramEditorPlugin() { } @Override public void start(BundleContext context) throws Exception { super.start(context); instance = this; // PreferencesHint.registerPreferenceStore(DIAGRAM_PREFERENCES_HINT, // getPreferenceStore()); adapterFactory = createAdapterFactory(); } @Override public void stop(BundleContext context) throws Exception { adapterFactory.dispose(); adapterFactory = null; instance = null; super.stop(context); } public static MindmapDiagramEditorPlugin getInstance() { return instance; } protected ComposedAdapterFactory createAdapterFactory() { final List<AdapterFactoryImpl> factories = new ArrayList<AdapterFactoryImpl>(); factories.add(new MindmapItemProviderAdapterFactory()); factories.add(new ResourceItemProviderAdapterFactory()); factories.add(new ReflectiveItemProviderAdapterFactory()); return new ComposedAdapterFactory(factories); } public AdapterFactory getItemProvidersAdapterFactory() { return adapterFactory; } public static ImageDescriptor getBundledImageDescriptor(String path) { return AbstractUIPlugin.imageDescriptorFromPlugin(ID, path); } }