📄 generalview.java
字号:
public void handleEvent(Event e)
{
if (e.widget instanceof MenuItem)
{
String text = ((MenuItem)e.widget).getText();
TOTorrent torrent = manager.getTorrent();
TorrentUtils.announceGroupsSetFirst(torrent, text);
try
{
TorrentUtils.writeToFile(torrent);
}
catch (TOTorrentException f)
{
Debug.printStackTrace(f);
}
TRTrackerAnnouncer tc = manager.getTrackerClient();
if (tc != null)
tc.resetTrackerUrl(false);
}
}
{
this$0 = GeneralView.this;
super();
}
};
menuTracker.addListener(22, new Listener() {
final Listener val$menuListener;
final GeneralView this$0;
public void handleEvent(Event e)
{
Menu menuSelect = itemSelect.getMenu();
if (menuSelect != null && !menuSelect.isDisposed())
menuSelect.dispose();
if (manager == null || genComposite == null || genComposite.isDisposed())
return;
List groups = TorrentUtils.announceGroupsToList(manager.getTorrent());
menuSelect = new Menu(genComposite.getShell(), 4);
itemSelect.setMenu(menuSelect);
for (Iterator iterGroups = groups.iterator(); iterGroups.hasNext();)
{
List trackers = (List)iterGroups.next();
MenuItem menuItem = new MenuItem(menuSelect, 64);
Messages.setLanguageText(menuItem, "wizard.multitracker.group");
Menu menu = new Menu(genComposite.getShell(), 4);
menuItem.setMenu(menu);
Iterator iterTrackers = trackers.iterator();
while (iterTrackers.hasNext())
{
String url = (String)iterTrackers.next();
MenuItem menuItemTracker = new MenuItem(menu, 64);
menuItemTracker.setText(url);
menuItemTracker.addListener(13, menuListener);
}
}
}
{
this$0 = GeneralView.this;
menuListener = listener;
super();
}
});
trackerUrlValue = new BufferedTruncatedLabel(gInfo, 16384, 70);
trackerUrlValue.addMouseListener(new MouseAdapter() {
final GeneralView this$0;
public void mouseDown(MouseEvent event)
{
if (event.button == 3 || event.button == 1 && event.stateMask == 0x40000)
menuTracker.setVisible(true);
else
if (event.button == 1)
{
String url = trackerUrlValue.getText();
if (url.startsWith("http://") || url.startsWith("https://"))
{
int pos = -1;
if ((pos = url.indexOf("/announce")) != -1)
url = url.substring(0, pos + 1);
Utils.launch(url);
}
}
}
{
this$0 = GeneralView.this;
super();
}
});
gridData = new GridData(768);
gridData.horizontalSpan = 1;
trackerUrlValue.setLayoutData(gridData);
label = new Label(gInfo, 16384);
Messages.setLanguageText(label, "GeneralView.label.size");
pieceSize = new BufferedLabel(gInfo, 16384);
gridData = new GridData(768);
pieceSize.setLayoutData(gridData);
label = new Label(gInfo, 16384);
Messages.setLanguageText(label, "GeneralView.label.creationdate");
creation_date = new BufferedLabel(gInfo, 16384);
gridData = new GridData(768);
creation_date.setLayoutData(gridData);
label = new Label(gInfo, 16384);
Messages.setLanguageText(label, "GeneralView.label.private");
privateStatus = new BufferedLabel(gInfo, 16384);
gridData = new GridData(768);
privateStatus.setLayoutData(gridData);
label = new Label(gInfo, 16384);
gridData = new GridData(768);
gridData.horizontalSpan = 4;
label.setLayoutData(gridData);
label = new Label(gInfo, 16384);
Messages.setLanguageText(label, "GeneralView.label.tracker");
tracker_status = new BufferedTruncatedLabel(gInfo, 16384, 150);
gridData = new GridData(768);
tracker_status.setLayoutData(gridData);
tracker_status.addMouseListener(new MouseAdapter() {
final GeneralView this$0;
public void mouseDown(MouseEvent event)
{
if (event.button == 1 && manager.isUnauthorisedOnTracker())
{
com.aelitis.azureus.core.util.AZ3Functions.provider az3 = AZ3Functions.getProvider();
if (az3 != null && az3.canShowCDP(manager))
az3.showCDP(manager, "tracker.unauth");
}
}
{
this$0 = GeneralView.this;
super();
}
});
updateButton = new Button(gInfo, 8);
Messages.setLanguageText(updateButton, "GeneralView.label.trackerurlupdate");
gridData = new GridData(32);
gridData.verticalSpan = 2;
gridData.horizontalSpan = 2;
updateButton.setLayoutData(gridData);
updateButton.addSelectionListener(new SelectionAdapter() {
final GeneralView this$0;
public void widgetSelected(SelectionEvent event)
{
manager.requestTrackerAnnounce(false);
}
{
this$0 = GeneralView.this;
super();
}
});
label = new Label(gInfo, 16384);
Messages.setLanguageText(label, "GeneralView.label.updatein");
trackerUpdateIn = new BufferedLabel(gInfo, 16384);
gridData = new GridData(768);
trackerUpdateIn.setLayoutData(gridData);
label = new Label(gInfo, 16384);
gridData = new GridData(768);
gridData.horizontalSpan = 4;
label.setLayoutData(gridData);
label = new Label(gInfo, 16384);
label.setCursor(Cursors.handCursor);
label.setForeground(Colors.blue);
Messages.setLanguageText(label, "GeneralView.label.user_comment");
try
{
user_comment = new Link(gInfo, 16448);
((Link)user_comment).addSelectionListener(new SelectionAdapter() {
final GeneralView this$0;
public void widgetSelected(SelectionEvent e)
{
Utils.launch(e.text);
}
{
this$0 = GeneralView.this;
super();
}
});
}
catch (Throwable e)
{
user_comment = new Label(gInfo, 16448);
}
gridData = new GridData(768);
gridData.horizontalSpan = 3;
user_comment.setLayoutData(gridData);
label.addMouseListener(new MouseAdapter() {
final GeneralView this$0;
private void editComment()
{
TorrentUtil.promptUserForComment(new DownloadManager[] {
manager
});
}
public void mouseDoubleClick(MouseEvent arg0)
{
editComment();
}
public void mouseDown(MouseEvent arg0)
{
editComment();
}
{
this$0 = GeneralView.this;
super();
}
});
label = new Label(gInfo, 16384);
gridData = new GridData(2);
label.setLayoutData(gridData);
Messages.setLanguageText(label, "GeneralView.label.comment");
try
{
lblComment = new Link(gInfo, 16448);
((Link)lblComment).addSelectionListener(new SelectionAdapter() {
final GeneralView this$0;
public void widgetSelected(SelectionEvent e)
{
Utils.launch(e.text);
}
{
this$0 = GeneralView.this;
super();
}
});
}
catch (Throwable e)
{
lblComment = new Label(gInfo, 16448);
}
gridData = new GridData(1808);
gridData.horizontalSpan = 3;
lblComment.setLayoutData(gridData);
piecesImage.addListener(9, new Listener() {
final GeneralView this$0;
public void handleEvent(Event e)
{
if (e.count == 0 && e.width > 0 && e.height > 0)
updatePiecesInfo(true);
}
{
this$0 = GeneralView.this;
super();
}
});
availabilityImage.addListener(9, new Listener() {
final GeneralView this$0;
public void handleEvent(Event e)
{
if (e.count == 0 && e.width > 0 && e.height > 0)
updateAvailability();
}
{
this$0 = GeneralView.this;
super();
}
});
if (Constants.isOSX)
{
Shell shell = genComposite.getShell();
Point size = shell.getSize();
shell.setSize(size.x - 1, size.y - 1);
shell.setSize(size);
}
genComposite.addDisposeListener(new DisposeListener() {
final GeneralView this$0;
public void widgetDisposed(DisposeEvent e)
{
menuTracker.dispose();
}
{
this$0 = GeneralView.this;
super();
}
});
genComposite.layout();
}
public Composite getComposite()
{
return genComposite;
}
public void refresh()
{
if (getComposite() == null || getComposite().isDisposed() || manager == null)
return;
loopFactor++;
if (loopFactor % graphicsUpdate == 0)
{
updateAvailability();
updatePiecesInfo(false);
}
DiskManager dm = manager.getDiskManager();
String eta = DisplayFormatters.formatETA(manager.getStats().getETA());
String remaining;
if (dm != null)
{
long rem = dm.getRemainingExcludingDND();
String data_rem = DisplayFormatters.formatByteCountToKiBEtc(rem);
if (rem > 0L)
remaining = (new StringBuilder()).append(eta).append(eta.length() != 0 ? " " : "").append(data_rem).toString();
else
if (eta.length() == 0)
remaining = data_rem;
else
remaining = eta;
} else
{
remaining = eta;
}
setTime(manager.getStats().getElapsedTime(), remaining);
TRTrackerScraperResponse hd = manager.getTrackerScrapeResponse();
String seeds_str = (new StringBuilder()).append(manager.getNbSeeds()).append(" ").append(MessageText.getString("GeneralView.label.connected")).toString();
String peers_str = (new StringBuilder()).append(manager.getNbPeers()).append(" ").append(MessageText.getString("GeneralView.label.connected")).toString();
String completed;
if (hd != null && hd.isValid())
{
seeds_str = (new StringBuilder()).append(seeds_str).append(" ( ").append(hd.getSeeds()).append(" ").append(MessageText.getString("GeneralView.label.in_swarm")).append(" )").toString();
peers_str = (new StringBuilder()).append(peers_str).append(" ( ").append(hd.getPeers()).append(" ").append(MessageText.getString("GeneralView.label.in_swarm")).append(" )").toString();
completed = hd.getCompleted() <= -1 ? "?" : Integer.toString(hd.getCompleted());
} else
{
completed = "?";
}
String _shareRatio = "";
int sr = manager.getStats().getShareRatio();
if (sr == -1)
_shareRatio = "∞";
if (sr > 0)
{
String partial;
for (partial = (new StringBuilder()).append("").append(sr % 1000).toString(); partial.length() < 3; partial = (new StringBuilder()).append("0").append(partial).toString());
_shareRatio = (new StringBuilder()).append(sr / 1000).append(".").append(partial).toString();
}
DownloadManagerStats stats = manager.getStats();
String swarm_speed = (new StringBuilder()).append(DisplayFormatters.formatByteCountToKiBEtcPerSec(stats.getTotalAverage())).append(" ( ").append(DisplayFormatters.formatByteCountToKiBEtcPerSec(stats.getTotalAveragePerPeer())).append(" ").append(MessageText.getString("GeneralView.label.averagespeed")).append(" )").toString();
String swarm_completion = "";
String distributedCopies = "0.000";
String piecesDoneAndSum = (new StringBuilder()).append("").append(manager.getNbPieces()).toString();
PEPeerManager pm = manager.getPeerManager();
if (pm != null)
{
int comp = pm.getAverageCompletionInThousandNotation();
if (comp >= 0)
swarm_completion = DisplayFormatters.formatPercentFromThousands(comp);
piecesDoneAndSum = (new StringBuilder()).append(pm.getPiecePicker().getNbPiecesDone()).append("/").append(piecesDoneAndSum).toString();
distributedCopies = (new DecimalFormat("0.000")).format(pm.getPiecePicker().getMinAvailability() - (float)pm.getNbSeeds() - (float)(!pm.isSeeding() || stats.getDownloadCompleted(false) != 1000 ? 0 : 1));
}
setStats(DisplayFormatters.formatDownloaded(stats), DisplayFormatters.formatByteCountToKiBEtc(stats.getTotalDataBytesSent()), DisplayFormatters.formatByteCountToKiBEtcPerSec(stats.getDataReceiveRate()), DisplayFormatters.formatByteCountToKiBEtcPerSec(stats.getDataSendRate()), swarm_speed, (new StringBuilder()).append("").append(manager.getStats().getDownloadRateLimitBytesPerSecond() / 1024).toString(), (new StringBuilder()).append("").append(manager.getStats().getUploadRateLimitBytesPerSecond() / 1024).toString(), seeds_str, peers_str, completed, DisplayFormatters.formatHashFails(manager), _shareRatio, swarm_completion, distributedCopies);
setTracker();
TOTorrent torrent = manager.getTorrent();
String creation_date = DisplayFormatters.formatDate(manager.getTorrentCreationDate() * 1000L);
byte created_by[] = torrent != null ? torrent.getCreatedBy() : null;
if (created_by != null)
try
{
creation_date = MessageText.getString("GeneralView.torrent_created_on_and_by", new String[] {
creation_date, new String(created_by, "UTF8")
});
}
catch (UnsupportedEncodingException e) { }
setInfos(manager.getDisplayName(), DisplayFormatters.formatByteCountToKiBEtc(manager.getSize()), DisplayFormatters.formatDownloadStatus(manager), manager.getSaveLocation().toString(), TorrentUtils.nicePrintTorrentHash(torrent), piecesDoneAndSum, manager.getPieceLength(), manager.getTorrentComment(), creation_date, manager.getDownloadState().getUserComment(), MessageText.getString((new StringBuilder()).append("GeneralView.").append(torrent == null || !torrent.getPrivate() ? "no" : "yes").toString()));
if (loopFactor == 2)
getComposite().layout(true);
}
public void delete()
{
if (aImage != null)
aImage.dispose();
aImage = null;
if (pImage != null)
pImage.dispose();
pImage = null;
Utils.disposeComposite(genComposite);
COConfigurationManager.removeParameterListener("Graphics Update", this);
}
public String getData()
{
return "GeneralView.title.short";
}
public String getFullTitle()
{
return MessageText.getString("GeneralView.title.full");
}
private void updateAvailability()
{
if (manager == null)
return;
int available[];
this_mon.enter();
PEPeerManager pm = manager.getPeerManager();
if (manager.getPeerManager() == null)
{
if (availabilityPercent.getText() != "")
availabilityPercent.setText("");
available = new int[manager.getNbPieces()];
} else
{
available = pm.getAvailability();
}
if (display == null || display.isDisposed())
{
this_mon.exit();
return;
}
if (availabilityImage == null || availabilityImage.isDisposed())
{
this_mon.exit();
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -