Medical Imaging Interaction Toolkit  2018.4.99-c4b6bb11
Medical Imaging Interaction Toolkit
berry::AbstractUICTKPlugin Class Reference

#include <berryAbstractUICTKPlugin.h>

Inheritance diagram for berry::AbstractUICTKPlugin:
Collaboration diagram for berry::AbstractUICTKPlugin:

Public Member Functions

 AbstractUICTKPlugin ()
 
IPreferencesServiceGetPreferencesService () const
 
SmartPointer< IPreferencesGetPreferences () const
 
IWorkbenchGetWorkbench ()
 
void start (ctkPluginContext *context) override
 
void stop (ctkPluginContext *context) override
 
- Public Member Functions inherited from berry::Plugin
 Plugin ()
 
void start (ctkPluginContext *context) override
 
void stop (ctkPluginContext *context) override
 
QSharedPointer< ctkPlugin > GetPlugin () const
 
ILogGetLog () const
 
QString GetStateLocation () const
 

Static Public Member Functions

static QIcon ImageDescriptorFromPlugin (const QString &pluginId, const QString &imageFilePath)
 
static QIcon GetMissingIcon ()
 

Additional Inherited Members

- Protected Attributes inherited from berry::Plugin
ctkPluginContext * m_Context
 

Detailed Description

Abstract base class for plug-ins that integrate with the BlueBerry platform UI.

Subclasses obtain the following capabilities:

Preferences

  • The platform core runtime contains general support for plug-in preferences (org.blueberry.core.runtime.Preferences). This class provides appropriate conversion to the older JFace preference API (org.blueberry.jface.preference.IPreferenceStore).
  • The method getPreferenceStore returns the JFace preference store (cf. Plugin.getPluginPreferences which returns a core runtime preferences object.
  • Subclasses may reimplement initializeDefaultPreferences to set up any default values for preferences using JFace API. In this case, initializeDefaultPluginPreferences should not be overridden.
  • Subclasses may reimplement initializeDefaultPluginPreferences to set up any default values for preferences using core runtime API. In this case, initializeDefaultPreferences should not be overridden.
  • Preferences are also saved automatically on plug-in shutdown. However, saving preferences immediately after changing them is strongly recommended, since that ensures that preference settings are not lost even in the event of a platform crash.

Dialogs

  • The dialog store is read the first time getDialogSettings is called.
  • The dialog store allows the plug-in to "record" important choices made by the user in a wizard or dialog, so that the next time the wizard/dialog is used the widgets can be defaulted to better values. A wizard could also use it to record the last 5 values a user entered into an editable combo - to show "recent values".
  • The dialog store is found in the file whose name is given by the constant FN_DIALOG_STORE. A dialog store file is first looked for in the plug-in's read/write state area; if not found there, the plug-in's install directory is checked. This allows a plug-in to ship with a read-only copy of a dialog store file containing initial values for certain settings.
  • Plug-in code can call saveDialogSettings to cause settings to be saved in the plug-in's read/write state area. A plug-in may opt to do this each time a wizard or dialog is closed to ensure the latest information is always safe on disk.
  • Dialog settings are also saved automatically on plug-in shutdown.

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.

Definition at line 91 of file berryAbstractUICTKPlugin.h.

Constructor & Destructor Documentation

◆ AbstractUICTKPlugin()

berry::AbstractUICTKPlugin::AbstractUICTKPlugin ( )

The bundle listener used for kicking off refreshPluginActions(). Creates an abstract UI plug-in runtime object.

Plug-in runtime classes are ctkPluginActivators and so must have an default constructor. This method is called by the runtime when the associated bundle is being activated.

Definition at line 33 of file berryAbstractUICTKPlugin.cpp.

Member Function Documentation

◆ GetMissingIcon()

QIcon berry::AbstractUICTKPlugin::GetMissingIcon ( )
static

Definition at line 279 of file berryAbstractUICTKPlugin.cpp.

◆ GetPreferences()

SmartPointer< IPreferences > berry::AbstractUICTKPlugin::GetPreferences ( ) const

◆ GetPreferencesService()

IPreferencesService * berry::AbstractUICTKPlugin::GetPreferencesService ( ) const

Returns the dialog settings for this UI plug-in. The dialog settings is used to hold persistent state data for the various wizards and dialogs of this plug-in in the context of a workbench.

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.

Returns
the dialog settings Returns the preferences service for this UI plug-in. This preferences service is used to hold persistent settings for this plug-in in the context of a workbench. Some of these settings will be user controlled, whereas others may be internal setting that are never exposed to the user.

If an error occurs reading the preferences service, an empty preference service is quietly created, initialized with defaults, and returned.

Returns
the preferences service

Definition at line 55 of file berryAbstractUICTKPlugin.cpp.

References BERRY_ERROR, and berry::Plugin::m_Context.

Referenced by GetPreferences(), berry::QtWorkbenchAdvisor::Initialize(), berry::WorkbenchWindowAdvisor::OpenIntro(), QmitkExtWorkbenchWindowAdvisor::PostWindowCreate(), and berry::QtStyleManager::QtStyleManager().

◆ GetWorkbench()

IWorkbench * berry::AbstractUICTKPlugin::GetWorkbench ( )

Returns the Platform UI workbench.

This method exists as a convenience for plugin implementors. The workbench can also be accessed by invoking PlatformUI.getWorkbench().

Returns
IWorkbench the workbench for this plug-in

Definition at line 78 of file berryAbstractUICTKPlugin.cpp.

References berry::PlatformUI::GetWorkbench().

◆ ImageDescriptorFromPlugin()

QIcon berry::AbstractUICTKPlugin::ImageDescriptorFromPlugin ( const QString &  pluginId,
const QString &  imageFilePath 
)
static

Creates and returns a new image descriptor for an image file located within the specified plug-in.

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".

Parameters
pluginIdthe id of the plug-in containing the image file; null is returned if the plug-in does not exist
imageFilePaththe relative path of the image file, relative to the root of the plug-in; the path must be legal
Returns
an image descriptor, or null if no image could be found

Definition at line 254 of file berryAbstractUICTKPlugin.cpp.

References image, and berry::QtStyleManager::ThemeIcon().

Referenced by berry::WorkbenchPart::SetInitializationData(), berry::IntroPart::SetInitializationData(), and QmitkDataNodeContextMenu::SetSelectedNodes().

◆ start()

void berry::AbstractUICTKPlugin::start ( ctkPluginContext *  context)
override

Returns a new image registry for this plugin-in. The registry will be used to manage images which are frequently used by the plugin-in.

The default implementation of this method creates an empty registry. Subclasses may override this method if needed.

Returns
ImageRegistry the resulting registry.
See also
#getImageRegistry Initializes an image registry with images which are frequently used by the plugin.

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.

Parameters
regthe registry to initalize
See also
#getImageRegistry Loads the dialog settings for this plug-in. The default implementation first looks for a standard named file in the plug-in's read/write state area; if no such file exists, the plug-in's install directory is checked to see if one was installed with some default settings; if no file is found in either place, a new empty dialog settings is created. If a problem occurs, an empty settings is silently used.

This framework method may be overridden, although this is typically unnecessary.

Refreshes the actions for the plugin. This method is called from startup.

This framework method may be overridden, although this is typically unnecessary.

Saves this plug-in's dialog settings. Any problems which arise are silently ignored. The AbstractUIPlugin implementation of this Plugin method refreshes the plug-in actions. Subclasses may extend this method, but must send super first.

Definition at line 196 of file berryAbstractUICTKPlugin.cpp.

References berry::Plugin::start().

Referenced by berry::WorkbenchPlugin::start().

◆ stop()

void berry::AbstractUICTKPlugin::stop ( ctkPluginContext *  context)
override

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). Subclasses may extend this method, but must send super last. A try-finally statement should be used where necessary to ensure that super.shutdown() is always done.

Definition at line 233 of file berryAbstractUICTKPlugin.cpp.

References berry::Plugin::stop().

Referenced by berry::WorkbenchPlugin::stop().


The documentation for this class was generated from the following files: