Package com.biglybt.ui.swt.views
Class FilesView
- java.lang.Object
-
- com.biglybt.ui.swt.views.table.impl.TableViewTab<DiskManagerFileInfo>
-
- com.biglybt.ui.swt.views.FilesView
-
- All Implemented Interfaces:
ParameterListener
,DownloadManagerListener
,DownloadManagerStateAttributeListener
,AEDiagnosticsEvidenceGenerator
,TableDataSourceChangedListener
,TableLifeCycleListener
,TableRefreshListener
,TableSelectionListener
,TableViewFilterCheck<DiskManagerFileInfo>
,TableViewFilterCheck.TableViewFilterCheckEx<DiskManagerFileInfo>
,ViewTitleInfo
,ObfuscateImage
,UISWTViewEventListener
,UISWTViewCoreEventListener
,TableViewSWTMenuFillListener
,java.util.EventListener
,org.eclipse.swt.events.KeyListener
,org.eclipse.swt.internal.SWTEventListener
public class FilesView extends TableViewTab<DiskManagerFileInfo> implements TableDataSourceChangedListener, TableSelectionListener, TableViewSWTMenuFillListener, TableRefreshListener, DownloadManagerStateAttributeListener, DownloadManagerListener, TableLifeCycleListener, TableViewFilterCheck.TableViewFilterCheckEx<DiskManagerFileInfo>, org.eclipse.swt.events.KeyListener, ParameterListener, UISWTViewCoreEventListener, ViewTitleInfo
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
FilesView.FilesViewNodeInner
private static class
FilesView.FilesViewNodeLeaf
static interface
FilesView.FilesViewTreeNode
-
Nested classes/interfaces inherited from interface com.biglybt.ui.common.table.TableViewFilterCheck
TableViewFilterCheck.TableViewFilterCheckEx<DATASOURCETYPE>
-
-
Field Summary
Fields Modifier and Type Field Description private static TableColumnCore[]
basicItems
(package private) org.eclipse.swt.widgets.Button
btnShowDND
(package private) org.eclipse.swt.widgets.Button
btnTreeView
private FilesView.FilesViewNodeInner
current_root
private java.lang.Object
datasource
private boolean
disableTableWhenEmpty
private boolean
force_refresh
boolean
hide_dnd_files
(package private) BufferedLabel
lblHeader
private DownloadManager[]
managers
static java.lang.String
MSGID_PREFIX
(package private) org.eclipse.swt.widgets.MenuItem
path_item
static java.lang.Class<DiskManagerFileInfo>
PLUGIN_DS_TYPE
(package private) boolean
refreshing
private long
selection_done
private java.util.List<java.lang.Object>
selection_outstanding
private long
selection_size
private long
selection_size_with_dnd
private TagListener
tag_listener
private Tag[]
tags
private static java.util.Comparator<java.lang.String>
tree_comp
private java.util.Map<TOTorrentFile,FilesView.FilesViewNodeLeaf>
tree_file_map
boolean
tree_view
(package private) TableViewSWT<DiskManagerFileInfo>
tv
-
Fields inherited from interface com.biglybt.core.download.DownloadManagerStateAttributeListener
WILL_BE_READ, WRITTEN
-
Fields inherited from interface com.biglybt.ui.common.table.TableLifeCycleListener
EVENT_TABLELIFECYCLE_DESTROYED, EVENT_TABLELIFECYCLE_INITIALIZED, EVENT_TABLELIFECYCLE_SHUTDOWN
-
Fields inherited from interface com.biglybt.ui.common.viewtitleinfo.ViewTitleInfo
TITLE_ACTIVE_STATE, TITLE_EXPORTABLE_DATASOURCE, TITLE_IMAGE_TOOLTIP, TITLE_IMAGEID, TITLE_INDICATOR_COLOR, TITLE_INDICATOR_TEXT, TITLE_INDICATOR_TEXT_TOOLTIP, TITLE_TEXT
-
-
Constructor Summary
Constructors Constructor Description FilesView()
Initialize
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addManagerListeners(DownloadManager[] managers)
void
addThisColumnSubMenu(java.lang.String sColumnName, org.eclipse.swt.widgets.Menu menuThisColumn)
Create a SubMenu for column specific tasks.void
attributeEventOccurred(DownloadManager dm, java.lang.String attribute_name, int event_type)
void
completionChanged(DownloadManager manager, boolean bCompleted)
Notification that the completion state has changed.private void
createDragDrop()
void
defaultSelected(TableRowCore[] rows, int stateMask, int origin)
void
deselected(TableRowCore[] rows)
private boolean
doAllExist(DiskManagerFileInfo[] files)
private boolean
doTreeAction(java.util.List<FilesView.FilesViewNodeInner> nodes, int action, boolean test_only)
private boolean
doTreeAction(java.util.Map<FilesView.FilesViewNodeInner,TableRowCore> node_to_row_map, FilesView.FilesViewNodeInner node, int action, boolean recursive, boolean test_only)
void
downloadComplete(DownloadManager manager)
Notification that we were downloading and the download has completedboolean
eventOccurred(UISWTViewEvent event)
Triggers when an even listed in UISWTViewEvent occursvoid
fileLocationChanged(DownloadManager download, DiskManagerFileInfo file)
void
filePriorityChanged(DownloadManager download, DiskManagerFileInfo file)
void
fillMenu(java.lang.String sColumnName, org.eclipse.swt.widgets.Menu menu)
boolean
filterCheck(DiskManagerFileInfo ds, java.lang.String filter, boolean regex)
void
filterSet(java.lang.String filter)
void
focusChanged(TableRowCore focus)
private java.util.List<DiskManagerFileInfo>
getFileInfo()
private java.lang.String
getSelectionText()
java.lang.Object
getTitleInfoProperty(int propertyID)
org.eclipse.swt.widgets.Composite
initComposite(org.eclipse.swt.widgets.Composite composite)
TableViewSWT<DiskManagerFileInfo>
initYourTableView()
void
keyPressed(org.eclipse.swt.events.KeyEvent e)
void
keyReleased(org.eclipse.swt.events.KeyEvent e)
void
mouseEnter(TableRowCore row)
void
mouseExit(TableRowCore row)
void
parameterChanged(java.lang.String parameterName)
Called, when a parameter has changed.void
parentDataSourceChanged(java.lang.Object newParentDataSource)
void
positionChanged(DownloadManager download, int oldPosition, int newPosition)
private static void
registerPluginViews()
private void
removeManagerListeners(DownloadManager[] managers)
void
selected(TableRowCore[] rows)
void
setDisableWhenEmpty(boolean b)
void
stateChanged(DownloadManager manager, int state)
void
tableDataSourceChanged(java.lang.Object newDataSource)
void
tableLifeCycleEventOccurred(TableView tv, int eventType, java.util.Map<java.lang.String,java.lang.Object> data)
void
tableRefresh()
void
tableViewTabInitComplete()
private void
updateFlatView(boolean sync)
private void
updateHeader()
void
updateSelectedContent()
private void
updateTable()
private void
updateTreeView(boolean sync)
void
viewChanged(TableView<DiskManagerFileInfo> view)
-
Methods inherited from class com.biglybt.ui.swt.views.table.impl.TableViewTab
allowCreate, dataSourceChanged, delete, enableFilterCheck, generate, getComposite, getFullTitle, getPropertiesPrefix, getSWTView, getTableView, initialize, obfuscatedImage, refresh, updateLanguage, viewActivated
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.biglybt.ui.common.table.TableSelectionListener
defaultSelected, selectionChanged
-
-
-
-
Field Detail
-
PLUGIN_DS_TYPE
public static final java.lang.Class<DiskManagerFileInfo> PLUGIN_DS_TYPE
-
refreshing
boolean refreshing
-
basicItems
private static TableColumnCore[] basicItems
-
MSGID_PREFIX
public static final java.lang.String MSGID_PREFIX
- See Also:
- Constant Field Values
-
managers
private DownloadManager[] managers
-
hide_dnd_files
public boolean hide_dnd_files
-
tree_view
public boolean tree_view
-
selection_size
private volatile long selection_size
-
selection_size_with_dnd
private volatile long selection_size_with_dnd
-
selection_done
private volatile long selection_done
-
path_item
org.eclipse.swt.widgets.MenuItem path_item
-
tv
TableViewSWT<DiskManagerFileInfo> tv
-
btnShowDND
org.eclipse.swt.widgets.Button btnShowDND
-
btnTreeView
org.eclipse.swt.widgets.Button btnTreeView
-
lblHeader
BufferedLabel lblHeader
-
disableTableWhenEmpty
private boolean disableTableWhenEmpty
-
datasource
private java.lang.Object datasource
-
tags
private Tag[] tags
-
tag_listener
private TagListener tag_listener
-
force_refresh
private boolean force_refresh
-
selection_outstanding
private java.util.List<java.lang.Object> selection_outstanding
-
current_root
private FilesView.FilesViewNodeInner current_root
-
tree_file_map
private java.util.Map<TOTorrentFile,FilesView.FilesViewNodeLeaf> tree_file_map
-
tree_comp
private static java.util.Comparator<java.lang.String> tree_comp
-
-
Method Detail
-
initYourTableView
public TableViewSWT<DiskManagerFileInfo> initYourTableView()
- Specified by:
initYourTableView
in classTableViewTab<DiskManagerFileInfo>
-
registerPluginViews
private static void registerPluginViews()
-
initComposite
public org.eclipse.swt.widgets.Composite initComposite(org.eclipse.swt.widgets.Composite composite)
- Overrides:
initComposite
in classTableViewTab<DiskManagerFileInfo>
-
addManagerListeners
private void addManagerListeners(DownloadManager[] managers)
-
removeManagerListeners
private void removeManagerListeners(DownloadManager[] managers)
-
tableDataSourceChanged
public void tableDataSourceChanged(java.lang.Object newDataSource)
- Specified by:
tableDataSourceChanged
in interfaceTableDataSourceChangedListener
-
deselected
public void deselected(TableRowCore[] rows)
- Specified by:
deselected
in interfaceTableSelectionListener
-
focusChanged
public void focusChanged(TableRowCore focus)
- Specified by:
focusChanged
in interfaceTableSelectionListener
-
selected
public void selected(TableRowCore[] rows)
- Specified by:
selected
in interfaceTableSelectionListener
-
stateChanged
public void stateChanged(DownloadManager manager, int state)
- Specified by:
stateChanged
in interfaceDownloadManagerListener
-
downloadComplete
public void downloadComplete(DownloadManager manager)
Description copied from interface:DownloadManagerListener
Notification that we were downloading and the download has completed- Specified by:
downloadComplete
in interfaceDownloadManagerListener
-
completionChanged
public void completionChanged(DownloadManager manager, boolean bCompleted)
Description copied from interface:DownloadManagerListener
Notification that the completion state has changed. Tells you when we switched from Completed to Incompleted (or visa versa) Does not get called when diskManager goes into CHECKING, but does when it goes out of CHECKING, to avoid torrents jumping momentarily from Completed to Incompleted to Completed again.- Specified by:
completionChanged
in interfaceDownloadManagerListener
-
positionChanged
public void positionChanged(DownloadManager download, int oldPosition, int newPosition)
- Specified by:
positionChanged
in interfaceDownloadManagerListener
-
filePriorityChanged
public void filePriorityChanged(DownloadManager download, DiskManagerFileInfo file)
- Specified by:
filePriorityChanged
in interfaceDownloadManagerListener
-
fileLocationChanged
public void fileLocationChanged(DownloadManager download, DiskManagerFileInfo file)
- Specified by:
fileLocationChanged
in interfaceDownloadManagerListener
file
- null - overall location change (e.g. move download)
-
filterCheck
public boolean filterCheck(DiskManagerFileInfo ds, java.lang.String filter, boolean regex)
- Specified by:
filterCheck
in interfaceTableViewFilterCheck<DiskManagerFileInfo>
-
filterSet
public void filterSet(java.lang.String filter)
- Specified by:
filterSet
in interfaceTableViewFilterCheck<DiskManagerFileInfo>
-
viewChanged
public void viewChanged(TableView<DiskManagerFileInfo> view)
- Specified by:
viewChanged
in interfaceTableViewFilterCheck.TableViewFilterCheckEx<DiskManagerFileInfo>
-
updateSelectedContent
public void updateSelectedContent()
-
defaultSelected
public void defaultSelected(TableRowCore[] rows, int stateMask, int origin)
- Specified by:
defaultSelected
in interfaceTableSelectionListener
-
doTreeAction
private boolean doTreeAction(java.util.List<FilesView.FilesViewNodeInner> nodes, int action, boolean test_only)
-
doTreeAction
private boolean doTreeAction(java.util.Map<FilesView.FilesViewNodeInner,TableRowCore> node_to_row_map, FilesView.FilesViewNodeInner node, int action, boolean recursive, boolean test_only)
-
fillMenu
public void fillMenu(java.lang.String sColumnName, org.eclipse.swt.widgets.Menu menu)
- Specified by:
fillMenu
in interfaceTableViewSWTMenuFillListener
-
tableRefresh
public void tableRefresh()
- Specified by:
tableRefresh
in interfaceTableRefreshListener
-
addThisColumnSubMenu
public void addThisColumnSubMenu(java.lang.String sColumnName, org.eclipse.swt.widgets.Menu menuThisColumn)
Description copied from interface:TableViewSWTMenuFillListener
Create a SubMenu for column specific tasks. Everytime the user opens the context menu, the "This Column" submenu is cleared, and this function is called to refill it.- Specified by:
addThisColumnSubMenu
in interfaceTableViewSWTMenuFillListener
- Parameters:
sColumnName
- The name of the column the user clicked onmenuThisColumn
- the menu to fill with MenuItems
-
attributeEventOccurred
public void attributeEventOccurred(DownloadManager dm, java.lang.String attribute_name, int event_type)
- Specified by:
attributeEventOccurred
in interfaceDownloadManagerStateAttributeListener
-
tableLifeCycleEventOccurred
public void tableLifeCycleEventOccurred(TableView tv, int eventType, java.util.Map<java.lang.String,java.lang.Object> data)
- Specified by:
tableLifeCycleEventOccurred
in interfaceTableLifeCycleListener
-
tableViewTabInitComplete
public void tableViewTabInitComplete()
- Overrides:
tableViewTabInitComplete
in classTableViewTab<DiskManagerFileInfo>
-
mouseEnter
public void mouseEnter(TableRowCore row)
- Specified by:
mouseEnter
in interfaceTableSelectionListener
-
mouseExit
public void mouseExit(TableRowCore row)
- Specified by:
mouseExit
in interfaceTableSelectionListener
-
createDragDrop
private void createDragDrop()
-
eventOccurred
public boolean eventOccurred(UISWTViewEvent event)
Description copied from interface:UISWTViewEventListener
Triggers when an even listed in UISWTViewEvent occurs- Specified by:
eventOccurred
in interfaceUISWTViewEventListener
- Overrides:
eventOccurred
in classTableViewTab<DiskManagerFileInfo>
- Parameters:
event
- event that occurred- Returns:
- meaning dependent upon event type
-
keyPressed
public void keyPressed(org.eclipse.swt.events.KeyEvent e)
- Specified by:
keyPressed
in interfaceorg.eclipse.swt.events.KeyListener
-
keyReleased
public void keyReleased(org.eclipse.swt.events.KeyEvent e)
- Specified by:
keyReleased
in interfaceorg.eclipse.swt.events.KeyListener
-
parameterChanged
public void parameterChanged(java.lang.String parameterName)
Description copied from interface:ParameterListener
Called, when a parameter has changed. The listener could only react if the parameter name is relevant. Or the listener can just read all parameters again.- Specified by:
parameterChanged
in interfaceParameterListener
- Parameters:
parameterName
- the name of the parameter that has changed
-
updateHeader
private void updateHeader()
-
getSelectionText
private java.lang.String getSelectionText()
-
setDisableWhenEmpty
public void setDisableWhenEmpty(boolean b)
-
updateTable
private void updateTable()
-
updateTreeView
private void updateTreeView(boolean sync)
-
parentDataSourceChanged
public void parentDataSourceChanged(java.lang.Object newParentDataSource)
- Overrides:
parentDataSourceChanged
in classTableViewTab<DiskManagerFileInfo>
-
getTitleInfoProperty
public java.lang.Object getTitleInfoProperty(int propertyID)
- Specified by:
getTitleInfoProperty
in interfaceViewTitleInfo
- Parameters:
propertyID
- TITLE_*- Returns:
- value, or null if you don't want to set it
-
updateFlatView
private void updateFlatView(boolean sync)
-
getFileInfo
private java.util.List<DiskManagerFileInfo> getFileInfo()
-
doAllExist
private boolean doAllExist(DiskManagerFileInfo[] files)
-
-