📄 mytrackerview.java
字号:
computePossibleActions();
UIFunctions uiFunctions = UIFunctionsManager.getUIFunctions();
if (uiFunctions != null) {
uiFunctions.refreshIconBar();
}
// Store values for columns that are calculate from peer information, so
// that we only have to do one loop. (As opposed to each cell doing a loop)
// Calculate code copied from TrackerTableItem
TableRowCore[] rows = getRows();
for (int x = 0; x < rows.length; x++) {
if (rows[x] == null)
continue;
TRHostTorrent host_torrent = (TRHostTorrent)rows[x].getDataSource(true);
if (host_torrent == null)
continue;
long uploaded = host_torrent.getTotalUploaded();
long downloaded = host_torrent.getTotalDownloaded();
long left = host_torrent.getTotalLeft();
int seed_count = host_torrent.getSeedCount();
host_torrent.setData("GUI_PeerCount", new Long(host_torrent.getLeecherCount()));
host_torrent.setData("GUI_SeedCount", new Long(seed_count));
host_torrent.setData("GUI_BadNATCount", new Long(host_torrent.getBadNATCount()));
host_torrent.setData("GUI_Uploaded", new Long(uploaded));
host_torrent.setData("GUI_Downloaded", new Long(downloaded));
host_torrent.setData("GUI_Left", new Long(left));
if ( seed_count != 0 ){
if (!rows[x].getForeground().equals(Colors.blues[Colors.BLUES_MIDDARK])) {
rows[x].setForeground(Colors.blues[Colors.BLUES_MIDDARK]);
}
}
}
super.refresh(bForceSort);
}
/* (non-Javadoc)
* @see org.gudy.azureus2.ui.swt.IView#delete()
*/
public void
delete()
{
super.delete();
azureus_core.getTrackerHost().removeListener( this );
}
private boolean start,stop,remove;
private void computePossibleActions() {
start = stop = remove = false;
Object[] hostTorrents = getSelectedDataSources();
if (hostTorrents.length > 0) {
remove = true;
for (int i = 0; i < hostTorrents.length; i++) {
TRHostTorrent host_torrent = (TRHostTorrent)hostTorrents[i];
int status = host_torrent.getStatus();
if ( status == TRHostTorrent.TS_STOPPED ){
start = true;
}
if ( status == TRHostTorrent.TS_STARTED ){
stop = true;
}
/*
try{
host_torrent.canBeRemoved();
}catch( TRHostTorrentRemovalVetoException f ){
remove = false;
}
*/
}
}
}
public boolean isEnabled(String itemKey) {
if(itemKey.equals("start"))
return start;
if(itemKey.equals("stop"))
return stop;
if(itemKey.equals("remove"))
return remove;
return false;
}
public void itemActivated(String itemKey) {
if(itemKey.equals("start")) {
startSelectedTorrents();
return;
}
if(itemKey.equals("stop")){
stopSelectedTorrents();
return;
}
if(itemKey.equals("remove")){
removeSelectedTorrents();
return;
}
}
private void stopSelectedTorrents() {
runForSelectedRows(new GroupTableRowRunner() {
public void run(TableRowCore row) {
TRHostTorrent torrent = (TRHostTorrent)row.getDataSource(true);
if (torrent.getStatus() == TRHostTorrent.TS_STARTED)
torrent.stop();
}
});
}
private void startSelectedTorrents() {
runForSelectedRows(new GroupTableRowRunner() {
public void run(TableRowCore row) {
TRHostTorrent torrent = (TRHostTorrent)row.getDataSource(true);
if (torrent.getStatus() == TRHostTorrent.TS_STOPPED)
torrent.start();
}
});
}
private void removeSelectedTorrents() {
runForSelectedRows(new GroupTableRowRunner() {
public void run(TableRowCore row) {
TRHostTorrent torrent = (TRHostTorrent)row.getDataSource(true);
try{
torrent.remove();
}catch( TRHostTorrentRemovalVetoException f ){
Alerts.showErrorMessageBoxUsingResourceString( "globalmanager.download.remove.veto", f );
}
}
});
}
private void addCategorySubMenu() {
MenuItem[] items = menuCategory.getItems();
int i;
for (i = 0; i < items.length; i++) {
items[i].dispose();
}
Category[] categories = CategoryManager.getCategories();
Arrays.sort(categories);
if (categories.length > 0) {
Category catUncat = CategoryManager.getCategory(Category.TYPE_UNCATEGORIZED);
if (catUncat != null) {
final MenuItem itemCategory = new MenuItem(menuCategory, SWT.PUSH);
Messages.setLanguageText(itemCategory, catUncat.getName());
itemCategory.setData("Category", catUncat);
itemCategory.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
MenuItem item = (MenuItem)event.widget;
assignSelectedToCategory((Category)item.getData("Category"));
}
});
new MenuItem(menuCategory, SWT.SEPARATOR);
}
for (i = 0; i < categories.length; i++) {
if (categories[i].getType() == Category.TYPE_USER) {
final MenuItem itemCategory = new MenuItem(menuCategory, SWT.PUSH);
itemCategory.setText(categories[i].getName());
itemCategory.setData("Category", categories[i]);
itemCategory.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
MenuItem item = (MenuItem)event.widget;
assignSelectedToCategory((Category)item.getData("Category"));
}
});
}
}
new MenuItem(menuCategory, SWT.SEPARATOR);
}
final MenuItem itemAddCategory = new MenuItem(menuCategory, SWT.PUSH);
Messages.setLanguageText(itemAddCategory,
"MyTorrentsView.menu.setCategory.add");
itemAddCategory.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
addCategory();
}
});
}
public void
categoryAdded(Category category)
{
Utils.execSWTThread(
new AERunnable()
{
public void
runSupport()
{
addCategorySubMenu();
}
});
}
public void
categoryRemoved(
Category category)
{
Utils.execSWTThread(
new AERunnable()
{
public void
runSupport()
{
addCategorySubMenu();
}
});
}
private void addCategory() {
CategoryAdderWindow adderWindow = new CategoryAdderWindow(SWTThread.getInstance().getDisplay());
Category newCategory = adderWindow.getNewCategory();
if (newCategory != null)
assignSelectedToCategory(newCategory);
}
private void assignSelectedToCategory(final Category category) {
runForSelectedRows(new GroupTableRowRunner() {
public void run(TableRowCore row) {
TRHostTorrent tr_torrent = (TRHostTorrent)row.getDataSource(true);
TOTorrent torrent = tr_torrent.getTorrent();
DownloadManager dm = azureus_core.getGlobalManager().getDownloadManager( torrent );
if ( dm != null ){
dm.getDownloadState().setCategory( category );
}else{
String cat_str;
if ( category == null ){
cat_str = null;
}else if ( category == CategoryManager.getCategory(Category.TYPE_UNCATEGORIZED)){
cat_str = null;
}else{
cat_str = category.getName();
}
// bit of a hack-alert here
TorrentUtils.setPluginStringProperty( torrent, "azcoreplugins.category", cat_str );
try{
TorrentUtils.writeToFile( torrent );
}catch( Throwable e ){
Debug.printStackTrace( e );
}
}
}
});
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -