Class AbstractPlugin

  • All Implemented Interfaces:
    SHTMLPlugin

    public abstract class AbstractPlugin
    extends java.lang.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
    • Constructor Summary

      Constructors 
      Constructor Description
      AbstractPlugin()
      construct an AbstractPlugin
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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
      javax.swing.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.
      java.lang.String getGUIName()
      get the name of the plug-in as it shall appear on a GUI.
      javax.swing.JMenuItem getHelpMenu()
      get a menu item providing documentation about this plug-in.
      java.lang.String getInternalName()
      get the name used internally for this plug-in
      SHTMLPanelImpl getOwner()
      get the owner of this plug-in
      javax.swing.Action getOwnerAction​(java.lang.String cmd)
      get an action from the resource bundle of the owner of this plug-in
      java.lang.String getOwnerResString​(java.lang.String nm)
      get a string from the resource bundle of the owner of this plug-in
      javax.swing.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, java.lang.String internalName, java.lang.String pluginMenuId, java.lang.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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • textResources

        public static UIResources textResources
        TextResources of plug-in
      • PREFSID_PLUGIN_ACTIVE

        public static final java.lang.String PREFSID_PLUGIN_ACTIVE
        constant for active setting in preferences file
        See Also:
        Constant Field Values
      • PREFSID_PLUGIN_DOCK_LOCATION

        public static final java.lang.String PREFSID_PLUGIN_DOCK_LOCATION
        constant for dock location setting in preferences file
        See Also:
        Constant Field Values
      • internalName

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

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

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

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

        protected javax.swing.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 javax.swing.JComponent c
        component of this plug-in
      • frame

        protected javax.swing.JFrame frame
        JFrame for dockLocation=none
      • prefs

        protected java.util.prefs.Preferences prefs
        reference for user preferences for this class
    • Constructor Detail

      • AbstractPlugin

        public AbstractPlugin()
        construct an AbstractPlugin

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

    • Method Detail

      • 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
      • 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,
                               java.lang.String internalName,
                               java.lang.String pluginMenuId,
                               java.lang.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
      • 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 javax.swing.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 javax.swing.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 java.lang.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 java.lang.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 javax.swing.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 java.lang.String getOwnerResString​(java.lang.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 javax.swing.Action getOwnerAction​(java.lang.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