📄 mytorrentsview.java
字号:
setSelectedTorrentsUpSpeed(newSpeed);
}
});
// advanced > Tracker Menu //
final Menu menuTracker = new Menu(getComposite().getShell(), SWT.DROP_DOWN);
final MenuItem itemTracker = new MenuItem(menuAdvanced, SWT.CASCADE);
Messages.setLanguageText(itemTracker, "MyTorrentsView.menu.tracker");
itemTracker.setMenu(menuTracker);
final MenuItem itemChangeTracker = new MenuItem(menuTracker, SWT.PUSH);
Messages.setLanguageText(itemChangeTracker,
"MyTorrentsView.menu.changeTracker"); //$NON-NLS-1$
Utils.setMenuItemImage(itemChangeTracker, "add_tracker");
itemChangeTracker.addListener(SWT.Selection,
new SelectedTableRowsListener() {
public void run(TableRowCore row) {
TRTrackerAnnouncer tc = ((DownloadManager) row.getDataSource(true))
.getTrackerClient();
if (tc != null)
new TrackerChangerWindow(getComposite().getDisplay(), tc);
}
});
itemChangeTracker.setEnabled(changeUrl);
final MenuItem itemEditTracker = new MenuItem(menuTracker, SWT.PUSH);
Messages
.setLanguageText(itemEditTracker, "MyTorrentsView.menu.editTracker");
Utils.setMenuItemImage(itemEditTracker, "edit_trackers");
itemEditTracker.addListener(SWT.Selection, new SelectedTableRowsListener() {
public void run(TableRowCore row) {
final DownloadManager dm = (DownloadManager) row.getDataSource(true);
if (dm.getTorrent() != null) {
final TOTorrent torrent = dm.getTorrent();
java.util.List group = TorrentUtils.announceGroupsToList(torrent);
new MultiTrackerEditor(null, group, new TrackerEditorListener() {
public void trackersChanged(String str, String str2,
java.util.List group) {
TorrentUtils.listToAnnounceGroups(group, torrent);
try {
TorrentUtils.writeToFile(torrent);
} catch (Throwable e) {
Debug.printStackTrace(e);
}
if (dm.getTrackerClient() != null)
dm.getTrackerClient().resetTrackerUrl(true);
}
}, true);
}
} // run
});
itemEditTracker.setEnabled(hasSelection);
final MenuItem itemManualUpdate = new MenuItem(menuTracker, SWT.PUSH);
Messages.setLanguageText(itemManualUpdate,
"GeneralView.label.trackerurlupdate"); //$NON-NLS-1$
//itemManualUpdate.setImage(ImageRepository.getImage("edit_trackers"));
itemManualUpdate.addListener(SWT.Selection,
new SelectedTableRowsListener() {
public void run(TableRowCore row) {
((DownloadManager) row.getDataSource(true)).requestTrackerAnnounce(false);
}
});
itemManualUpdate.setEnabled(manualUpdate);
boolean scrape_enabled = COConfigurationManager.getBooleanParameter("Tracker Client Scrape Enable");
boolean scrape_stopped = COConfigurationManager.getBooleanParameter("Tracker Client Scrape Stopped Enable");
boolean manualScrape =
(!scrape_enabled) ||
((!scrape_stopped) && allStopped );
final MenuItem itemManualScrape = new MenuItem(menuTracker, SWT.PUSH);
Messages.setLanguageText(itemManualScrape,
"GeneralView.label.trackerscrapeupdate");
//itemManualUpdate.setImage(ImageRepository.getImage("edit_trackers"));
itemManualScrape.addListener(SWT.Selection,
new SelectedTableRowsListener() {
public void run(TableRowCore row) {
((DownloadManager) row.getDataSource(true)).requestTrackerScrape(true);
}
});
itemManualScrape.setEnabled(manualScrape);
// advanced > files
final MenuItem itemFiles = new MenuItem(menuAdvanced, SWT.CASCADE);
Messages.setLanguageText(itemFiles, "ConfigView.section.files");
final Menu menuFiles = new Menu(getComposite().getShell(), SWT.DROP_DOWN);
itemFiles.setMenu(menuFiles);
final MenuItem itemFileMoveData = new MenuItem(menuFiles, SWT.PUSH);
Messages.setLanguageText(itemFileMoveData, "MyTorrentsView.menu.movedata");
itemFileMoveData.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
Object[] dms = getSelectedDataSources();
if (dms != null && dms.length > 0) {
DirectoryDialog dd = new DirectoryDialog(getComposite().getShell());
dd.setFilterPath(TorrentOpener.getFilterPathData());
dd.setText(MessageText
.getString("MyTorrentsView.menu.movedata.dialog"));
String path = dd.open();
if (path != null) {
TorrentOpener.setFilterPathData(path);
File target = new File(path);
for (int i = 0; i < dms.length; i++) {
try {
((DownloadManager) dms[i]).moveDataFiles(target);
} catch (Throwable e) {
Logger.log(new LogAlert(LogAlert.REPEATABLE,
"Download data move operation failed", e));
}
}
}
}
}
});
itemFileMoveData.setEnabled(fileMove);
final MenuItem itemFileMoveTorrent = new MenuItem(menuFiles, SWT.PUSH);
Messages.setLanguageText(itemFileMoveTorrent,
"MyTorrentsView.menu.movetorrent");
itemFileMoveTorrent.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
Object[] dms = getSelectedDataSources();
if (dms != null && dms.length > 0) {
DirectoryDialog dd = new DirectoryDialog(getComposite().getShell());
dd.setFilterPath(TorrentOpener.getFilterPathTorrent());
dd.setText(MessageText
.getString("MyTorrentsView.menu.movedata.dialog"));
String path = dd.open();
if (path != null) {
File target = new File(path);
TorrentOpener.setFilterPathTorrent(target.toString());
for (int i = 0; i < dms.length; i++) {
try {
((DownloadManager) dms[i]).moveTorrentFile(target);
} catch (Throwable e) {
Logger.log(new LogAlert(LogAlert.REPEATABLE,
"Download torrent move operation failed", e));
}
}
}
}
}
});
itemFileMoveTorrent.setEnabled(fileMove);
final MenuItem itemFileRescan = new MenuItem(menuFiles, SWT.CHECK );
Messages.setLanguageText(itemFileRescan,
"MyTorrentsView.menu.rescanfile");
itemFileRescan.addListener(SWT.Selection, new SelectedTableRowsListener() {
public void run(TableRowCore row) {
DownloadManager dm = (DownloadManager) row.getDataSource(true);
dm.getDownloadState().setFlag(
DownloadManagerState.FLAG_SCAN_INCOMPLETE_PIECES,
itemFileRescan.getSelection());
}
});
itemFileRescan.setSelection( allScanSelected );
itemFileRescan.setEnabled( fileRescan );
// === advanced > export ===
// =========================
if (userMode > 0) {
final MenuItem itemExport = new MenuItem(menuAdvanced, SWT.CASCADE);
Messages.setLanguageText(itemExport, "MyTorrentsView.menu.exportmenu"); //$NON-NLS-1$
Utils.setMenuItemImage(itemExport, "export");
itemExport.setEnabled(hasSelection);
final Menu menuExport = new Menu(getComposite().getShell(), SWT.DROP_DOWN);
itemExport.setMenu(menuExport);
// Advanced > Export > Export XML
final MenuItem itemExportXML = new MenuItem(menuExport, SWT.PUSH);
Messages.setLanguageText(itemExportXML, "MyTorrentsView.menu.export");
itemExportXML.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
DownloadManager dm = (DownloadManager) getFirstSelectedDataSource();
if (dm != null)
new ExportTorrentWizard(azureus_core, itemExportXML.getDisplay(), dm);
}
});
// Advanced > Export > Export Torrent
final MenuItem itemExportTorrent = new MenuItem(menuExport, SWT.PUSH);
Messages.setLanguageText(itemExportTorrent,
"MyTorrentsView.menu.exporttorrent");
itemExportTorrent.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
DownloadManager dm = (DownloadManager) getFirstSelectedDataSource();
if (dm != null) {
FileDialog fd = new FileDialog(getComposite().getShell(), SWT.SAVE );
fd.setFileName(dm.getTorrentFileName());
String path = fd.open();
if (path != null) {
try {
File target = new File(path);
if ( target.exists()){
MessageBox mb = new MessageBox(getComposite().getShell(),SWT.ICON_QUESTION | SWT.YES | SWT.NO);
mb.setText(MessageText.getString("exportTorrentWizard.process.outputfileexists.title"));
mb.setMessage(MessageText.getString("exportTorrentWizard.process.outputfileexists.message"));
int result = mb.open();
if( result == SWT.NO ){
return;
}
if ( !target.delete()){
throw( new Exception( "Failed to delete file" ));
}
}
// first copy the torrent - DON'T use "writeTorrent" as this amends the
// "filename" field in the torrent
TorrentUtils.copyToFile(dm.getDownloadState().getTorrent(), target);
// now remove the non-standard entries
TOTorrent dest = TOTorrentFactory
.deserialiseFromBEncodedFile(target);
dest.removeAdditionalProperties();
dest.serialiseToBEncodedFile(target);
} catch (Throwable e) {
Logger.log(new LogAlert(LogAlert.UNREPEATABLE,
"Torrent export failed", e));
}
}
}
}
});
} // export menu
// === advanced > peer sources ===
// ===============================
if (userMode > 0) {
final MenuItem itemPeerSource = new MenuItem(menuAdvanced, SWT.CASCADE);
Messages.setLanguageText(itemPeerSource, "MyTorrentsView.menu.peersource"); //$NON-NLS-1$
final Menu menuPeerSource = new Menu(getComposite().getShell(),
SWT.DROP_DOWN);
itemPeerSource.setMenu(menuPeerSource);
for (int i = 0; i < PEPeerSource.PS_SOURCES.length; i++) {
final String p = PEPeerSource.PS_SOURCES[i];
String msg_text = "ConfigView.section.connection.peersource." + p;
final MenuItem itemPS = new MenuItem(menuPeerSource, SWT.CHECK);
itemPS.setData("peerSource", p);
Messages.setLanguageText(itemPS, msg_text); //$NON-NLS-1$
itemPS.addListener(SWT.Selection, new SelectedTableRowsListener() {
public void run(TableRowCore row) {
((DownloadManager) row.getDataSource(true)).getDownloadState()
.setPeerSourceEnabled(p, itemPS.getSelection());
}
});
itemPS.setSelection(true);
boolean bChecked = hasSelection;
boolean bEnabled = !hasSelection;
if (bChecked) {
bEnabled = true;
// turn on check if just one dm is not enabled
for (int j = 0; j < dms.length; j++) {
DownloadManager dm = (DownloadManager) dms[j];
if (!dm.getDownloadState().isPeerSourceEnabled(p)) {
bChecked = false;
}
if (!dm.getDownloadState().isPeerSourcePermitted(p)) {
bEnabled = false;
}
}
}
itemPS.setSelection(bChecked);
itemPS.setEnabled(bEnabled);
}
}
// === advanced > networks ===
// ===========================
if (userMode > 1) {
final MenuItem itemNetworks = new MenuItem(menuAdvanced, SWT.CASCADE);
Messages.setLanguageText(itemNetworks, "MyTorrentsView.menu.networks"); //$NON-NLS-1$
final Menu menuNetworks = new Menu(getComposite().getShell(), SWT.DROP_DOWN);
itemNetworks.setMenu(menuNetworks);
for (int i = 0; i < AENetworkClassifier.AT_NETWORKS.length; i++) {
final String nn = AENetworkClassifier.AT_NETWORKS[i];
String msg_text = "ConfigView.section.connection.networks." + nn;
final MenuItem itemNetwork = new MenuItem(menuNetworks, SWT.CHECK);
itemNetwork.setData("network", nn);
Messages.setLanguageText(itemNetwork, msg_text); //$NON-NLS-1$
itemNetwork.addListener(SWT.Selection, new SelectedTableRowsListener() {
public void run(TableRowCore row) {
((DownloadManager) row.getDataSource(true)).getDownloadState()
.setNetworkEnabled(nn, itemNetwork.getSelection());
}
});
boolean bChecked = hasSelection;
if (bChecked) {
// turn on check if just one dm is not enabled
for (int j = 0; j < dms.length; j++) {
DownloadManager dm = (DownloadManager) dms[j];
if (!dm.getDownloadState().isNetworkEnabled(nn)) {
bChecked = false;
break;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -