|
Eclipse Platform Release 3.0 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.eclipse.core.runtime.Plugin org.eclipse.ui.plugin.AbstractUIPlugin
Abstract base class for plug-ins that integrate with the Eclipse platform UI.
Subclasses obtain the following capabilities:
Preferences
Dialogs
Images
For easy access to your plug-in object, use the singleton pattern. Declare a static variable in your plug-in class for the singleton. Store the first (and only) instance of the plug-in class in the singleton when it is created. Then access the singleton when needed through a static getDefault method.
See the description on Plugin.
Field Summary |
Fields inherited from class org.eclipse.core.runtime.Plugin |
PLUGIN_PREFERENCE_SCOPE, PREFERENCES_DEFAULT_OVERRIDE_BASE_NAME, PREFERENCES_DEFAULT_OVERRIDE_FILE_NAME |
Constructor Summary | |
AbstractUIPlugin()
Creates an abstract UI plug-in runtime object. | |
AbstractUIPlugin(IPluginDescriptor descriptor)
Deprecated. In Eclipse 3.0 this constructor has been replaced by AbstractUIPlugin(). Implementations of MyPlugin(IPluginDescriptor descriptor) should be changed to MyPlugin() and call super() instead of super(descriptor). The MyPlugin(IPluginDescriptor descriptor) constructor is called only for plug-ins which explicitly require the org.eclipse.core.runtime.compatibility plug-in (or, as in this case, subclasses which might). |
Method Summary | |
protected ImageRegistry | createImageRegistry()
Returns a new image registry for this plugin-in. |
IDialogSettings | getDialogSettings()
Returns the dialog settings for this UI plug-in. |
ImageRegistry | getImageRegistry()
Returns the image registry for this UI plug-in. |
IPreferenceStore | getPreferenceStore()
Returns the preference store for this UI plug-in. |
IWorkbench | getWorkbench()
Returns the Platform UI workbench. |
static ImageDescriptor | imageDescriptorFromPlugin(String pluginId,
String imageFilePath)
Creates and returns a new image descriptor for an image file located within the specified plug-in. |
protected void | initializeDefaultPluginPreferences()
Deprecated. this is only called if the runtime compatibility layer is present. See the deprecated comment in Plugin.initializeDefaultPluginPreferences(). |
protected void | initializeDefaultPreferences(IPreferenceStore store)
Deprecated. this is only called if the runtime compatibility layer is present. See initializeDefaultPluginPreferences(). |
protected void | initializeImageRegistry(ImageRegistry reg)
Initializes an image registry with images which are frequently used by the plugin. |
protected void | loadDialogSettings()
Loads the dialog settings for this plug-in. |
protected void | loadPreferenceStore()
Deprecated. As of Eclipse 2.0, a basic preference store exists for all plug-ins. This method now exists only for backwards compatibility. It is called as the plug-in's preference store is being initialized. The plug-ins preferences are loaded from the file regardless of what this method does. |
protected void | refreshPluginActions()
Refreshes the actions for the plugin. |
protected void | saveDialogSettings()
Saves this plug-in's dialog settings. |
protected void | savePreferenceStore()
Deprecated. As of Eclipse 2.0, preferences exist for all plug-ins. The equivalent of this method is Plugin.savePluginPreferences. This method now calls savePluginPreferences, and exists only for backwards compatibility. |
void | shutdown()
Deprecated. In Eclipse 3.0, shutdown has been replaced by Plugin.stop(BundleContext context). Implementations of shutdown should be changed to extend stop(BundleContext context) and call super.stop(context) instead of super.shutdown(). Unlike super.shutdown(), super.stop(context) must be called as the very last thing rather than as the very first thing. The shutdown method is called only for plug-ins which explicitly require the org.eclipse.core.runtime.compatibility plug-in; in contrast, the stop method is always called. |
void | start(BundleContext context)
The AbstractUIPlugin implementation of this Plugin method refreshes the plug-in actions. |
void | startup()
Deprecated. In Eclipse 3.0, startup has been replaced by Plugin.start(BundleContext context). Implementations of startup should be changed to extend start(BundleContext context) and call super.start(context) instead of super.startup(). Like super.startup(), super.stop(context) must be called as the very first thing. The startup method is called only for plug-ins which explicitly require the org.eclipse.core.runtime.compatibility plug-in; in contrast, the start method is always called. |
void | stop(BundleContext context)
The AbstractUIPlugin implementation of this Plugin method saves this plug-in's preference and dialog stores and shuts down its image registry (if they are in use). |
Methods inherited from class org.eclipse.core.runtime.Plugin |
find, find, getBundle, getDescriptor, getLog, getPluginPreferences, getStateLocation, internalInitializeDefaultPluginPreferences, isDebugging, openStream, openStream, savePluginPreferences, setDebugging, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public AbstractUIPlugin(IPluginDescriptor descriptor)
Note that instances of plug-in runtime classes are automatically created by the platform in the course of plug-in activation.
public AbstractUIPlugin()
Plug-in runtime classes are BundleActivators and so must have an default constructor. This method is called by the runtime when the associated bundle is being activated.
For more details, see Plugin's default constructor.
Method Detail |
protected ImageRegistry createImageRegistry()
The default implementation of this method creates an empty registry. Subclasses may override this method if needed.
public IDialogSettings getDialogSettings()
If an error occurs reading the dialog store, an empty one is quietly created and returned.
Subclasses may override this method but are not expected to.
public ImageRegistry getImageRegistry()
The image registry contains the images used by this plug-in that are very frequently used and so need to be globally shared within the plug-in. Since many OSs have a severe limit on the number of images that can be in memory at any given time, a plug-in should only keep a small number of images in their registry.
Subclasses should reimplement initializeImageRegistry if they have custom graphic images to load.
Subclasses may override this method but are not expected to.
public IPreferenceStore getPreferenceStore()
If an error occurs reading the preference store, an empty preference store is quietly created, initialized with defaults, and returned.
Subclasses should reimplement initializeDefaultPreferences if they have custom graphic images to load.
public IWorkbench getWorkbench()
This method exists as a convenience for plugin implementors. The workbench can also be accessed by invoking PlatformUI.getWorkbench().
protected void initializeDefaultPreferences(IPreferenceStore store)
This method is called after the preference store is initially loaded (default values are never stored in preference stores).
The default implementation of this method does nothing. Subclasses should reimplement this method if the plug-in has any preferences.
A subclass may reimplement this method to set default values for the preference store using JFace API. This is the older way of initializing default values. If this method is reimplemented, do not override initializeDefaultPluginPreferences().
protected void initializeDefaultPluginPreferences()
A subclass may reimplement this method to set default values for the core runtime preference store in the standard way. This is the recommended way to do this. The older initializeDefaultPreferences(IPreferenceStore) method serves a similar purpose. If this method is reimplemented, do not send super, and do not override initializeDefaultPreferences(IPreferenceStore).
protected void initializeImageRegistry(ImageRegistry reg)
The image registry contains the images used by this plug-in that are very frequently used and so need to be globally shared within the plug-in. Since many OSs have a severe limit on the number of images that can be in memory at any given time, each plug-in should only keep a small number of images in its registry.
Implementors should create a JFace image descriptor for each frequently used image. The descriptors describe how to create/find the image should it be needed. The image described by the descriptor is not actually allocated until someone retrieves it.
Subclasses may override this method to fill the image registry.
protected void loadDialogSettings()
This framework method may be overridden, although this is typically unnecessary.
protected void loadPreferenceStore()
This framework method may be overridden, although this is typically unnecessary.
protected void refreshPluginActions()
This framework method may be overridden, although this is typically unnecessary.
protected void saveDialogSettings()
protected void savePreferenceStore()
public void startup() throws CoreException
WARNING: Plug-ins may not be started in the UI thread. The startup() method should not assume that its code runs in the UI thread, otherwise SWT thread exceptions may occur on startup.'
public void shutdown() throws CoreException
public void start(BundleContext context) throws Exception
This method should be overridden in subclasses that need to do something when this plug-in is started. Implementors should call the inherited method at the first possible point to ensure that any system requirements can be met.
If this method throws an exception, it is taken as an indication that plug-in initialization has failed; as a result, the plug-in will not be activated; moreover, the plug-in will be marked as disabled and ineligible for activation for the duration.
Plug-in startup code should be robust. In the event of a startup failure, the plug-in's shutdown method will be invoked automatically, in an attempt to close open files, etc.
Note 1: This method is automatically invoked by the platform the first time any code in the plug-in is executed.
Note 2: This method is intended to perform simple initialization of the plug-in environment. The platform may terminate initializers that do not complete in a timely fashion.
Note 3: The class loader typically has monitors acquired during invocation of this method. It is strongly recommended that this method avoid synchronized blocks or other thread locking mechanisms, as this would lead to deadlock vulnerability.
Note 4: The supplied bundle context represents the plug-in to the OSGi framework. For security reasons, it is strongly recommended that this object should not be divulged.
Clients must never explicitly call this method.
public void stop(BundleContext context) throws Exception
This method should be re-implemented in subclasses that need to do something when the plug-in is shut down. Implementors should call the inherited method as late as possible to ensure that any system requirements can be met.
Plug-in shutdown code should be robust. In particular, this method should always make an effort to shut down the plug-in. Furthermore, the code should not assume that the plug-in was started successfully, as this method will be invoked in the event of a failure during startup.
Note 1: If a plug-in has been automatically started, this method will be automatically invoked by the platform when the platform is shut down.
Note 2: This method is intended to perform simple termination of the plug-in environment. The platform may terminate invocations that do not complete in a timely fashion.
Note 3: The supplied bundle context represents the plug-in to the OSGi framework. For security reasons, it is strongly recommended that this object should not be divulged.
Clients must never explicitly call this method.
public static ImageDescriptor imageDescriptorFromPlugin(String pluginId, String imageFilePath)
This is a convenience method that simply locates the image file in within the plug-in (no image registries are involved). The path is relative to the root of the plug-in, and takes into account files coming from plug-in fragments. The path may include $arg$ elements. However, the path must not have a leading "." or path separator. Clients should use a path like "icons/mysample.gif" rather than "./icons/mysample.gif" or "/icons/mysample.gif".
|
Eclipse Platform Release 3.0 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Guidelines for using Eclipse APIs.
Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.