Class AbstractPlugin

java.lang.Object
com.lightdev.app.shtm.AbstractPlugin
All Implemented Interfaces:
SHTMLPlugin

public abstract class AbstractPlugin extends Object implements SHTMLPlugin
Base class for plug-ins of application SimplyHTML.

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 Details

    • textResources

      public static UIResources textResources
      TextResources of plug-in
    • PREFSID_PLUGIN_ACTIVE

      public static final String PREFSID_PLUGIN_ACTIVE
      constant for active setting in preferences file
      See Also:
    • PREFSID_PLUGIN_DOCK_LOCATION

      public static final String PREFSID_PLUGIN_DOCK_LOCATION
      constant for dock location setting in preferences file
      See Also:
    • internalName

      protected String internalName
      the internal name of this plug-in
    • pluginMenuId

      protected String pluginMenuId
      the id in the ResourceFile for the menu of this plug-in
    • helpMenuId

      protected String helpMenuId
      the id in the ResourceFile for the help menu of this plug-in
    • pMenu

      protected JMenuItem pMenu
      the plug-in menu provided by this plug-in
    • hMenu

      protected JMenuItem hMenu
      the help menu provided by this plug-in
    • active

      protected boolean active
      status of plug-in
    • dockLocation

      protected int dockLocation
      current dock location
    • c

      protected JComponent c
      component of this plug-in
    • frame

      protected JFrame frame
      JFrame for dockLocation=none
    • prefs

      protected Preferences prefs
      reference for user preferences for this class
    • owner

      protected SHTMLPanelImpl owner
      the owner of this plug in
  • Constructor Details

    • AbstractPlugin

      public AbstractPlugin()
      construct an AbstractPlugin

      Constructor may not have parameters so that java.lang.Class.newInstance can be used on it.

  • Method Details

    • initPlugin

      public void initPlugin(SHTMLPanelImpl owner)
      init the plug-in this is called by the PluginManager directly after instantiating the plug-in
    • createPluginMenu

      protected void createPluginMenu()
      create the plug-in menu
    • createHelpMenu

      protected void createHelpMenu()
      create the help menu
    • initHelpMenu

      public void initHelpMenu()
      Specified by:
      initHelpMenu in interface SHTMLPlugin
    • createFrame

      protected void createFrame()
      create a frame for the component of this plug-in, if it has a JComponent to display.
    • createFrameAsNeeded

      protected void createFrameAsNeeded(int location)
      create, show or hide frame as needed, depending on a given dock location
      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.
    • initPlugin

      public void initPlugin(SHTMLPanel owner, String internalName, String pluginMenuId, String helpMenuId)
      initialize the plugin
      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
    • setOwner

      public void setOwner(SHTMLPanelImpl owner)
      set the owner of this plug-in
      Specified by:
      setOwner in interface SHTMLPlugin
      Parameters:
      owner - the main frame of the instance of SimplyHTML creating the plug-in
    • getOwner

      public SHTMLPanelImpl getOwner()
      get the owner of this plug-in
      Specified by:
      getOwner in interface SHTMLPlugin
      Returns:
      the owner of this plug-in
    • setStatus

      public void setStatus(boolean isActive)
      set status of plug-in and persistently store setting in a preferences file
      Specified by:
      setStatus in interface SHTMLPlugin
      Parameters:
      isActive - indicates whether or not the plug-in shall be activated
    • setDockLocation

      public void setDockLocation(int location)
      set the location the component returned by getDockComponent() shall be docked at. Persistently store setting in a preferences file.
      Specified by:
      setDockLocation in interface SHTMLPlugin
      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.
    • getPluginMenu

      public JMenuItem getPluginMenu()
      get a menu of actions this plug-in provides.

      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.

      Specified by:
      getPluginMenu in interface SHTMLPlugin
      Returns:
      the plug-in menu
    • getHelpMenu

      public JMenuItem getHelpMenu()
      get a menu item providing documentation about this 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.

      Specified by:
      getHelpMenu in interface SHTMLPlugin
      Returns:
      a menu item with help for this plug-in
    • getGUIName

      public String getGUIName()
      get the name of the plug-in as it shall appear on a GUI.
      Specified by:
      getGUIName in interface SHTMLPlugin
      Returns:
      the name of the plug-in
    • getInternalName

      public String getInternalName()
      get the name used internally for this plug-in
      Specified by:
      getInternalName in interface SHTMLPlugin
      Returns:
      the internal name of this plug-in
    • getDockLocation

      public int getDockLocation()
      get the location the component returned by getDockComponent() shall be docked at.
      Specified by:
      getDockLocation in interface SHTMLPlugin
      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.
    • getComponent

      public JComponent getComponent()
      get the component that this plug-in produces, if any
      Specified by:
      getComponent in interface SHTMLPlugin
      Returns:
      the component produced by this plug-in, or null if none is produced
    • isActive

      public boolean isActive()
      get the status of the plug-in
      Specified by:
      isActive in interface SHTMLPlugin
      Returns:
      true, if activated, false if not
    • getOwnerResString

      public String getOwnerResString(String nm)
      get a string from the resource bundle of the owner of this plug-in
      Specified by:
      getOwnerResString in interface SHTMLPlugin
      Parameters:
      nm - the name of the string resource to get
      Returns:
      the string with the given name or null, if none is found
    • getOwnerAction

      public Action getOwnerAction(String cmd)
      get an action from the resource bundle of the owner of this plug-in
      Specified by:
      getOwnerAction in interface SHTMLPlugin
      Parameters:
      cmd - the name of the action to get
      Returns:
      the action with the given name or null, if none is found