📄 generalview.java
字号:
label = new Label(gInfo, SWT.LEFT);
Messages.setLanguageText(label, "GeneralView.label.savein"); //$NON-NLS-1$
saveIn = new BufferedLabel(gInfo, SWT.LEFT);
gridData = new GridData(GridData.FILL_HORIZONTAL);
saveIn.setLayoutData(gridData);
label = new Label(gInfo, SWT.LEFT);
Messages.setLanguageText(label, "GeneralView.label.hash"); //$NON-NLS-1$
hash = new BufferedLabel(gInfo, SWT.LEFT);
Messages.setLanguageText(hash, "GeneralView.label.hash.tooltip", true);
gridData = new GridData(GridData.FILL_HORIZONTAL);
hash.setLayoutData(gridData);
// click on hash -> copy to clipboard
hash.setCursor(Cursors.handCursor);
hash.setForeground(Colors.blue);
label.addMouseListener(new MouseAdapter() {
public void mouseDoubleClick(MouseEvent arg0) {
String hash_str = hash.getText();
if(hash_str != null && hash_str.length() != 0)
new Clipboard(display).setContents(new Object[] {hash_str.replaceAll(" ","")}, new Transfer[] {TextTransfer.getInstance()});
}
public void mouseDown(MouseEvent arg0) {
String hash_str = hash.getText();
if(hash_str != null && hash_str.length() != 0)
new Clipboard(display).setContents(new Object[] {hash_str.replaceAll(" ","")}, new Transfer[] {TextTransfer.getInstance()});
}
});
hash.addMouseListener(new MouseAdapter() {
public void mouseDoubleClick(MouseEvent arg0) {
String hash_str = hash.getText();
if(hash_str != null && hash_str.length() != 0)
new Clipboard(display).setContents(new Object[] {hash_str.replaceAll(" ","")}, new Transfer[] {TextTransfer.getInstance()});
}
public void mouseDown(MouseEvent arg0) {
String hash_str = hash.getText();
if(hash_str != null && hash_str.length() != 0)
new Clipboard(display).setContents(new Object[] {hash_str.replaceAll(" ","")}, new Transfer[] {TextTransfer.getInstance()});
}
});
label = new Label(gInfo, SWT.LEFT);
Messages.setLanguageText(label, "GeneralView.label.numberofpieces"); //$NON-NLS-1$
pieceNumber = new BufferedLabel(gInfo, SWT.LEFT);
gridData = new GridData(GridData.FILL_HORIZONTAL);
pieceNumber.setLayoutData(gridData);
label = new Label(gInfo, SWT.LEFT);
Messages.setLanguageText(label, "GeneralView.label.size"); //$NON-NLS-1$
pieceSize = new BufferedLabel(gInfo, SWT.LEFT);
gridData = new GridData(GridData.FILL_HORIZONTAL);
pieceSize.setLayoutData(gridData);
label = new Label(gInfo, SWT.LEFT);
Messages.setLanguageText(label, "GeneralView.label.trackerurl"); //$NON-NLS-1$
label.setCursor(Cursors.handCursor);
label.setForeground(Colors.blue);
label.addMouseListener(new MouseAdapter() {
public void mouseDoubleClick(MouseEvent arg0) {
String announce = trackerUrlValue.getText();
if(announce != null && announce.length() != 0)
new Clipboard(display).setContents(new Object[] {announce}, new Transfer[] {TextTransfer.getInstance()});
}
public void mouseDown(MouseEvent arg0) {
String announce = trackerUrlValue.getText();
if(announce != null && announce.length() != 0)
new Clipboard(display).setContents(new Object[] {announce}, new Transfer[] {TextTransfer.getInstance()});
}
});
menuTracker = new Menu(genComposite.getShell(),SWT.POP_UP);
itemSelect = new MenuItem(menuTracker,SWT.CASCADE);
Messages.setLanguageText(itemSelect, "GeneralView.menu.selectTracker");
MenuItem itemEdit = new MenuItem(menuTracker,SWT.NULL);
Messages.setLanguageText(itemEdit, "MyTorrentsView.menu.editTracker");
itemEdit.addListener(
SWT.Selection,
new Listener()
{
public void
handleEvent(Event e)
{
final TOTorrent torrent = manager.getTorrent();
List group = TorrentUtils.announceGroupsToList( torrent );
new MultiTrackerEditor(null,group,
new TrackerEditorListener()
{
public void
trackersChanged(
String str,
String str2,
List _group )
{
TorrentUtils.listToAnnounceGroups( _group, torrent );
try{
TorrentUtils.writeToFile( torrent );
}catch( Throwable e2 ){
Debug.printStackTrace( e2 );
}
TRTrackerClient tc = manager.getTrackerClient();
if ( tc != null ){
tc.resetTrackerUrl( true );
}
}
}, true);
}
});
final Listener menuListener = new Listener()
{
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 );
}
TRTrackerClient tc = manager.getTrackerClient();
if ( tc != null ){
tc.resetTrackerUrl( false );
}
}
}
};
menuTracker.addListener(SWT.Show,new Listener() {
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(),SWT.DROP_DOWN);
itemSelect.setMenu(menuSelect);
Iterator iterGroups = groups.iterator();
while(iterGroups.hasNext()) {
List trackers = (List) iterGroups.next();
MenuItem menuItem = new MenuItem(menuSelect,SWT.CASCADE);
Messages.setLanguageText(menuItem,"wizard.multitracker.group");
Menu menu = new Menu(genComposite.getShell(),SWT.DROP_DOWN);
menuItem.setMenu(menu);
Iterator iterTrackers = trackers.iterator();
while(iterTrackers.hasNext()) {
String url = (String) iterTrackers.next();
MenuItem menuItemTracker = new MenuItem(menu,SWT.CASCADE);
menuItemTracker.setText(url);
menuItemTracker.addListener(SWT.Selection,menuListener);
}
}
}
});
trackerUrlValue = new BufferedLabel(gInfo, SWT.LEFT);
trackerUrlValue.addMouseListener(new MouseAdapter() {
public void mouseUp(MouseEvent event) {
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);
}
Program.launch(url);
}
} else if(event.button == 3){
menuTracker.setVisible(true);
}
}
});
label = new Label(gInfo, SWT.LEFT);
Messages.setLanguageText(label, "GeneralView.label.creationdate"); //$NON-NLS-1$
creation_date = new BufferedLabel(gInfo, SWT.LEFT);
gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 1;
creation_date.setLayoutData(gridData);
gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 1;
trackerUrlValue.setLayoutData(gridData);
label = new Label(gInfo, SWT.LEFT);
Messages.setLanguageText(label, "GeneralView.label.tracker"); //$NON-NLS-1$
tracker = new BufferedLabel(gInfo, SWT.LEFT);
gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 3;
tracker.setLayoutData(gridData);
label = new Label(gInfo, SWT.LEFT);
Messages.setLanguageText(label, "GeneralView.label.updatein"); //$NON-NLS-1$
trackerUpdateIn = new BufferedLabel(gInfo, SWT.LEFT);
gridData = new GridData(GridData.FILL_HORIZONTAL);
trackerUpdateIn.setLayoutData(gridData);
updateButton = new Button(gInfo, SWT.PUSH);
Messages.setLanguageText(updateButton, "GeneralView.label.trackerurlupdate"); //$NON-NLS-1$
gridData = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
updateButton.setLayoutData(gridData);
updateButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
manager.checkTracker();
}
});
label = new Label(gInfo, SWT.LEFT);
// row
label = new Label(gInfo, SWT.LEFT);
gridData = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
label.setLayoutData(gridData);
Messages.setLanguageText(label, "GeneralView.label.comment"); //$NON-NLS-1$
comment = new BufferedLabel(gInfo, SWT.LEFT | SWT.WRAP);
gridData = new GridData(GridData.FILL_BOTH);
gridData.horizontalSpan = 3;
comment.setLayoutData(gridData);
piecesImage.addListener(SWT.Paint, new Listener() {
public void handleEvent(Event e) {
if (e.count == 0 && e.width > 0 && e.height > 0) {
updatePiecesInfo(true);
}
}
});
availabilityImage.addListener(SWT.Paint, new Listener() {
public void handleEvent(Event e) {
if (e.count == 0 && e.width > 0 && e.height > 0) {
updateAvailability();
}
}
});
if( Constants.isOSX ) {
Shell shell = MainWindow.getWindow().getShell();
Point size = shell.getSize();
shell.setSize(size.x-1,size.y-1);
shell.setSize(size);
}
genComposite.layout();
//Utils.changeBackgroundComposite(genComposite,MainWindow.getWindow().getBackground());
COConfigurationManager.addParameterListener("Graphics Update", this);
}
/* (non-Javadoc)
* @see org.gudy.azureus2.ui.swt.IView#getComposite()
*/
public Composite getComposite() {
return genComposite;
}
/* (non-Javadoc)
* @see org.gudy.azureus2.ui.swt.IView#refresh()
*/
public void refresh() {
if(getComposite() == null || getComposite().isDisposed())
return;
loopFactor++;
if ((loopFactor % graphicsUpdate) == 0) {
updateAvailability();
updatePiecesInfo(false);
}
DiskManager dm = manager.getDiskManager();
setTime(manager.getStats().getElapsedTime(),
DisplayFormatters.formatETA(manager.getStats().getETA()) +
((dm != null) ? " " + DisplayFormatters.formatByteCountToKiBEtc(dm.getRemaining()) : "") );
TRTrackerScraperResponse hd = manager.getTrackerScrapeResponse();
String seeds_str = manager.getNbSeeds() +" "+ MessageText.getString("GeneralView.label.connected");
String peers_str = manager.getNbPeers() +" "+ MessageText.getString("GeneralView.label.connected");
if(hd != null && hd.isValid()) {
seeds_str += " (" + hd.getSeeds() +" "+ MessageText.getString("GeneralView.label.in_swarm") + ")";
peers_str += " (" + hd.getPeers() +" "+ MessageText.getString("GeneralView.label.in_swarm") + ")";
} else {
//seeds += " (?)";
//peers += " (?)";
}
String _shareRatio = "";
int sr = manager.getStats().getShareRatio();
if(sr == -1) _shareRatio = Constants.INFINITY_STRING;
if(sr > 0){
String partial = "" + sr%1000;
while(partial.length() < 3) partial = "0" + partial;
_shareRatio = (sr/1000) + "." + partial;
}
DownloadManagerStats stats = manager.getStats();
setStats(
DisplayFormatters.formatDownloaded(stats),
DisplayFormatters.formatByteCountToKiBEtc(stats.getUploaded()),
DisplayFormatters.formatByteCountToKiBEtcPerSec(stats.getDownloadAverage()),
DisplayFormatters.formatByteCountToKiBEtcPerSec(stats.getUploadAverage()),
DisplayFormatters.formatByteCountToKiBEtcPerSec(stats.getTotalAverage()),
""+manager.getStats().getMaxDownloadKBSpeed(),
""+(manager.getStats().getUploadRateLimitBytesPerSecond()/1024),
seeds_str,
peers_str,
DisplayFormatters.formatHashFails(manager),
_shareRatio);
setTracker(manager);
TOTorrent torrent = manager.getTorrent();
setInfos(
manager.getDisplayName(),
torrent==null?null:LocaleUtil.getSingleton().getCurrentTorrentEncoding( torrent ),
DisplayFormatters.formatByteCountToKiBEtc(manager.getSize()),
manager.getTorrentSaveDirAndFile(),
ByteFormatter.nicePrintTorrentHash(torrent),
manager.getNbPieces(),
manager.getPieceLength(),
manager.getTorrentComment(),
DisplayFormatters.formatDate(manager.getTorrentCreationDate()*1000));
//A special layout, for OS X and Linux, on which for some unknown reason
//the initial layout fails.
if (loopFactor == 2) {
getComposite().layout(true);
}
}
/* (non-Javadoc)
* @see org.gudy.azureus2.ui.swt.IView#delete()
*/
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"; //$NON-NLS-1$
}
/* (non-Javadoc)
* @see org.gudy.azureus2.ui.swt.IView#getFullTitle()
*/
public String getFullTitle() {
return MessageText.getString("GeneralView.title.full"); //$NON-NLS-1$
}
public void updateAvailability() {
try{
this_mon.enter();
final int[] available;
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())
return;
if (availabilityImage == null || availabilityImage.isDisposed()) {
return;
}
Rectangle bounds = availabilityImage.getClientArea();
GC gc = new GC(availabilityImage);
if (aImage != null && !aImage.isDisposed())
aImage.dispose();
aImage = new Image(display, bounds.width, bounds.height);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -