tvbrowser.core.plugin

## Class AbstractPluginProxy

- java.lang.Object
- - tvbrowser.core.plugin.AbstractPluginProxy

- All Implemented Interfaces:
    ContextMenuIf, InfoIf, Marker, PluginAccess, ProgramReceiveIf, java.lang.Comparable<ProgramReceiveIf>, ButtonActionIf, PluginProxy
  Direct Known Subclasses:
    BeanShellPluginProxy, JavaPluginProxy

      public abstract class AbstractPluginProxy
      extends java.lang.Object
      implements PluginProxy, ContextMenuIf

  An abstract implementation of a plugin proxy. Encapsulates all calls to the plugin.

  This means that

  - All RuntimeExceptions thrown by the plugin are catched
  - An error message will be shown, if an operation is called on an inactive plugin that is only allowed with active plugins.
  Author:
    Til Schneider, www.murfman.de

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface tvbrowser.core.plugin.PluginProxy

      `PluginProxy.Comparator`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `DEFAULT_PLUGIN_ICON_NAME`
    `protected static Localizer` | `mLocalizer` The localizer for this class.

    - ### Fields inherited from interface devplugin.ContextMenuIf

      `ACTIONKEY_KEYBOARD_EVENT`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractPluginProxy()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addToArtificialPluginTree(MutableProgram program)`
    `protected void` | `assertActivatedState()` Checks whether the plugin is activated.
    `boolean` | `canReceiveProgramsWithTarget()` Gets whether the plugin supports receiving programs from other plugins with target.
    `boolean` | `canUseProgramTree()`
    `int` | `compareTo(ProgramReceiveIf other)`
    `protected abstract boolean` | `doCanReceiveProgramsWithTarget()` Really gets whether the plugin supports receiving programs from other plugins with target.
    `protected abstract boolean` | `doCanUseProgramTree()`
    `protected abstract boolean` | `doGetAllowsArtificialPluginTree()`
    `protected abstract PluginsProgramFilter[]` | `doGetAvailableFilter()` Really returns the available program filters that the plugin supports.
    `protected abstract java.lang.Class<? extends PluginsFilterComponent>[]` | `doGetAvailableFilterComponentClasses()` Really gets the available filter component classes.
    `protected abstract ActionMenu` | `doGetButtonAction()` Really gets the action to use for the main menu and the toolbar.
    `abstract PluginCommunication` | `doGetCommunicationClass()`
    `protected abstract ActionMenu` | `doGetContextMenuActions(Channel channel)` Really gets the actions for the context menu of a channel.
    `protected abstract ActionMenu` | `doGetContextMenuActions(Program program)` Really gets the actions for the context menu of a program.
    `protected abstract ImportanceValue` | `doGetImportanceValueForProgram(Program p)` Gets the importance value of a program.The importance of all active plugins is used to determinate the opacity of the used colors of a program, therefor a mean value of all values is used.
    `protected abstract PluginInfo` | `doGetInfo()` Really gets the meta information about the plugin.
    `protected abstract javax.swing.Icon[]` | `doGetMarkIcons(Program p)` Really gets the icon to use for marking programs in the program table.
    `protected abstract int` | `doGetMarkPriorityForProgram(Program p)` Really gets the mark priority for the given Program.
    `protected abstract ProgramReceiveTarget[]` | `doGetProgramReceiveTargets()` Really return an array of receive target or `null` if there is no target
    `protected abstract javax.swing.Icon[]` | `doGetProgramTableIcons(Program program)` Really gets the icons this Plugin provides for the given program.
    `protected abstract java.lang.String` | `doGetProgramTableIconText()` Gets the description text for the program table icons provided by this Plugin.
    `protected abstract ToolTipIcon[]` | `doGetProgramTableToolTipIcons(Program program)` Gets the ToolTipIcons for the program table icons provided by this Plugin.
    `protected abstract SettingsTabProxy` | `doGetSettingsTab()` Rally gets the SettingsTab object, which is added to the settings-window.
    `protected abstract void` | `doHandleTvBrowserStartFinished()`
    `protected abstract void` | `doHandleTvDataAdded(ChannelDayProgram newProg)` This method is automatically called, when TV data was added.
    `protected abstract void` | `doHandleTvDataAdded(MutableChannelDayProgram newProg)` This method is automatically called, when TV data was added.
    `protected abstract void` | `doHandleTvDataDeleted(ChannelDayProgram oldProg)` This method is automatically called, when TV data was deleted.
    `protected abstract void` | `doHandleTvDataTouched(ChannelDayProgram removedDayProgram, ChannelDayProgram addedDayProgram)` This method is automatically called, when TV data was touched.
    `protected abstract void` | `doHandleTvDataUpdateFinished()` This method is automatically called, when the TV data update is finished.
    `protected abstract boolean` | `doIsAllowedToDeleteProgramFilter(PluginsProgramFilter programFilter)` Really return if a program filter can be deleted.
    `protected abstract void` | `doLoadSettings(java.io.File userDirectory)` Really loads the settings for this plugin.
    `protected abstract void` | `doOnActivation()`
    `protected abstract void` | `doOnDeactivation()`
    `protected abstract boolean` | `doReceivePrograms(Program[] programArr, ProgramReceiveTarget receiveTarget)` Really receives a list of programs from another plugin with target.
    `protected abstract boolean` | `doReceiveValues(java.lang.String[] values, ProgramReceiveTarget receiveTarget)` Really receives a list of Strings from another plugin with a target.
    `protected abstract void` | `doSaveSettings(java.io.File userDirectory, boolean log)` Really saves the settings for this plugin.
    `PluginTreeNode` | `getArtificialRootNode()`
    `PluginsProgramFilter[]` | `getAvailableFilter()` Returns the available program filters that the plugin supports.
    `java.lang.Class<? extends PluginsFilterComponent>[]` | `getAvailableFilterComponentClasses()` Returns the available plugins filter component classes.
    `ActionMenu` | `getButtonAction()` Gets the action to use for the main menu and the toolbar.
    `PluginCommunication` | `getCommunicationClass()` If this Plugin grants access to functions it will provide a communication class for other Plugins to use.
    `ActionMenu` | `getContextMenuActions(Channel channel)` Gets the actions for the context menu of a channel.
    `ActionMenu` | `getContextMenuActions(Program program)` Gets the actions for the context menu of a program.
    `ImportanceValue` | `getImportanceValueForProgram(Program p)` Gets the importance value of a program.The importance of all active plugins is used to determinate the opacity of the used colors of a program, therefor a mean value of all values is used.
    `PluginInfo` | `getInfo()` Gets the meta information about the plugin.
    `javax.swing.Icon` | `getMarkIcon()` Gets the icon to use for marking programs in the program table.
    `javax.swing.Icon[]` | `getMarkIcons(Program p)` Gets the icons to use for marking programs in the program table.
    `int` | `getMarkPriorityForProgram(Program p)` Gets the mark priority for the given program that this Plugin uses.
    `javax.swing.Icon` | `getPluginIcon()` get the icon to represent this plugin in the settings
    `ProgramReceiveTarget[]` | `getProgramReceiveTargets()` Returns an array of receive target or `null` if there is no target
    `javax.swing.Icon[]` | `getProgramTableIcons(Program program)` Gets the icons this Plugin provides for the given program.
    `java.lang.String` | `getProgramTableIconText()` Gets the description text for the program table icons provided by this Plugin.
    `ToolTipIcon[]` | `getProgramTableToolTipIcons(Program program)` Gets the ToolTipIcons for the program table icons provided by this Plugin.
    `SettingsTabProxy` | `getSettingsTab()` Gets the SettingsTab object, which is added to the settings-window.
    `void` | `handlePluginException(java.lang.Throwable t)` Handles a runtime exception that was caused by the plugin.
    `void` | `handleTvBrowserStartFinished()` This method is called when the TV-Browser start is complete.
    `void` | `handleTvDataAdded(ChannelDayProgram newProg)` This method is automatically called, when TV data was added.
    `void` | `handleTvDataAdded(MutableChannelDayProgram newProg)` This method is automatically called, when TV data was added.
    `void` | `handleTvDataDeleted(ChannelDayProgram oldProg)` This method is automatically called, when TV data was deleted.
    `void` | `handleTvDataTouched(ChannelDayProgram removedDayProgram, ChannelDayProgram addedDayProgram)` This method is automatically called, when TV data was touched (that means something was done with it).
    `void` | `handleTvDataUpdateFinished()` This method is automatically called, when the TV data update is finished.
    `boolean` | `hasArtificialPluginTree()`
    `boolean` | `isActivated()` Gets whether the plugin is currently activated.
    `boolean` | `isAllowedToDeleteProgramFilter(PluginsProgramFilter programFilter)` Is used to track if a program filter be deleted.
    `(package private) void` | `loadSettings(java.io.File userDirectory)` Loads the settings for this plugin.
    `void` | `onActivation()` This method is automatically called after activating the plugin (either during the TV-Browser startup phase or after manually activating the disabled plugin in the settings).
    `void` | `onDeactivation()` This method is automatically called after deactivating the plugin.
    `boolean` | `receivePrograms(Program[] programArr, ProgramReceiveTarget receiveTarget)` Receives a list of programs from another plugin with a target.
    `boolean` | `receiveValues(java.lang.String[] values, ProgramReceiveTarget receiveTarget)` Receives a list of Strings from another plugin with a target.
    `void` | `removeArtificialPluginTree()`
    `(package private) void` | `saveSettings(java.io.File userDirectory, boolean log)` Saves the settings for this plugin.
    `(package private) void` | `setActivated(boolean activated)` Sets whether the plugin is currently activated.
    `(package private) abstract void` | `setParentFrame(java.awt.Frame parent)` Sets the parent frame to the plugin.
    `java.lang.String` | `toString()` Gets the name of the plugin.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface tvbrowser.core.plugin.PluginProxy

      `getAfterDataUpdateInfoPanel, getPluginCenterPanelWrapper, getPluginFileName, getProgramRatingIfs, getRootNode, handleTvBrowserSettingsChanged, handleTvDataUpdateStarted`

    - ### Methods inherited from interface devplugin.PluginAccess

      `getId`

    - ### Methods inherited from interface tvbrowser.core.plugin.ButtonActionIf

      `getButtonActionDescription`

    - ### Methods inherited from interface devplugin.InfoIf

      `getId, getPluginCategory`

- - ### Field Detail

    - #### DEFAULT_PLUGIN_ICON_NAME

          public static final java.lang.String DEFAULT_PLUGIN_ICON_NAME

      See Also:
        Constant Field Values

    - #### mLocalizer

          protected static final Localizer mLocalizer

      The localizer for this class.

  - ### Constructor Detail

    - #### AbstractPluginProxy

          protected AbstractPluginProxy()

  - ### Method Detail

    - #### isActivated

          public final boolean isActivated()

      Gets whether the plugin is currently activated.
      Specified by:
        `isActivated` in interface `PluginProxy`
      Returns:
        whether the plugin is currently activated.
      See Also:
        `setActivated(boolean)`, `assertActivatedState()`

    - #### setActivated

          final void setActivated(boolean activated)

      Sets whether the plugin is currently activated.

      This method may only be called by the `PluginProxyManager` (that's why it is package private).

      Parameters:
        `activated` - Whether the plugin is currently activated.
      See Also:
        `isActivated()`, `assertActivatedState()`

    - #### setParentFrame

          abstract void setParentFrame(java.awt.Frame parent)

      Sets the parent frame to the plugin.
      Parameters:
        `parent` - The parent frame to set.

    - #### loadSettings

          final void loadSettings(java.io.File userDirectory)
                           throws TvBrowserException

      Loads the settings for this plugin.
      Parameters:
        `userDirectory` - The directory where the user data is stored.
      Throws:
        `TvBrowserException` - If loading failed.

    - #### doLoadSettings

          protected abstract void doLoadSettings(java.io.File userDirectory)
                                          throws TvBrowserException

      Really loads the settings for this plugin.
      Parameters:
        `userDirectory` - The directory where the user data is stored.
      Throws:
        `TvBrowserException` - If loading failed.

    - #### saveSettings

          final void saveSettings(java.io.File userDirectory,
                          boolean log)
                           throws TvBrowserException

      Saves the settings for this plugin.
      Parameters:
        `userDirectory` - The directory where the user data is stored.
      Throws:
        `TvBrowserException` - If saving failed.

    - #### doSaveSettings

          protected abstract void doSaveSettings(java.io.File userDirectory,
                            boolean log)
                                          throws TvBrowserException

      Really saves the settings for this plugin.
      Parameters:
        `userDirectory` - The directory where the user data is stored.
      Throws:
        `TvBrowserException` - If saving failed.

    - #### getInfo

          public final PluginInfo getInfo()

      Gets the meta information about the plugin.
      Specified by:
        `getInfo` in interface `InfoIf`
      Specified by:
        `getInfo` in interface `PluginAccess`
      Returns:
        The meta information about the plugin.

    - #### doGetInfo

          protected abstract PluginInfo doGetInfo()

      Really gets the meta information about the plugin.
      Returns:
        The meta information about the plugin.

    - #### getSettingsTab

          public final SettingsTabProxy getSettingsTab()

      Gets the SettingsTab object, which is added to the settings-window.
      Specified by:
        `getSettingsTab` in interface `PluginProxy`
      Returns:
        the SettingsTab object or `null` if the plugin does not provide this feature.

    - #### doGetSettingsTab

          protected abstract SettingsTabProxy doGetSettingsTab()

      Rally gets the SettingsTab object, which is added to the settings-window.
      Returns:
        the SettingsTab object or `null` if the plugin does not provide this feature.

    - #### getContextMenuActions

          public final ActionMenu getContextMenuActions(Program program)

      Gets the actions for the context menu of a program.
      Specified by:
        `getContextMenuActions` in interface `ContextMenuIf`
      Parameters:
        `program` - The program the context menu will be shown for.
      Returns:
        the actions this plugin provides for the given program or `null` if the plugin does not provide this feature.

    - #### doGetContextMenuActions

          protected abstract ActionMenu doGetContextMenuActions(Program program)

      Really gets the actions for the context menu of a program.
      Parameters:
        `program` - The program the context menu will be shown for.
      Returns:
        the actions this plugin provides for the given program or `null` if the plugin does not provide this feature.
      See Also:
        `getContextMenuActions(Program)`

    - #### getContextMenuActions

          public final ActionMenu getContextMenuActions(Channel channel)

      Gets the actions for the context menu of a channel.
      Specified by:
        `getContextMenuActions` in interface `PluginProxy`
      Parameters:
        `channel` - The channel the context menu will be shown for.
      Returns:
        the actions this plugin provides for the given channel or `null` if the plugin does not provide this feature.

    - #### doGetContextMenuActions

          protected abstract ActionMenu doGetContextMenuActions(Channel channel)

      Really gets the actions for the context menu of a channel.
      Parameters:
        `channel` - The channel the context menu will be shown for.
      Returns:
        the actions this plugin provides for the given channel or `null` if the plugin does not provide this feature.
      See Also:
        `getContextMenuActions(Program)`

    - #### getButtonAction

          public final ActionMenu getButtonAction()

      Gets the action to use for the main menu and the toolbar.
      Specified by:
        `getButtonAction` in interface `ButtonActionIf`
      Specified by:
        `getButtonAction` in interface `PluginProxy`
      Returns:
        the action to use for the menu and the toolbar or `null` if the plugin does not provide this feature.

    - #### doGetButtonAction

          protected abstract ActionMenu doGetButtonAction()

      Really gets the action to use for the main menu and the toolbar.
      Returns:
        the action to use for the menu and the toolbar or `null` if the plugin does not provide this feature.
      See Also:
        `getButtonAction()`

    - #### getMarkIcons

          public javax.swing.Icon[] getMarkIcons(Program p)

      Gets the icons to use for marking programs in the program table.
      Specified by:
        `getMarkIcons` in interface `Marker`
      Specified by:
        `getMarkIcons` in interface `PluginAccess`
      Returns:
        the icons to use for marking programs in the program table.

    - #### getMarkIcon

          public javax.swing.Icon getMarkIcon()

      Gets the icon to use for marking programs in the program table.
      Specified by:
        `getMarkIcon` in interface `Marker`
      Specified by:
        `getMarkIcon` in interface `PluginAccess`
      Returns:
        the icon to use for marking programs in the program table.

    - #### doGetMarkIcons

          protected abstract javax.swing.Icon[] doGetMarkIcons(Program p)

      Really gets the icon to use for marking programs in the program table.
      Returns:
        the icon to use for marking programs in the program table.

    - #### getProgramTableIconText

          public final java.lang.String getProgramTableIconText()

      Gets the description text for the program table icons provided by this Plugin.

      Return `null` if your plugin does not provide this feature.

      Specified by:
        `getProgramTableIconText` in interface `PluginAccess`
      Returns:
        The description text for the program table icons or `null` if the plugin does not provide this feature.
      See Also:
        `getProgramTableIcons(Program)`

    - #### doGetProgramTableIconText

          protected abstract java.lang.String doGetProgramTableIconText()

      Gets the description text for the program table icons provided by this Plugin.

      Return `null` if your plugin does not provide this feature.

      Returns:
        The description text for the program table icons or `null` if the plugin does not provide this feature.
      See Also:
        `getProgramTableIcons(Program)`

    - #### getProgramTableToolTipIcons

          public ToolTipIcon[] getProgramTableToolTipIcons(Program program)

      Gets the ToolTipIcons for the program table icons provided by this Plugin.

      Override this method if your plugin provides icons for the program table (shown below the start time) and you want the icons to be shown in the tooltip.

      Specified by:
        `getProgramTableToolTipIcons` in interface `PluginAccess`
      Parameters:
        `program` - The program to get the ToolTipIcons for.
      Returns:
        The description text for the program table icons or `null` if the plugin does not provide this feature.
      Since:
        3.4.2
      See Also:
        `getProgramTableIcons(Program)`

    - #### doGetProgramTableToolTipIcons

          protected abstract ToolTipIcon[] doGetProgramTableToolTipIcons(Program program)

      Gets the ToolTipIcons for the program table icons provided by this Plugin.

      Override this method if your plugin provides icons for the program table (shown below the start time) and you want the icons to be shown in the tooltip.

      Parameters:
        `program` - The program to get the ToolTipIcons for.
      Returns:
        The description text for the program table icons or `null` if the plugin does not provide this feature.
      Since:
        3.4.2
      See Also:
        `getProgramTableIcons(Program)`

    - #### getProgramTableIcons

          public final javax.swing.Icon[] getProgramTableIcons(Program program)

      Gets the icons this Plugin provides for the given program. These icons will be shown in the program table under the start time.

      Return `null` if your plugin does not provide this feature.

      Specified by:
        `getProgramTableIcons` in interface `PluginAccess`
      Parameters:
        `program` - The programs to get the icons for.
      Returns:
        The icons for the given program or `null`.
      See Also:
        `getProgramTableIconText()`

    - #### doGetProgramTableIcons

          protected abstract javax.swing.Icon[] doGetProgramTableIcons(Program program)

      Really gets the icons this Plugin provides for the given program. These icons will be shown in the program table under the start time.

      Return `null` if your plugin does not provide this feature.

      Parameters:
        `program` - The programs to get the icons for.
      Returns:
        The icons for the given program or `null`.
      See Also:
        `getProgramTableIconText()`

    - #### handleTvDataUpdateFinished

          public final void handleTvDataUpdateFinished()

      This method is automatically called, when the TV data update is finished.
      Specified by:
        `handleTvDataUpdateFinished` in interface `PluginProxy`
      See Also:
        `handleTvDataAdded(ChannelDayProgram)`, `handleTvDataDeleted(ChannelDayProgram)`

    - #### doHandleTvDataUpdateFinished

          protected abstract void doHandleTvDataUpdateFinished()

      This method is automatically called, when the TV data update is finished.
      See Also:
        `handleTvDataAdded(ChannelDayProgram)`, `handleTvDataDeleted(ChannelDayProgram)`

    - #### handleTvDataAdded

          public void handleTvDataAdded(MutableChannelDayProgram newProg)

      This method is automatically called, when TV data was added. (E.g. after an update).

      The TV data can be modified by the plugin!

      Override this method if you want to change/add data. Don't do other things than changing/adding data, use `handleTvDataAdded(ChannelDayProgram)` instead.

      Parameters:
        `newProg` - The new ChannelDayProgram.
      See Also:
        `handleTvDataDeleted(ChannelDayProgram)`, `handleTvDataTouched(ChannelDayProgram, ChannelDayProgram)`

    - #### doHandleTvDataAdded

          protected abstract void doHandleTvDataAdded(MutableChannelDayProgram newProg)

      This method is automatically called, when TV data was added. (E.g. after an update).

      The TV data can be modified by the plugin!

      Override this method if you want to change/add data. Don't do other things than changing/adding data, use `handleTvDataAdded(ChannelDayProgram)` instead.

      Parameters:
        `newProg` - The new ChannelDayProgram.
      See Also:
        `handleTvDataDeleted(ChannelDayProgram)`, `handleTvDataTouched(ChannelDayProgram, ChannelDayProgram)`

    - #### handleTvDataAdded

          public final void handleTvDataAdded(ChannelDayProgram newProg)

      This method is automatically called, when TV data was added. (E.g. after an update).

      The TV data may be modified by the plugin! So this method must be called before new TV data is saved.

      Specified by:
        `handleTvDataAdded` in interface `PluginProxy`
      Parameters:
        `newProg` - The new ChannelDayProgram.
      See Also:
        `handleTvDataDeleted(ChannelDayProgram)`, `handleTvDataUpdateFinished()`

    - #### doHandleTvDataAdded

          protected abstract void doHandleTvDataAdded(ChannelDayProgram newProg)

      This method is automatically called, when TV data was added. (E.g. after an update).

      The TV data may be modified by the plugin! So this method must be called before new TV data is saved.

      Parameters:
        `newProg` - The new ChannelDayProgram.
      See Also:
        `handleTvDataDeleted(ChannelDayProgram)`, `handleTvDataUpdateFinished()`

    - #### handleTvDataDeleted

          public final void handleTvDataDeleted(ChannelDayProgram oldProg)

      This method is automatically called, when TV data was deleted. (E.g. after an update).
      Specified by:
        `handleTvDataDeleted` in interface `PluginProxy`
      Parameters:
        `oldProg` - The old ChannelDayProgram which was deleted.
      See Also:
        `handleTvDataAdded(ChannelDayProgram)`, `handleTvDataUpdateFinished()`

    - #### doHandleTvDataDeleted

          protected abstract void doHandleTvDataDeleted(ChannelDayProgram oldProg)

      This method is automatically called, when TV data was deleted. (E.g. after an update).
      Parameters:
        `oldProg` - The old ChannelDayProgram which was deleted.
      See Also:
        `handleTvDataAdded(ChannelDayProgram)`, `handleTvDataUpdateFinished()`

    - #### handleTvDataTouched

          public final void handleTvDataTouched(ChannelDayProgram removedDayProgram,
                                 ChannelDayProgram addedDayProgram)

      This method is automatically called, when TV data was touched (that means something was done with it). (E.g. after an update).

      Specified by:
        `handleTvDataTouched` in interface `PluginProxy`
      Parameters:
        `removedDayProgram` - The old ChannelDayProgram.
        `addedDayProgram` - The new ChannelDayProgram.
      See Also:
        `handleTvDataAdded(ChannelDayProgram)`, `handleTvDataDeleted(ChannelDayProgram)`, `handleTvDataUpdateFinished()`

    - #### doHandleTvDataTouched

          protected abstract void doHandleTvDataTouched(ChannelDayProgram removedDayProgram,
                                   ChannelDayProgram addedDayProgram)

      This method is automatically called, when TV data was touched. (E.g. after an update of already existing TV data).

      The TV data may be modified by the plugin! So this method must be called before new TV data is saved.

      Parameters:
        `removedDayProgram` - The previous ChannelDayProgram.
        `addedDayProgram` - The new ChannelDayProgram.
      See Also:
        `handleTvDataAdded(ChannelDayProgram)`, `handleTvDataDeleted(ChannelDayProgram)`, `handleTvDataUpdateFinished()`

    - #### onActivation

          public void onActivation()

      Description copied from interface: `PluginProxy`
      This method is automatically called after activating the plugin (either during the TV-Browser startup phase or after manually activating the disabled plugin in the settings).
      Specified by:
        `onActivation` in interface `PluginProxy`

    - #### doOnActivation

          protected abstract void doOnActivation()
                                          throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### onDeactivation

          public void onDeactivation()

      Description copied from interface: `PluginProxy`
      This method is automatically called after deactivating the plugin.
      Specified by:
        `onDeactivation` in interface `PluginProxy`

    - #### doOnDeactivation

          protected abstract void doOnDeactivation()
                                            throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### canUseProgramTree

          public boolean canUseProgramTree()

      Specified by:
        `canUseProgramTree` in interface `PluginProxy`
      Returns:
        true, if the programs of this plugin are handled by the plugin tree view

    - #### handleTvBrowserStartFinished

          public void handleTvBrowserStartFinished()

      This method is called when the TV-Browser start is complete.
      Specified by:
        `handleTvBrowserStartFinished` in interface `PluginProxy`
      Since:
        2.2

    - #### doHandleTvBrowserStartFinished

          protected abstract void doHandleTvBrowserStartFinished()

    - #### doCanUseProgramTree

          protected abstract boolean doCanUseProgramTree()

    - #### toString

          public final java.lang.String toString()

      Gets the name of the plugin.

      This way Plugin objects may be used directly in GUI components like JLists.

      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        the name of the plugin.

    - #### handlePluginException

          public void handlePluginException(java.lang.Throwable t)

      Handles a runtime exception that was caused by the plugin.
      Specified by:
        `handlePluginException` in interface `PluginProxy`
      Parameters:
        `t` - The exception to handle

    - #### canReceiveProgramsWithTarget

          public final boolean canReceiveProgramsWithTarget()

      Gets whether the plugin supports receiving programs from other plugins with target.
      Specified by:
        `canReceiveProgramsWithTarget` in interface `ProgramReceiveIf`
      Returns:
        Whether the plugin supports receiving programs from other plugins with target.
      Since:
        2.5
      See Also:
        `receivePrograms(Program[],ProgramReceiveTarget)`

    - #### doCanReceiveProgramsWithTarget

          protected abstract boolean doCanReceiveProgramsWithTarget()

      Really gets whether the plugin supports receiving programs from other plugins with target.
      Returns:
        Whether the plugin supports receiving programs from other plugins with target.
      Since:
        2.5
      See Also:
        `receivePrograms(Program[],ProgramReceiveTarget)`

    - #### receivePrograms

          public final boolean receivePrograms(Program[] programArr,
                                ProgramReceiveTarget receiveTarget)

      Receives a list of programs from another plugin with a target.
      Specified by:
        `receivePrograms` in interface `ProgramReceiveIf`
      Parameters:
        `programArr` - The programs passed from the other plugin.
        `receiveTarget` - The target of the programs.
      Returns:
        `true`, if the programs were correctly received and the target really exists.
      Since:
        2.5
      See Also:
        `canReceiveProgramsWithTarget()`

    - #### doReceivePrograms

          protected abstract boolean doReceivePrograms(Program[] programArr,
                                  ProgramReceiveTarget receiveTarget)

      Really receives a list of programs from another plugin with target.
      Parameters:
        `programArr` - The programs passed from the other plugin with target.
        `receiveTarget` - The target of the programs.
      Since:
        2.5
      See Also:
        `canReceiveProgramsWithTarget()`

    - #### receiveValues

          public final boolean receiveValues(java.lang.String[] values,
                              ProgramReceiveTarget receiveTarget)

      Receives a list of Strings from another plugin with a target.
      Specified by:
        `receiveValues` in interface `ProgramReceiveIf`
      Parameters:
        `values` - The value array passed from the other plugin.
        `receiveTarget` - The receive target of the programs.
      Returns:
        `true` if the value array was handled correct, false otherwise.
      Since:
        2.7
      See Also:
        `canReceiveProgramsWithTarget()`

    - #### doReceiveValues

          protected abstract boolean doReceiveValues(java.lang.String[] values,
                                ProgramReceiveTarget receiveTarget)

      Really receives a list of Strings from another plugin with a target.
      Parameters:
        `values` - The value array passed from the other plugin.
        `receiveTarget` - The receive target of the programs.
      Returns:
        `true` if the value array was handled correct, false otherwise.
      Since:
        2.7
      See Also:
        `canReceiveProgramsWithTarget()`

    - #### getProgramReceiveTargets

          public final ProgramReceiveTarget[] getProgramReceiveTargets()

      Returns an array of receive target or `null` if there is no target
      Specified by:
        `getProgramReceiveTargets` in interface `ProgramReceiveIf`
      Returns:
        The supported receive targets.
      Since:
        2.5
      See Also:
        `canReceiveProgramsWithTarget()`, `receivePrograms(Program[],ProgramReceiveTarget)`

    - #### doGetProgramReceiveTargets

          protected abstract ProgramReceiveTarget[] doGetProgramReceiveTargets()

      Really return an array of receive target or `null` if there is no target
      Returns:
        The supported receive targets.
      Since:
        2.5
      See Also:
        `canReceiveProgramsWithTarget()`, `receivePrograms(Program[],ProgramReceiveTarget)`

    - #### getAvailableFilter

          public PluginsProgramFilter[] getAvailableFilter()

      Returns the available program filters that the plugin supports.
      Specified by:
        `getAvailableFilter` in interface `PluginAccess`
      Returns:
        The available program filters that the plugin supports or `null` if it supports no filter.
      Since:
        2.5

    - #### doGetAvailableFilter

          protected abstract PluginsProgramFilter[] doGetAvailableFilter()

      Really returns the available program filters that the plugin supports.
      Returns:
        The available program filters that the plugin supports or `null` if it supports no filter.
      Since:
        2.5

    - #### isAllowedToDeleteProgramFilter

          public boolean isAllowedToDeleteProgramFilter(PluginsProgramFilter programFilter)

      Is used to track if a program filter be deleted. Should be make sure only the plugin itself can delete program filters.
      Specified by:
        `isAllowedToDeleteProgramFilter` in interface `PluginProxy`
      Parameters:
        `programFilter` - The program filter to delete.
      Returns:
        True if the program filter component can be deleted.
      Since:
        2.5

    - #### doIsAllowedToDeleteProgramFilter

          protected abstract boolean doIsAllowedToDeleteProgramFilter(PluginsProgramFilter programFilter)

      Really return if a program filter can be deleted.
      Parameters:
        `programFilter` - The program filter to delete.
      Returns:
        True if the program filter component can be deleted.
      Since:
        2.5

    - #### getAvailableFilterComponentClasses

          public java.lang.Class<? extends PluginsFilterComponent>[] getAvailableFilterComponentClasses()

      Returns the available plugins filter component classes.
      ATTENTON: Use return `(Class[]) new Class[] {MyFilterComponent1.class,MyFilterComponent2.class};` because the creation of a class array with generic type didn't work.
      Specified by:
        `getAvailableFilterComponentClasses` in interface `PluginAccess`
      Returns:
        The available plugins filter components classes or `null` if no plugins filter components are supported.
      Since:
        2.5

    - #### doGetAvailableFilterComponentClasses

          protected abstract java.lang.Class<? extends PluginsFilterComponent>[] doGetAvailableFilterComponentClasses()

      Really gets the available filter component classes.
      Returns:
        The available plugins filter components classes or `null` if no plugins filter components are supported.
      Since:
        2.5

    - #### getMarkPriorityForProgram

          public int getMarkPriorityForProgram(Program p)

      Gets the mark priority for the given program that this Plugin uses.

      The mark priority can be `Program.NO_MARK_PRIORITY`, `Program.MIN_MARK_PRIORITY`, `Program.LOWER_MEDIUM_MARK_PRIORITY`, `Program.MEDIUM_MARK_PRIORITY`, `Program.HIGHER_MEDIUM_MARK_PRIORITY` or `Program.MAX_MARK_PRIORITY`.

      Specified by:
        `getMarkPriorityForProgram` in interface `Marker`
      Parameters:
        `p` - The program to get the mark prioriy for.
      Returns:
        The mark priority for the given program for this plugin.
      Since:
        2.5.1

    - #### doGetMarkPriorityForProgram

          protected abstract int doGetMarkPriorityForProgram(Program p)

      Really gets the mark priority for the given Program.

      Parameters:
        `p` - The program to get the mark priority for.
      Returns:
        The mark priority for the given program.

    - #### assertActivatedState

          protected void assertActivatedState()
                                       throws TvBrowserException

      Checks whether the plugin is activated. If it is not an error message is shown.
      Throws:
        `TvBrowserException` - If the plugin is not activated

    - #### getPluginIcon

          public javax.swing.Icon getPluginIcon()

      Description copied from interface: `PluginProxy`
      get the icon to represent this plugin in the settings
      Specified by:
        `getPluginIcon` in interface `PluginProxy`
      Returns:
        icon

    - #### hasArtificialPluginTree

          public final boolean hasArtificialPluginTree()

      Specified by:
        `hasArtificialPluginTree` in interface `PluginProxy`

    - #### doGetAllowsArtificialPluginTree

          protected abstract boolean doGetAllowsArtificialPluginTree()

    - #### addToArtificialPluginTree

          public final void addToArtificialPluginTree(MutableProgram program)

      Specified by:
        `addToArtificialPluginTree` in interface `PluginProxy`

    - #### getArtificialRootNode

          public final PluginTreeNode getArtificialRootNode()

      Specified by:
        `getArtificialRootNode` in interface `PluginProxy`

    - #### removeArtificialPluginTree

          public final void removeArtificialPluginTree()

    - #### compareTo

          public int compareTo(ProgramReceiveIf other)

      Specified by:
        `compareTo` in interface `java.lang.Comparable<ProgramReceiveIf>`

    - #### getImportanceValueForProgram

          public final ImportanceValue getImportanceValueForProgram(Program p)

      Gets the importance value of a program.The importance of all active plugins is used to determinate the opacity of the used colors of a program, therefor a mean value of all values is used.

      The importance value can be created as a weighted total of the following values.

      - `Program.DEFAULT_PROGRAM_IMPORTANCE`,
      - `Program.MIN_PROGRAM_IMPORTANCE`,
      - `Program.LOWER_MEDIUM_PROGRAM_IMPORTANCE`,
      - `Program.MEDIUM_PROGRAM_IMPORTANCE`,
      - `Program.HIGHER_MEDIUM_PROGRAM_IMPORTANCE` or
      - `Program.MAX_PROGRAM_IMPORTANCE`.

      Specified by:
        `getImportanceValueForProgram` in interface `PluginProxy`
      Parameters:
        `p` - The program to get the importance value for.
      Returns:
        The importance value for the given program.
      Since:
        3.0

    - #### doGetImportanceValueForProgram

          protected abstract ImportanceValue doGetImportanceValueForProgram(Program p)

      Gets the importance value of a program.The importance of all active plugins is used to determinate the opacity of the used colors of a program, therefor a mean value of all values is used.

      The importance value can be created as a weighted total of the following values.

      - `Program.DEFAULT_PROGRAM_IMPORTANCE`,
      - `Program.MIN_PROGRAM_IMPORTANCE`,
      - `Program.LOWER_MEDIUM_PROGRAM_IMPORTANCE`,
      - `Program.MEDIUM_PROGRAM_IMPORTANCE`,
      - `Program.HIGHER_MEDIUM_PROGRAM_IMPORTANCE` or
      - `Program.MAX_PROGRAM_IMPORTANCE`.

      Parameters:
        `p` - The program to get the importance value for.
      Returns:
        The importance value for the given program.
      Since:
        3.0

    - #### getCommunicationClass

          public PluginCommunication getCommunicationClass()

      Description copied from interface: `PluginAccess`
      If this Plugin grants access to functions it will provide a communication class for other Plugins to use.

      Specified by:
        `getCommunicationClass` in interface `PluginAccess`
      Returns:
        The communication class of this Plugin or `null` if there is no communication class for this Plugin.

    - #### doGetCommunicationClass

          public abstract PluginCommunication doGetCommunicationClass()

TV-Browser 3.4.3, Copyright (C) 2004-2008 TV-Browser Team (dev@tvbrowser.org)