1 package cz
.cvut
.promod
.plugin
;
3 import cz
.cvut
.promod
.gui
.settings
.SettingPageData
;
8 * ProMod, master thesis project
9 * User: Petr Zverina, petr.zverina@gmail.com
10 * Date: 20:57:14, 12.10.2009
14 * Plugin is the base class for all plugins.
16 * @see cz.cvut.promod.plugin.notationSpecificPlugIn.notation.Notation
17 * @see cz.cvut.promod.plugin.notationSpecificPlugIn.module.Module
19 public interface Plugin
{
23 * Returns it's identifier. All notations have to have unique identifier during one ProMod run and all
24 * modules related to the same Notation have to have unique identifier. It means that for example Module M1 which is
25 * related to a Notation N1 and a Module M2 which is related to a Notation N2 can have the same identifier.
27 * @return it's identifier
29 public String
getIdentifier();
32 * Returns descriptive name of the plugin.
34 * @return descriptive name of the plugin
36 public String
getName();
39 * Returns detail plugin description.
41 * @return detail plugin description
43 public String
getDescription();
46 * When the init() method of any plugin is invoked, it means that this plugin has
47 * been accepted by the ProMod application.
49 * All plugins are supposed to use 'dependent' services only in this method or later (init() method of all plugins
50 * are invoked by the ProMod only once). No 'dependent' services are available before. SO NO PLUGIN SHOULD
51 * USE 'DEPENDENT' SERVICES IN IT'S CONSTRUCTING TIME.
53 * @see cz.cvut.promod.IndependentModelerMain and it's JavaDocs for more info about 'dependent' & 'independent' types of services.
60 * Is invoked when the ProMod is shutting down (not on application fall). This method is invoked by the
61 * modelerExit() method
62 * @see cz.cvut.promod.gui.Modeler
67 * Returns a list of pages (data about pages - SettingPageData) that are supposed to be inserted into the Settings
68 * Dialog of IndependentModeler. Because the Dialog works in a tree style all pages are able to have its children
70 * Important note: If a page A has a child B, then the parent (node A) is not supposed to hold any actual view. This
71 * parent page serves only as a container and when this parent is selected in the Settings dialog navigation,
72 * the view of it's first child is shown.
74 * @return list of all pages that are supposed to be inserted into the Modeler's Settings dialog
76 public List
<SettingPageData
> getSettingPages();