com.lightdev.app.shtm
public abstract class AbstractPlugin extends Object implements SHTMLPlugin
Defines some common methods for reuse in plug-ins. All
settings such as dockLocation or activation state
of a plug-in are stored persistently in a preferences file
with the help of class Prefs
. The preferences
file is valid for the current user, so each user has own
plug-in settings.
Menus are constructed with the help of class
DynamicResource
. This class needs menu definitions
accessible in a .properties file as described in the API docs
of DynamicResource
. I.e., methods of class
AbstractPlugin
only work as defined herein when
accompanied by such .properties file accordingly.
See Also: DynamicResource
Field Summary | |
---|---|
protected boolean | active status of plug-in |
protected JComponent | c component of this plug-in |
protected int | dockLocation current dock location |
protected JFrame | frame JFrame for dockLocation=none |
protected String | helpMenuId the id in the ResourceFile for the help menu of this plug-in |
protected JMenuItem | hMenu the help menu provided by this plug-in |
protected String | internalName the internal name of this plug-in |
protected SHTMLPanelImpl | owner the owner of this plug in |
protected String | pluginMenuId the id in the ResourceFile for the menu of this plug-in |
protected JMenuItem | pMenu the plug-in menu provided by this plug-in |
protected Preferences | prefs reference for user preferences for this class |
static String | PREFSID_PLUGIN_ACTIVE constant for active setting in preferences file |
static String | PREFSID_PLUGIN_DOCK_LOCATION constant for dock location setting in preferences file |
static TextResources | textResources TextResources of plug-in |
Constructor Summary | |
---|---|
AbstractPlugin()
construct an AbstractPlugin
Constructor may not have parameters so that java.lang.Class.newInstance can be used on it. |
Method Summary | |
---|---|
protected void | createFrame()
create a frame for the component of this plug-in, if it
has a JComponent to display. |
protected void | createFrameAsNeeded(int location)
create, show or hide frame as needed, depending
on a given dock location
|
protected void | createHelpMenu()
create the help menu |
protected void | createPluginMenu()
create the plug-in menu |
JComponent | getComponent()
get the component that this plug-in produces, if any
|
int | getDockLocation()
get the location the component returned by getDockComponent()
shall be docked at.
|
String | getGUIName()
get the name of the plug-in as it shall appear
on a GUI.
|
JMenuItem | getHelpMenu()
get a menu item providing documentation about this
plug-in.
|
String | getInternalName()
get the name used internally for this plug-in
|
SHTMLPanelImpl | getOwner()
get the owner of this plug-in
|
Action | getOwnerAction(String cmd)
get an action from the resource bundle of the owner of this plug-in
|
String | getOwnerResString(String nm)
get a string from the resource bundle of the owner of this plug-in
|
JMenuItem | getPluginMenu()
get a menu of actions this plug-in provides.
|
void | initHelpMenu() |
void | initPlugin(SHTMLPanelImpl owner)
init the plug-in
this is called by the PluginManager directly after instantiating the plug-in |
void | initPlugin(SHTMLPanel owner, String internalName, String pluginMenuId, String helpMenuId)
initialize the plugin
|
boolean | isActive()
get the status of the plug-in
|
void | setDockLocation(int location)
set the location the component returned by getDockComponent()
shall be docked at. |
void | setOwner(SHTMLPanelImpl owner)
set the owner of this plug-in
|
void | setStatus(boolean isActive)
set status of plug-in and persistently store setting in
a preferences file
|
Constructor may not have parameters so that java.lang.Class.newInstance can be used on it.
Parameters: location the dock location of the plug-in, one of DOCK_LOCATION_TOP, DOCK_LOCATION_BOTTOM, DOCK_LOCATION.LEFT, DOCK_LOCATION_RIGHT or DOCK_LOCATION_NONE, if the component shall not dock.
Returns: the component produced by this plug-in, or null if none is produced
Returns: the dock location, one of DOCK_LOCATION_TOP, DOCK_LOCATION_BOTTOM, DOCK_LOCATION.LEFT, DOCK_LOCATION_RIGHT or DOCK_LOCATION_NONE, if the component shall not dock.
Returns: the name of the plug-in
JMenu
is a decendant of JMenuItem
so this method may return a single menu item up to a whole
structure of submenus in its return value.
Returns: a menu item with help for this plug-in
Returns: the internal name of this plug-in
Returns: the owner of this plug-in
Parameters: cmd the name of the action to get
Returns: the action with the given name or null, if none is found
Parameters: nm the name of the string resource to get
Returns: the string with the given name or null, if none is found
JMenu
is a decendant of JMenuItem
so this method may return a single menu item up to a whole
structure of submenus in its return value.
Returns: the plug-in menu
Parameters: owner the owner of this plug-in internalName the internal name this plug-in shall have pluginMenuId the id of the plug-in menu in the TextResources, or null if no plugin-in menu is to be created helpMenuId the id of the help menu for this plug-in in the TextResources, or null if no help menu is to be created
Returns: true, if activated, false if not
Parameters: location the dock location, one of DOCK_LOCATION_TOP, DOCK_LOCATION_BOTTOM, DOCK_LOCATION.LEFT, DOCK_LOCATION_RIGHT or DOCK_LOCATION_NONE, if the component shall not dock.
Parameters: owner the main frame of the instance of SimplyHTML creating the plug-in
Parameters: isActive indicates whether or not the plug-in shall be activated