Module tvbrowser

Class PluginManagerImpl

  • All Implemented Interfaces:
    PluginManager

    public class PluginManagerImpl
    extends java.lang.Object
    implements PluginManager
    The implementation of the PluginManager interface. This class is the connection for the plugins to TV-Browser.
    Author:
    Til Schneider, www.murfman.de
    • Method Detail

      • getInstance

        public static PluginManager getInstance()
        Returns the instance of this class, if there is no instance it is created first.
        Returns:
        The instance of this class.
      • getProgram

        public Program getProgram​(Date date,
                                  java.lang.String progID)
        Description copied from interface: PluginManager
        Gets a program.
        Specified by:
        getProgram in interface PluginManager
        Parameters:
        date - The date when the program is shown.
        progID - The ID of the program.
        Returns:
        The program or null if there is no such program.
      • getPrograms

        public Program[] getPrograms​(Date date,
                                     java.lang.String progID)
        Gets a program.
        Specified by:
        getPrograms in interface PluginManager
        Parameters:
        date - The date when the program is shown.
        progID - The ID of the program.
        Returns:
        The program or null if there is no such program.
      • getProgram

        public Program getProgram​(java.lang.String uniqueID)
        Gets a program.
        Specified by:
        getProgram in interface PluginManager
        Parameters:
        uniqueID - The unique ID (Program.getUniqueID()) of this program.
        Returns:
        The program or null if there is no such program.
      • getPrograms

        public Program[] getPrograms​(java.lang.String uniqueID)
        Description copied from interface: PluginManager
        Gets programs. (Well this is stupid but if programs start at the same time on the same channel on the same date they have the same UniqueID.)
        Specified by:
        getPrograms in interface PluginManager
        Parameters:
        uniqueID - The unique ID (Program.getUniqueID()) of the programs.
        Returns:
        The programs or null if there are no such programs.
      • getSubscribedChannels

        public Channel[] getSubscribedChannels()
        Gets all channels the user has subscribed.
        Specified by:
        getSubscribedChannels in interface PluginManager
        Returns:
        all channels the user has subscribed.
      • getChannelDayProgram

        public java.util.Iterator<Program> getChannelDayProgram​(Date date,
                                                                Channel channel)
        Gets an iterator through all programs of the specified channel at the specified date.
        Specified by:
        getChannelDayProgram in interface PluginManager
        Parameters:
        date - The date of the programs.
        channel - The channel of the programs.
        Returns:
        an Iterator for all programs of one day and channel.
        If the requested data is not available, the iterator is empty, but not null.
      • getJavaPluginId

        public java.lang.String getJavaPluginId​(Plugin javaPlugin)
        Gets the ID of the given Java plugin.
        Specified by:
        getJavaPluginId in interface PluginManager
        Parameters:
        javaPlugin - The Java plugin to get the ID for.
        Returns:
        The ID of the given Java plugin.
      • getActivatedPluginForId

        public PluginAccess getActivatedPluginForId​(java.lang.String pluginId)
        Gets the activated plugin with the given ID.
        Specified by:
        getActivatedPluginForId in interface PluginManager
        Parameters:
        pluginId - The ID of the wanted plugin.
        Returns:
        The plugin with the given ID or null if no such plugin exists or if the plugin is not activated.
      • createPluginContextMenu

        public javax.swing.JPopupMenu createPluginContextMenu​(Program program,
                                                              ContextMenuIf caller)
        Creates a context menu for the given program containing all plugins.
        Specified by:
        createPluginContextMenu in interface PluginManager
        Parameters:
        program - The program to create the context menu for
        caller - The calling plugin.
        Returns:
        a context menu for the given program.
      • createPluginContextMenu

        public javax.swing.JPopupMenu createPluginContextMenu​(Program program,
                                                              ContextMenuIf caller,
                                                              ActionMenu callerMenu)
        Description copied from interface: PluginManager
        Creates a context menu for the given program containing all plugins.
        Specified by:
        createPluginContextMenu in interface PluginManager
        Parameters:
        program - The program to create the context menu for
        caller - The calling plugin.
        callerMenu - The menu that should be shown for the calling plugin or null if no menu should be shown for the calling plugin.
        Returns:
        a context menu for the given program.
      • getExampleProgram

        public Program getExampleProgram()
        Returns an example program. You can use it for preview stuff.
        Specified by:
        getExampleProgram in interface PluginManager
        Returns:
        an example program.
        Since:
        0.9.7.4
      • handleProgramSingleClick

        @Deprecated(since="3.3.1")
        public void handleProgramSingleClick​(Program program)
        Deprecated.
        since 3.3.1 Use ProgramMouseEventHandler and/or ProgramKeyEventHandler instead.
        Description copied from interface: PluginManager
        Handles a single left click on a program.

        Executes the single left click context menu function. Plugins should use handleProgramDoubleClick(Program program, Plugin caller). It prevents the Plugin to be activated a second time.

        Specified by:
        handleProgramSingleClick in interface PluginManager
        Parameters:
        program - The program to pass to the single left click context menu function.
      • handleProgramSingleClick

        @Deprecated(since="3.3.1")
        public void handleProgramSingleClick​(Program program,
                                             ContextMenuIf caller)
        Deprecated.
        since 3.3.1 Use ProgramMouseEventHandler and/or ProgramKeyEventHandler instead.
        Description copied from interface: PluginManager
        Handles a single left click on a program.

        Executes the default context menu plugin.

        Specified by:
        handleProgramSingleClick in interface PluginManager
        Parameters:
        program - The program to pass to the default context menu function.
        caller - The ContextMenuIf that calls this. Prevents the ContextMenuIf to be activated twice
      • handleProgramSingleCtrlClick

        @Deprecated(since="3.3.1")
        public void handleProgramSingleCtrlClick​(Program program,
                                                 ContextMenuIf caller)
        Deprecated.
        since 3.3.1 Use ProgramMouseEventHandler and/or ProgramKeyEventHandler instead.
        Description copied from interface: PluginManager
        Handles a single left click on a program with Ctrl being held.

        Executes the default context menu plugin.

        Specified by:
        handleProgramSingleCtrlClick in interface PluginManager
        Parameters:
        program - The program to pass to the default context menu function.
        caller - The ContextMenuIf that calls this. Prevents the ContextMenuIf to be activated twice
      • handleProgramDoubleClick

        @Deprecated(since="3.3.1")
        public void handleProgramDoubleClick​(Program program)
        Deprecated.
        since 3.3.1 Use ProgramMouseEventHandler and/or ProgramKeyEventHandler instead.
        Handles a double click on a program.

        Executes the default context menu plugin. Plugins should use handleProgramDoubleClick(Program program, Plugin caller). It prevetns the Plugin to be activated a second time.

        Specified by:
        handleProgramDoubleClick in interface PluginManager
        Parameters:
        program - The program to pass to the default context menu plugin.
        Since:
        1.1
      • handleProgramDoubleClick

        @Deprecated(since="3.3.1")
        public void handleProgramDoubleClick​(Program program,
                                             ContextMenuIf caller)
        Deprecated.
        since 3.3.1 Use ProgramMouseEventHandler and/or ProgramKeyEventHandler instead.
        Handles a double click on a program.

        Executes the default context menu plugin.

        Specified by:
        handleProgramDoubleClick in interface PluginManager
        Parameters:
        program - The program to pass to the default context menu plugin.
        caller - ContextMenuIf that calls this. Prevents the ContextMenuIf to be activated twice
        Since:
        1.1
      • handleProgramMiddleClick

        @Deprecated(since="3.3.1")
        public void handleProgramMiddleClick​(Program program)
        Deprecated.
        since 3.3.1 Use ProgramMouseEventHandler and/or ProgramKeyEventHandler instead.
        Handles a middle click on a program.

        Executes the middle click context menu plugin. Plugins should use handleProgramMiddleClick(Program program, Plugin caller). It prevents the Plugin to be activated a second time.

        Specified by:
        handleProgramMiddleClick in interface PluginManager
        Parameters:
        program - The program to pass to the middle click context menu plugin.
        Since:
        1.1
      • handleProgramMiddleClick

        @Deprecated(since="3.3.1")
        public void handleProgramMiddleClick​(Program program,
                                             ContextMenuIf caller)
        Deprecated.
        since 3.3.1 Use ProgramMouseEventHandler and/or ProgramKeyEventHandler instead.
        Handles a middle click on a program.

        Executes the middle click context menu action.

        Specified by:
        handleProgramMiddleClick in interface PluginManager
        Parameters:
        program - The program to pass to the middle click context menu action.
        caller - ContextMenuIf that calls this. Prevents the ContextMenuIf to be activated twice.
        Since:
        1.1
      • handleProgramMiddleDoubleClick

        @Deprecated(since="3.3.1")
        public void handleProgramMiddleDoubleClick​(Program program)
        Deprecated.
        since 3.3.1 Use ProgramMouseEventHandler and/or ProgramKeyEventHandler instead.
        Handles a middle click on a program.

        Executes the middle click context menu action. Plugins should use handleProgramMiddleClick(Program program, Plugin caller). It prevents the Plugin to be activated a second time.

        Specified by:
        handleProgramMiddleDoubleClick in interface PluginManager
        Parameters:
        program - The program to pass to the middle click context menu action.
        Since:
        3.0
      • handleProgramMiddleDoubleClick

        @Deprecated(since="3.3.1")
        public void handleProgramMiddleDoubleClick​(Program program,
                                                   ContextMenuIf caller)
        Deprecated.
        since 3.3.1 Use ProgramMouseEventHandler and/or ProgramKeyEventHandler instead.
        Handles a middle double click on a program.

        Executes the middle double click context menu action.

        Specified by:
        handleProgramMiddleDoubleClick in interface PluginManager
        Parameters:
        program - The program to pass to the middle double click context menu action.
        caller - ContextMenuIf that calls this. Prevents the ContextMenuIf to be activated twice.
        Since:
        3.0
      • getDefaultContextMenuPlugin

        public PluginAccess getDefaultContextMenuPlugin()
        Gets the plugin that is used as default in the context menu.
        Returns:
        the default context menu plugin.
        Since:
        1.1
      • getIconFromTheme

        public javax.swing.ImageIcon getIconFromTheme​(Plugin plugin,
                                                      java.lang.String category,
                                                      java.lang.String iconName,
                                                      int size)
        Returns an icon from the icon-theme-system If your plugin has icons that are not available as icons within an theme, you can add your icons into your jar-file. The directory structure must be like this: [PackageOfYourPlugin]/icons/[size]x[size]/[category]/[icon].png Please try to use the icon naming conventions of the FreeDesktop project: http://cvs.freedesktop.org/[*]checkout[*]/icon-theme/default-icon-theme/spec/icon-naming-spec.xml (please remove the [ ])
        Specified by:
        getIconFromTheme in interface PluginManager
        Parameters:
        plugin - Plugin that wants to load an icon
        category - Category of the icon (action, etc...)
        iconName - icon name without file extension
        size - Size of the icon
        Returns:
        Icon if found, null if not
      • getIconFromTheme

        public javax.swing.ImageIcon getIconFromTheme​(Plugin plugin,
                                                      ThemeIcon icon)
        Returns an Icon from the Icon-Theme-System If your Plugin has Icons that are not available as Icons within an Theme, you can add your Icons into your Jar-File. The Directory-Structure must be like this: [PackageOfYourPlugin]/icons/[Size]x[Size]/[category]/[icon].png Please try to use the FreeDesktop-Icon Naming Conventions http://cvs.freedesktop.org/[*]checkout[*]/icon-theme/default-icon-theme/spec/icon-naming-spec.xml (please remove the [ ])
        Specified by:
        getIconFromTheme in interface PluginManager
        Parameters:
        plugin - Plugin that wants to load an Icon
        icon - ThemeIcon that represents the Icon
        Returns:
        Icon if found, null if not
      • showSettings

        public void showSettings​(Plugin plugin)
        Show the Settings-Dialog for a Plugin
        Specified by:
        showSettings in interface PluginManager
        Parameters:
        plugin - Use this Plugin
        Since:
        2.2
      • showSettings

        public void showSettings​(java.lang.String settingsItem)
        Show the Settings-Dialog with a Specific SettingsItem
        Specified by:
        showSettings in interface PluginManager
        Parameters:
        settingsItem - SettingsItem to show (e.g. SettingsItem.CHANNELS)
        Since:
        2.2
      • getMarkedPrograms

        public Program[] getMarkedPrograms()
        Return all marked programs.
        Specified by:
        getMarkedPrograms in interface PluginManager
        Returns:
        The marked programs
        Since:
        2.2
      • getReceiveIfs

        public ProgramReceiveIf[] getReceiveIfs()
        Return all Plugins/Functions that are able to receive programs.
        Specified by:
        getReceiveIfs in interface PluginManager
        Returns:
        The ProgramReceiveIfs.
        Since:
        2.5
      • getReceiveIfs

        public ProgramReceiveIf[] getReceiveIfs​(ProgramReceiveIf caller,
                                                ProgramReceiveTarget callerTarget)
        Return all Plugins/Functions that are able to receive programs.
        Specified by:
        getReceiveIfs in interface PluginManager
        Parameters:
        caller - The caller ProgramReceiveIf.
        callerTarget - The target that calls the receive if array.
        Returns:
        The ProgramReceiveIfs.
        Since:
        2.5
      • getReceiceIfForId

        public ProgramReceiveIf getReceiceIfForId​(java.lang.String id)
        Return the ReceiveIfFor given id or null if there is no ReceiveIf for the given id.
        Specified by:
        getReceiceIfForId in interface PluginManager
        Parameters:
        id - The id of the ReceiveIf.
        Returns:
        The ReceiveIf with the given id or null
        Since:
        2.5
      • scrollToProgram

        public void scrollToProgram​(Program program)
        Let TV-Browser scroll to the given program.
        Specified by:
        scrollToProgram in interface PluginManager
        Parameters:
        program - The program to scroll to.
        Since:
        2.5
      • selectProgram

        public void selectProgram​(Program program)
        Description copied from interface: PluginManager
        Selects the given program in the program table.

        Specified by:
        selectProgram in interface PluginManager
        Parameters:
        program - The program to select.
      • scrollToTime

        public void scrollToTime​(int time)
        Let TV-Browser scroll to the given time.
        Specified by:
        scrollToTime in interface PluginManager
        Parameters:
        time - The time to scroll to in minutes after midnight.
        Since:
        2.5
      • scrollToTime

        public void scrollToTime​(int time,
                                 boolean highlight)
        Let TV-Browser scroll to the given time.
        Specified by:
        scrollToTime in interface PluginManager
        Parameters:
        time - The time to scroll to in minutes after midnight.
        highlight - If programs at scroll time should be highlighted (if scroll highlighting is enabled.)
        Since:
        3.3.3
      • scrollToChannel

        public void scrollToChannel​(Channel channel)
        Let TV-Browser scroll to the given channel.
        Specified by:
        scrollToChannel in interface PluginManager
        Parameters:
        channel - The channel to scroll to.
        Since:
        2.5
      • goToDate

        public void goToDate​(Date date)
        Let TV-Browser change the date to the given date.
        Specified by:
        goToDate in interface PluginManager
        Parameters:
        date - The date to show the program for.
        Since:
        2.5
      • getFilterManager

        public FilterManager getFilterManager()
        Returns the filter manager of TV-Browser. With the filter manager you get access to the filter system of TV-Browser. You can add or remove filters of your plugin and switch the currently used filter.
        Specified by:
        getFilterManager in interface PluginManager
        Returns:
        The filter manager of TV-Browser or null if TV-Browser isn't fully loaded.
        Since:
        2.5
      • handleTvBrowserStartFinished

        protected void handleTvBrowserStartFinished()
      • getCurrentDate

        public Date getCurrentDate()
        Description copied from interface: PluginManager
        Get the date currently shown in the program table.
        Specified by:
        getCurrentDate in interface PluginManager
        Returns:
        date currently shown in program table
      • getAllProgramRatingIfs

        public ProgramRatingIf[] getAllProgramRatingIfs()
        Gets all ProgramRatingIfs of all plugins. You can get all available ratings for one program.
        Specified by:
        getAllProgramRatingIfs in interface PluginManager
        Returns:
        all ProgramRatingIfs of all plugins
        Since:
        2.7
      • deleteFileOnNextStart

        public void deleteFileOnNextStart​(java.lang.String path)
        Description copied from interface: PluginManager
        adds a file name to the list of files to be deleted on next TV-Browser start
        Specified by:
        deleteFileOnNextStart in interface PluginManager
        Parameters:
        path - full file path
      • isDataAvailable

        public boolean isDataAvailable​(Date date)
        Description copied from interface: PluginManager
        Checks if some TV data is available on the given date
        Specified by:
        isDataAvailable in interface PluginManager
        Parameters:
        date - The date to check.
        Returns:
        true if at least one channel has data for the date
      • showBalloonTip

        public boolean showBalloonTip​(java.lang.String caption,
                                      java.lang.String message,
                                      java.awt.TrayIcon.MessageType messageType)
        Description copied from interface: PluginManager
        Shows a balloon tip on the TV-Browser tray icon.

        Specified by:
        showBalloonTip in interface PluginManager
        Parameters:
        caption - The caption of the displayed message.
        message - The message to display in the balloon tip.
        messageType - The java.awt.TrayIcon.MessageType of the displayed balllon tip.
        Returns:
        If the balloon tip could be shown.
      • createRemovedProgramContextMenu

        public javax.swing.JPopupMenu createRemovedProgramContextMenu​(Program program)
        Description copied from interface: PluginManager
        Creates a context menu for the given program. It can be used to provide search and scroll function to programs that were removed on data update.

        Specified by:
        createRemovedProgramContextMenu in interface PluginManager
        Parameters:
        program - The removed program to create the context menu for
        Returns:
        A context menu for the given program.
      • isTvBrowserStartFinished

        public boolean isTvBrowserStartFinished()
        Description copied from interface: PluginManager
        Gets if TV-Browser start was finished.

        Specified by:
        isTvBrowserStartFinished in interface PluginManager
        Returns:
        true if TV-Browser start was finished, false otherwise.
      • getPluginContextMenu

        public javax.swing.JMenuItem getPluginContextMenu​(Program program,
                                                          java.lang.String id)
        Description copied from interface: PluginManager
        Creates a context menu for the given program containing all plugins.
        Specified by:
        getPluginContextMenu in interface PluginManager
        Parameters:
        program - The program to create the context menu for
        id - The id of the plugin to get the context menu for
        Returns:
        a context menu item for the given program for the plugin with the id id or null if the plugin doesn't exits or has no context menu entry for the given program.