org.gudy.azureus2.pluginsimpl.local.ui.tables
Class TableManagerImpl

java.lang.Object
  extended by org.gudy.azureus2.pluginsimpl.local.ui.tables.TableManagerImpl
All Implemented Interfaces:
TableManager

public class TableManagerImpl
extends java.lang.Object
implements TableManager

Manage Tables There's a TableManager per plugin interface

Since:
2.0.8.5
Author:
TuxPaper

Field Summary
 
Fields inherited from interface org.gudy.azureus2.plugins.ui.tables.TableManager
TABLE_ACTIVITY, TABLE_ACTIVITY_BIG, TABLE_ALL_PEERS, TABLE_MYSHARES, TABLE_MYTORRENTS_ALL_BIG, TABLE_MYTORRENTS_COMPLETE, TABLE_MYTORRENTS_COMPLETE_BIG, TABLE_MYTORRENTS_INCOMPLETE, TABLE_MYTORRENTS_INCOMPLETE_BIG, TABLE_MYTORRENTS_UNOPENED, TABLE_MYTORRENTS_UNOPENED_BIG, TABLE_MYTRACKER, TABLE_TORRENT_FILES, TABLE_TORRENT_PEERS, TABLE_TORRENT_PIECES, TABLE_TORRENT_TRACKERS
 
Constructor Summary
TableManagerImpl(UIManagerImpl _ui_manager)
           
 
Method Summary
 void addColumn(TableColumn tableColumn)
          Adds a column to an Azureus UI table.
 TableContextMenuItem addContextMenuItem(java.lang.String tableID, java.lang.String resourceKey)
          Adds a Context Menu item to the specified table or to all table context menus.
 TableContextMenuItem addContextMenuItem(TableContextMenuItem parent, java.lang.String resourceKey)
          Adds a Context Menu item as a sub-item of the given menu item.
 TableColumn createColumn(java.lang.String tableID, java.lang.String cellID)
          Creates a column for a UI table.
 void registerColumn(java.lang.Class forDataSourceType, java.lang.String cellID, TableColumnCreationListener listener)
          Register a column for a specific data source type.
 void unregisterColumn(java.lang.Class forDataSourceType, java.lang.String cellID, TableColumnCreationListener listener)
          unregister a listener added by @link TableManager.registerColumn(Class, String, TableColumnCreationListener)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TableManagerImpl

public TableManagerImpl(UIManagerImpl _ui_manager)
Method Detail

createColumn

public TableColumn createColumn(java.lang.String tableID,
                                java.lang.String cellID)
Description copied from interface: TableManager
Creates a column for a UI table.

In order for this object to be displayed in an Azureus UI table, the returned object must be added via the TableManager.addColumn(TableColumn)

The distinction between creating and adding a column is required because some TableColumn functions are not available or act differently after the column had been added.

In order to the plugin to display correctly the column name, you are required to create a key in your language file consisting of the TableManager Table ID of the table you are adding the column to, plus ".column." plus the logical name of your column.

For example, if you are creating a column named "quality" in the table TABLE_TORRENT_FILES, you would have to add the following to your language file:
Files.column.quality=Column Title
and if you wish to have a short description of the column (visible when the user is setting up columns), create another entry with the same key plus ".info". For the example above:
Files.column.quality.info=One line description


If you wish to add a menu item to tables that show torrents, use MenuManager.addMenuItem(String, String)

Specified by:
createColumn in interface TableManager
Parameters:
tableID - Which table the column will be visible in. See TableManager.
cellID - The logical name of the column.
Returns:
an interface object allowing modification of the table column.

registerColumn

public void registerColumn(java.lang.Class forDataSourceType,
                           java.lang.String cellID,
                           TableColumnCreationListener listener)
Description copied from interface: TableManager
Register a column for a specific data source type. When the column is created, the listener will be fired.

This method is independent of TableManager.createColumn(String, String) and TableManager.addColumn(TableColumn). This method improves upon them by saving you from creating and adding the column to every potential table it could be displayed in. It allows for your column to be added to future tables without and code changes on your end.

Specified by:
registerColumn in interface TableManager
Parameters:
forDataSourceType - Class of datasource you want to add a column to, such as Download, DownloadTypeComplete, DownloadTypeIncomplete
cellID - The logical name of the column.

unregisterColumn

public void unregisterColumn(java.lang.Class forDataSourceType,
                             java.lang.String cellID,
                             TableColumnCreationListener listener)
Description copied from interface: TableManager
unregister a listener added by @link TableManager.registerColumn(Class, String, TableColumnCreationListener)

Specified by:
unregisterColumn in interface TableManager

addColumn

public void addColumn(TableColumn tableColumn)
Description copied from interface: TableManager
Adds a column to an Azureus UI table.

Specified by:
addColumn in interface TableManager
Parameters:
tableColumn - a column previously created with TableManager.createColumn(java.lang.String, java.lang.String)

addContextMenuItem

public TableContextMenuItem addContextMenuItem(TableContextMenuItem parent,
                                               java.lang.String resourceKey)
Description copied from interface: TableManager
Adds a Context Menu item as a sub-item of the given menu item.

Specified by:
addContextMenuItem in interface TableManager
Parameters:
parent - The MenuItem to add this new item to. The parent MenuItem must have its style attribute to be set to "menu".
resourceKey - ID of the context menu, which is also used to retrieve the textual name from the plugin language file.
Returns:
a newly created menu item existing inside the given menu item.

addContextMenuItem

public TableContextMenuItem addContextMenuItem(java.lang.String tableID,
                                               java.lang.String resourceKey)
Description copied from interface: TableManager
Adds a Context Menu item to the specified table or to all table context menus.

Specified by:
addContextMenuItem in interface TableManager
Parameters:
tableID - Which table the menu item will be visible in. See TableManager. If null, the menu item will be added to all table context menus.
resourceKey - ID of the context menu, which is also used to retrieve the textual name from the plugin language file.
Returns:
a newly created menu item for the table's context menu.