Difference between revisions of "PluginTypes"
Nickdrummond (talk | contribs) |
Nickdrummond (talk | contribs) (→EditorKitMenuAction: Added example plugin.xml code) |
||
Line 40: | Line 40: | ||
* Implement: '''org.protege.editor.core.ui.action.ProtegeAction''' | * Implement: '''org.protege.editor.core.ui.action.ProtegeAction''' | ||
− | * Example: '''org.protege.editor.owl.ui.action. | + | * Example: '''org.protege.editor.owl.ui.action.RemoveAllDisjointAxiomsAction''' |
+ | |||
+ | <extension id="menu.RemoveAllDisjointAxioms" | ||
+ | point="org.protege.editor.core.application.EditorKitMenuAction"> | ||
+ | <name value="Remove all disjoint axioms..."/> | ||
+ | <toolTip value="Removes all of the disjoint axioms."/> | ||
+ | <class value="org.protege.editor.owl.ui.action.RemoveAllDisjointAxiomsAction"/> | ||
+ | <path value="org.protege.editor.core.application.menu.EditMenu/SlotM-H"/> | ||
+ | <editorKitId value="OWLEditorKit"/> | ||
+ | </extension> | ||
+ | |||
+ | ''id'' = an ID for this plugin | ||
+ | |||
+ | ''point'' = the type of plugin | ||
+ | |||
+ | ''name'' = the name as it appears in the menu | ||
+ | |||
+ | ''toolTip'' = a description of the action shown in a tooltip | ||
+ | |||
+ | ''class'' = the implementing class (full package name) | ||
+ | |||
+ | ''path'' = the relative position in the menu (section pos, subsection pos) | ||
+ | |||
+ | ''editorKitId'' = the type of editor kit this plugin works with | ||
==== ToolBarAction ==== | ==== ToolBarAction ==== |
Revision as of 01:03, July 18, 2008
Protege 4 Plugin types
This page summarises the default types of plugin that can be implemented for Protege 4.
Back to Protege4DevDocs
Contents
Existing Plugin Types
This is a snapshot of the existing types of plugins that can be added to Protege4.0. The current set of plugin types can always be found in the code by looking at the plugin.xml file for the core.application and the owl bundles. Just look for the extension-points in these files - these point to the schemas that are used for describing each type of plugin. Plenty of examples can be found in the plugin.xml files themselves.
Core Plugins
EditorKitFactory
WorkspaceTab
ViewComponent
Implementation of this plugin is demonstrated in the TabbedHierarchyView example.
There are many abstract implementations of this plugin to use as a base, for example each entity type (Class, Property and Individual) has an abstract base.
- Implement: org.protege.editor.core.ui.view.ViewComponent
- Example: org.protege.editor.owl.ui.clshierarchy.ToldOWLClassHierarchyViewComponent
ViewAction
EditorKitMenuAction
Create an entry in a menu (and supply a mnemonic) and its associated action.
- Implement: org.protege.editor.core.ui.action.ProtegeAction
- Example: org.protege.editor.owl.ui.action.RemoveAllDisjointAxiomsAction
<extension id="menu.RemoveAllDisjointAxioms" point="org.protege.editor.core.application.EditorKitMenuAction"> <name value="Remove all disjoint axioms..."/> <toolTip value="Removes all of the disjoint axioms."/> <class value="org.protege.editor.owl.ui.action.RemoveAllDisjointAxiomsAction"/> <path value="org.protege.editor.core.application.menu.EditMenu/SlotM-H"/> <editorKitId value="OWLEditorKit"/> </extension>
id = an ID for this plugin
point = the type of plugin
name = the name as it appears in the menu
toolTip = a description of the action shown in a tooltip
class = the implementing class (full package name)
path = the relative position in the menu (section pos, subsection pos)
editorKitId = the type of editor kit this plugin works with
ToolBarAction
preferencespanel
Create a panel that will be loaded into the preferences dialog.
This should be for controlling a particular aspect of Protege4.0 in general or can be used as part of a bundle to control the behaviour of other plugins.
Preferences should be used to persist over sessions.
The applyChanges() method should be used to update the appropriate values in Protege's PreferencesManager.
- Implement: org.protege.editor.owl.ui.preferences.PreferencesPanel
- Example: org.protege.editor.owl.ui.tree.OWLTreePreferencesPanel