mytorrentsview.java
来自「Azureus is a powerful, full-featured, cr」· Java 代码 · 共 1,672 行 · 第 1/4 页
JAVA
1,672 行
+ dm.getTorrentFileName()
+ MessageText.getString("deletetorrent.message2"));
if( mb.open() == SWT.NO ) {
return;
}
}
int choice;
if (confirmDataDelete && bDeleteData) {
String path = dm.getTorrentSaveDirAndFile();
MessageBox mb = new MessageBox(cTablePanel.getShell(), SWT.ICON_WARNING | SWT.YES | SWT.NO);
mb.setText(MessageText.getString("deletedata.title"));
mb.setMessage(MessageText.getString("deletedata.message1")
+ dm.getDisplayName() + " :\n"
+ path
+ MessageText.getString("deletedata.message2"));
choice = mb.open();
} else {
choice = SWT.YES;
}
if (choice == SWT.YES) {
try {
dm.stopIt( DownloadManager.STATE_STOPPED, bDeleteTorrent, bDeleteData );
dm.getGlobalManager().removeDownloadManager( dm );
}
catch (GlobalManagerDownloadRemovalVetoException f) {
Alerts.showErrorMessageBoxUsingResourceString("globalmanager.download.remove.veto", f);
}
catch (Exception ex) {
Debug.printStackTrace( ex );
}
}
}
private void removeSelectedTorrents() {
runForSelectedRows(new GroupTableRowRunner() {
public void run(TableRowCore row) {
removeTorrent((DownloadManager)row.getDataSource(true), false, false);
}
});
}
private void stopSelectedTorrents() {
runForSelectedRows(new GroupTableRowRunner() {
public void run(TableRowCore row) {
ManagerUtils.stop((DownloadManager)row.getDataSource(true), cTablePanel);
}
});
}
private void queueSelectedTorrents() {
runForSelectedRows(new GroupTableRowRunner() {
public void run(TableRowCore row) {
ManagerUtils.queue((DownloadManager)row.getDataSource(true), cTablePanel);
}
});
}
private void resumeSelectedTorrents() {
runForSelectedRows(new GroupTableRowRunner() {
public void run(TableRowCore row) {
ManagerUtils.start((DownloadManager)row.getDataSource(true));
}
});
}
private void hostSelectedTorrents() {
runForSelectedRows(new GroupTableRowRunner() {
public void run(TableRowCore row) {
ManagerUtils.host(azureus_core, (DownloadManager)row.getDataSource(true), cTablePanel);
}
});
MainWindow.getWindow().showMyTracker();
}
private void publishSelectedTorrents() {
runForSelectedRows(new GroupTableRowRunner() {
public void run(TableRowCore row) {
ManagerUtils.publish(azureus_core, (DownloadManager)row.getDataSource(true), cTablePanel);
}
});
MainWindow.getWindow().showMyTracker();
}
// Note: This only runs the first selected torrent!
private void runSelectedTorrents() {
DownloadManager dm = (DownloadManager)getFirstSelectedDataSource();
if (dm != null)
ManagerUtils.run(dm);
}
private void moveSelectedTorrentsDown() {
// Don't use runForSelectDataSources to ensure the order we want
Object[] dataSources = getSelectedDataSources();
Arrays.sort(dataSources, new Comparator() {
public int compare (Object a, Object b) {
return ((DownloadManager)a).getPosition() - ((DownloadManager)b).getPosition();
}
});
for (int i = dataSources.length - 1; i >= 0; i--) {
DownloadManager dm = (DownloadManager)dataSources[i];
if (dm.isMoveableDown()) {
dm.moveDown();
}
}
if (sorter.getLastField().equals("#"))
sorter.sortColumn(true);
}
private void moveSelectedTorrentsUp() {
// Don't use runForSelectDataSources to ensure the order we want
Object[] dataSources = getSelectedDataSources();
Arrays.sort(dataSources, new Comparator() {
public int compare (Object a, Object b) {
return ((DownloadManager)a).getPosition() - ((DownloadManager)b).getPosition();
}
});
for (int i = 0; i < dataSources.length; i++) {
DownloadManager dm = (DownloadManager)dataSources[i];
if (dm.isMoveableUp()) {
dm.moveUp();
}
}
if (sorter.getLastField().equals("#"))
sorter.sortColumn(true);
}
private void moveSelectedTorrentsTop() {
moveSelectedTorrentsTopOrEnd(true);
}
private void moveSelectedTorrentsEnd() {
moveSelectedTorrentsTopOrEnd(false);
}
private void moveSelectedTorrentsTopOrEnd(boolean moveToTop) {
DownloadManager[] downloadManagers = (DownloadManager[])getSelectedDataSources(new DownloadManager[0]);
if (downloadManagers.length == 0)
return;
if(moveToTop)
globalManager.moveTop(downloadManagers);
else
globalManager.moveEnd(downloadManagers);
if (sorter.getLastField().equals("#"))
sorter.sortColumn(true);
}
/**
* @param parameterName the name of the parameter that has changed
* @see org.gudy.azureus2.core3.config.ParameterListener#parameterChanged(java.lang.String)
*/
public void parameterChanged(String parameterName) {
super.parameterChanged(parameterName);
confirmDataDelete = COConfigurationManager.getBooleanParameter("Confirm Data Delete", true);
}
private boolean top,bottom,up,down,run,host,publish,start,stop,remove;
private void computePossibleActions() {
Object[] dataSources = getSelectedDataSources();
// enable up and down so that we can do the "selection rotate trick"
up = down = run = host = publish = remove = (dataSources.length > 0);
top = bottom = start = stop = false;
for (int i = 0; i < dataSources.length; i++) {
DownloadManager dm = (DownloadManager)dataSources[i];
if(!start && ManagerUtils.isStartable(dm))
start = true;
if(!stop && ManagerUtils.isStopable(dm))
stop = true;
if(!top && dm.isMoveableUp())
top = true;
if(!bottom && dm.isMoveableDown())
bottom = true;
}
}
public boolean isEnabled(String itemKey) {
if(itemKey.equals("run"))
return run;
if(itemKey.equals("host"))
return host;
if(itemKey.equals("publish"))
return publish;
if(itemKey.equals("start"))
return start;
if(itemKey.equals("stop"))
return stop;
if(itemKey.equals("remove"))
return remove;
if(itemKey.equals("top"))
return top;
if(itemKey.equals("bottom"))
return bottom;
if(itemKey.equals("up"))
return up;
if(itemKey.equals("down"))
return down;
return false;
}
public void itemActivated(String itemKey) {
if(itemKey.equals("top")) {
moveSelectedTorrentsTop();
return;
}
if(itemKey.equals("bottom")){
moveSelectedTorrentsEnd();
return;
}
if(itemKey.equals("up")) {
moveSelectedTorrentsUp();
return;
}
if(itemKey.equals("down")){
moveSelectedTorrentsDown();
return;
}
if(itemKey.equals("run")){
runSelectedTorrents();
return;
}
if(itemKey.equals("host")){
hostSelectedTorrents();
return;
}
if(itemKey.equals("publish")){
publishSelectedTorrents();
return;
}
if(itemKey.equals("start")){
queueSelectedTorrents();
return;
}
if(itemKey.equals("stop")){
stopSelectedTorrents();
return;
}
if(itemKey.equals("remove")){
removeSelectedTorrents();
return;
}
}
public void removeDownloadBar(DownloadManager dm) {
try{
downloadBars_mon.enter();
downloadBars.remove(dm);
}finally{
downloadBars_mon.exit();
}
}
private void addCategory() {
CategoryAdderWindow adderWindow = new CategoryAdderWindow(MainWindow.getWindow().getDisplay());
Category newCategory = adderWindow.getNewCategory();
if (newCategory != null)
assignSelectedToCategory(newCategory);
}
// categorymanagerlistener Functions
public void downloadManagerAdded(Category category, final DownloadManager manager)
{
boolean bCompleted = manager.getStats().getDownloadCompleted(false) == 1000;
if ((bCompleted && isSeedingView) || (!bCompleted && !isSeedingView)) {
addDataSource(manager);
}
}
public void downloadManagerRemoved(Category category, DownloadManager removed)
{
removeDataSource(removed);
}
// DownloadManagerListener Functions
public void stateChanged(DownloadManager manager, int state) {
}
public void positionChanged(DownloadManager download, int oldPosition, int newPosition) {
}
public void completionChanged(final DownloadManager manager, boolean bCompleted) {
// manager has moved lists
if ((isSeedingView && bCompleted) || (!isSeedingView && !bCompleted)) {
addDataSource(manager);
} else if ((isSeedingView && !bCompleted) || (!isSeedingView && bCompleted)) {
removeDataSource(manager);
}
}
public void downloadComplete(DownloadManager manager) {
}
// Category Stuff
private void assignSelectedToCategory(final Category category) {
runForSelectedRows(new GroupTableRowRunner() {
public void run(TableRowCore row) {
((DownloadManager)row.getDataSource(true)).getDownloadState().setCategory(category);
}
});
}
private void activateCategory(Category category) {
if (currentCategory != null)
currentCategory.removeCategoryListener(this);
if (category != null)
category.addCategoryListener(this);
currentCategory = category;
int catType = (currentCategory == null) ? Category.TYPE_ALL : currentCategory.getType();
java.util.List managers;
if (catType == Category.TYPE_USER)
managers = currentCategory.getDownloadManagers();
else
managers = globalManager.getDownloadManagers();
removeAllTableRows();
// add new
if (catType == Category.TYPE_UNCATEGORIZED) {
for (int i = 0; i < managers.size(); i++) {
DownloadManager manager = (DownloadManager)managers.get(i);
if (manager.getDownloadState().getCategory() == null)
downloadManagerAdded(currentCategory, manager);
}
} else {
for (int i = 0; i < managers.size(); i++) {
downloadManagerAdded(currentCategory, (DownloadManager)managers.get(i));
}
}
}
// CategoryManagerListener Functions
public void categoryAdded(Category category) {
MainWindow.getWindow().getDisplay().asyncExec(
new AERunnable()
{
public void
runSupport()
{
createTabs();
addCategorySubMenu();
}
});
}
public void categoryRemoved(Category category) {
MainWindow.getWindow().getDisplay().asyncExec(
new AERunnable()
{
public void
runSupport()
{
createTabs();
addCategorySubMenu();
}
});
}
// globalmanagerlistener Functions
public void downloadManagerAdded( DownloadManager dm ) {
dm.addListener( this );
if (skipDMAdding ||
(currentCategory != null && currentCategory.getType() == Category.TYPE_USER))
return;
Category cat = dm.getDownloadState().getCategory();
if (cat == null)
downloadManagerAdded(null, dm);
}
public void downloadManagerRemoved( DownloadManager dm ) {
dm.removeListener( this );
MinimizedWindow mw = (MinimizedWindow) downloadBars.remove(dm);
if (mw != null) mw.close();
if (skipDMAdding ||
(currentCategory != null && currentCategory.getType() == Category.TYPE_USER))
return;
downloadManagerRemoved(null, dm);
}
public void destroyInitiated() { }
public void destroyed() { }
// End of globalmanagerlistener Functions
private void setSelectedTorrentsSpeed(int speed) {
Object[] dms = getSelectedDataSources();
if(dms.length > 0) {
for (int i = 0; i < dms.length; i++) {
try {
DownloadManager dm = (DownloadManager)dms[i];
dm.getStats().setUploadRateLimitBytesPerSecond(speed);
} catch (Exception e) {
Debug.printStackTrace( e );
}
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?