📄 generalview.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: GeneralView.java
package org.gudy.azureus2.ui.swt.views;
import com.aelitis.azureus.core.peermanager.piecepicker.PiecePicker;
import com.aelitis.azureus.core.util.AZ3Functions;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.text.DecimalFormat;
import java.util.Iterator;
import java.util.List;
import org.eclipse.swt.dnd.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.config.ParameterListener;
import org.gudy.azureus2.core3.disk.DiskManager;
import org.gudy.azureus2.core3.disk.DiskManagerPiece;
import org.gudy.azureus2.core3.download.*;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.peer.PEPeerManager;
import org.gudy.azureus2.core3.torrent.TOTorrent;
import org.gudy.azureus2.core3.torrent.TOTorrentException;
import org.gudy.azureus2.core3.tracker.client.TRTrackerAnnouncer;
import org.gudy.azureus2.core3.tracker.client.TRTrackerScraperResponse;
import org.gudy.azureus2.core3.util.*;
import org.gudy.azureus2.ui.swt.*;
import org.gudy.azureus2.ui.swt.components.BufferedLabel;
import org.gudy.azureus2.ui.swt.components.BufferedTruncatedLabel;
import org.gudy.azureus2.ui.swt.debug.ObfusticateImage;
import org.gudy.azureus2.ui.swt.debug.UIDebugGenerator;
import org.gudy.azureus2.ui.swt.mainwindow.Colors;
import org.gudy.azureus2.ui.swt.mainwindow.Cursors;
import org.gudy.azureus2.ui.swt.maketorrent.MultiTrackerEditor;
import org.gudy.azureus2.ui.swt.maketorrent.TrackerEditorListener;
// Referenced classes of package org.gudy.azureus2.ui.swt.views:
// AbstractIView
public class GeneralView extends AbstractIView
implements ParameterListener, ObfusticateImage
{
private Display display;
private DownloadManager manager;
boolean pieces[];
int loopFactor;
Composite genComposite;
Composite gFile;
Canvas piecesImage;
Image pImage;
BufferedLabel piecesPercent;
Canvas availabilityImage;
Image aImage;
BufferedLabel availabilityPercent;
Group gTransfer;
BufferedLabel timeElapsed;
BufferedLabel timeRemaining;
BufferedLabel download;
BufferedLabel downloadSpeed;
BufferedLabel upload;
BufferedLabel uploadSpeed;
BufferedLabel totalSpeed;
BufferedLabel ave_completion;
BufferedLabel distributedCopies;
BufferedLabel seeds;
BufferedLabel peers;
BufferedLabel completedLbl;
Group gInfo;
BufferedLabel fileName;
BufferedLabel torrentStatus;
BufferedLabel fileSize;
BufferedLabel saveIn;
BufferedLabel hash;
BufferedTruncatedLabel tracker_status;
BufferedLabel trackerUpdateIn;
Menu menuTracker;
MenuItem itemSelect;
BufferedTruncatedLabel trackerUrlValue;
BufferedLabel pieceNumber;
BufferedLabel pieceSize;
Control lblComment;
BufferedLabel creation_date;
BufferedLabel privateStatus;
Control user_comment;
BufferedLabel hashFails;
BufferedLabel shareRatio;
Button updateButton;
private int graphicsUpdate;
private Composite parent;
public GeneralView()
{
manager = null;
graphicsUpdate = COConfigurationManager.getIntParameter("Graphics Update");
}
public void dataSourceChanged(Object newDataSource)
{
if (newDataSource == null)
manager = null;
else
if (newDataSource instanceof Object[])
manager = (DownloadManager)((Object[])(Object[])newDataSource)[0];
else
manager = (DownloadManager)newDataSource;
refreshInfo();
}
public void initialize(Composite composite)
{
parent = composite;
genComposite = new Canvas(parent, 0);
GridLayout genLayout = new GridLayout();
genLayout.marginHeight = 0;
try
{
genLayout.marginTop = 5;
}
catch (NoSuchFieldError e) { }
genLayout.marginWidth = 2;
genLayout.numColumns = 1;
genComposite.setLayout(genLayout);
refreshInfo();
COConfigurationManager.addParameterListener("Graphics Update", this);
}
private void refreshInfo()
{
if (manager == null || parent == null)
return;
Utils.disposeComposite(genComposite, false);
pieces = new boolean[manager.getNbPieces()];
display = parent.getDisplay();
gFile = new Composite(genComposite, 8);
GridData gridData = new GridData(768);
gFile.setLayoutData(gridData);
GridLayout fileLayout = new GridLayout();
fileLayout.marginHeight = 0;
fileLayout.marginWidth = 10;
fileLayout.numColumns = 3;
gFile.setLayout(fileLayout);
Label piecesInfo = new Label(gFile, 16384);
Messages.setLanguageText(piecesInfo, "GeneralView.section.downloaded");
gridData = new GridData(32);
piecesInfo.setLayoutData(gridData);
piecesImage = new Canvas(gFile, 0);
gridData = new GridData(768);
gridData.widthHint = 150;
gridData.heightHint = 25;
piecesImage.setLayoutData(gridData);
piecesPercent = new BufferedLabel(gFile, 0x20000);
gridData = new GridData(128);
gridData.widthHint = 50;
piecesPercent.setLayoutData(gridData);
Label availabilityInfo = new Label(gFile, 16384);
Messages.setLanguageText(availabilityInfo, "GeneralView.section.availability");
gridData = new GridData(32);
availabilityInfo.setLayoutData(gridData);
availabilityImage = new Canvas(gFile, 0);
gridData = new GridData(768);
gridData.widthHint = 150;
gridData.heightHint = 25;
availabilityImage.setLayoutData(gridData);
Messages.setLanguageText(availabilityImage, "GeneralView.label.status.pieces_available.tooltip");
availabilityPercent = new BufferedLabel(gFile, 0x20000);
gridData = new GridData(128);
gridData.widthHint = 50;
availabilityPercent.setLayoutData(gridData);
Messages.setLanguageText(availabilityPercent.getWidget(), "GeneralView.label.status.pieces_available.tooltip");
gTransfer = new Group(genComposite, 8);
Messages.setLanguageText(gTransfer, "GeneralView.section.transfer");
gridData = new GridData(768);
gTransfer.setLayoutData(gridData);
GridLayout layoutTransfer = new GridLayout();
layoutTransfer.numColumns = 6;
gTransfer.setLayout(layoutTransfer);
Label label = new Label(gTransfer, 16384);
Messages.setLanguageText(label, "GeneralView.label.timeelapsed");
timeElapsed = new BufferedLabel(gTransfer, 16384);
gridData = new GridData(768);
timeElapsed.setLayoutData(gridData);
label = new Label(gTransfer, 16384);
Messages.setLanguageText(label, "GeneralView.label.remaining");
timeRemaining = new BufferedLabel(gTransfer, 16384);
gridData = new GridData(768);
timeRemaining.setLayoutData(gridData);
label = new Label(gTransfer, 16384);
Messages.setLanguageText(label, "GeneralView.label.shareRatio");
shareRatio = new BufferedLabel(gTransfer, 16384);
gridData = new GridData(768);
shareRatio.setLayoutData(gridData);
label = new Label(gTransfer, 16384);
Messages.setLanguageText(label, "GeneralView.label.downloaded");
download = new BufferedLabel(gTransfer, 16384);
gridData = new GridData(768);
download.setLayoutData(gridData);
label = new Label(gTransfer, 16384);
Messages.setLanguageText(label, "GeneralView.label.downloadspeed");
downloadSpeed = new BufferedLabel(gTransfer, 16384);
gridData = new GridData(768);
downloadSpeed.setLayoutData(gridData);
label = new Label(gTransfer, 16384);
Messages.setLanguageText(label, "GeneralView.label.hashfails");
hashFails = new BufferedLabel(gTransfer, 16384);
gridData = new GridData(768);
hashFails.setLayoutData(gridData);
label = new Label(gTransfer, 16384);
Messages.setLanguageText(label, "GeneralView.label.uploaded");
upload = new BufferedLabel(gTransfer, 16384);
gridData = new GridData(768);
upload.setLayoutData(gridData);
label = new Label(gTransfer, 16384);
Messages.setLanguageText(label, "GeneralView.label.uploadspeed");
uploadSpeed = new BufferedLabel(gTransfer, 16384);
gridData = new GridData(768);
gridData.horizontalSpan = 3;
uploadSpeed.setLayoutData(gridData);
label = new Label(gTransfer, 16384);
Messages.setLanguageText(label, "GeneralView.label.seeds");
seeds = new BufferedLabel(gTransfer, 16384);
gridData = new GridData(768);
seeds.setLayoutData(gridData);
label = new Label(gTransfer, 16384);
Messages.setLanguageText(label, "GeneralView.label.peers");
peers = new BufferedLabel(gTransfer, 16384);
gridData = new GridData(768);
peers.setLayoutData(gridData);
label = new Label(gTransfer, 16384);
Messages.setLanguageText(label, "GeneralView.label.completed");
completedLbl = new BufferedLabel(gTransfer, 16384);
gridData = new GridData(768);
completedLbl.setLayoutData(gridData);
label = new Label(gTransfer, 16384);
Messages.setLanguageText(label, "GeneralView.label.totalspeed");
totalSpeed = new BufferedLabel(gTransfer, 16384);
gridData = new GridData(768);
totalSpeed.setLayoutData(gridData);
label = new Label(gTransfer, 16384);
Messages.setLanguageText(label, "GeneralView.label.swarm_average_completion");
ave_completion = new BufferedLabel(gTransfer, 16384);
gridData = new GridData(768);
ave_completion.setLayoutData(gridData);
label = new Label(gTransfer, 16384);
Messages.setLanguageText(label, "GeneralView.label.distributedCopies");
distributedCopies = new BufferedLabel(gTransfer, 16384);
gridData = new GridData(768);
distributedCopies.setLayoutData(gridData);
gInfo = new Group(genComposite, 8);
Messages.setLanguageText(gInfo, "GeneralView.section.info");
gridData = new GridData(1808);
gInfo.setLayoutData(gridData);
GridLayout layoutInfo = new GridLayout();
layoutInfo.numColumns = 4;
gInfo.setLayout(layoutInfo);
label = new Label(gInfo, 16384);
Messages.setLanguageText(label, "GeneralView.label.filename");
fileName = new BufferedLabel(gInfo, 16384);
gridData = new GridData(768);
fileName.setLayoutData(gridData);
label = new Label(gInfo, 16384);
Messages.setLanguageText(label, "GeneralView.label.status");
torrentStatus = new BufferedLabel(gInfo, 16384);
gridData = new GridData(768);
torrentStatus.setLayoutData(gridData);
label = new Label(gInfo, 16384);
Messages.setLanguageText(label, "GeneralView.label.savein");
saveIn = new BufferedLabel(gInfo, 16384);
gridData = new GridData(768);
saveIn.setLayoutData(gridData);
label = new Label(gInfo, 16384);
Messages.setLanguageText(label, "GeneralView.label.totalsize");
fileSize = new BufferedLabel(gInfo, 16384);
gridData = new GridData(768);
fileSize.setLayoutData(gridData);
label = new Label(gInfo, 16384);
Messages.setLanguageText(label, "GeneralView.label.numberofpieces");
pieceNumber = new BufferedLabel(gInfo, 16384);
gridData = new GridData(768);
pieceNumber.setLayoutData(gridData);
label = new Label(gInfo, 16384);
Messages.setLanguageText(label, "GeneralView.label.hash");
hash = new BufferedLabel(gInfo, 16384);
Messages.setLanguageText(hash.getWidget(), "GeneralView.label.hash.tooltip", true);
gridData = new GridData(768);
hash.setLayoutData(gridData);
hash.setCursor(Cursors.handCursor);
hash.setForeground(Colors.blue);
label.addMouseListener(new MouseAdapter() {
final GeneralView this$0;
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()
});
}
{
this$0 = GeneralView.this;
super();
}
});
hash.addMouseListener(new MouseAdapter() {
final GeneralView this$0;
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()
});
}
{
this$0 = GeneralView.this;
super();
}
});
label = new Label(gInfo, 16384);
Messages.setLanguageText(label, "GeneralView.label.trackerurl");
label.setCursor(Cursors.handCursor);
label.setForeground(Colors.blue);
label.addMouseListener(new MouseAdapter() {
final GeneralView this$0;
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()
});
}
{
this$0 = GeneralView.this;
super();
}
});
menuTracker = new Menu(genComposite.getShell(), 8);
itemSelect = new MenuItem(menuTracker, 64);
Messages.setLanguageText(itemSelect, "GeneralView.menu.selectTracker");
MenuItem itemEdit = new MenuItem(menuTracker, 0);
Messages.setLanguageText(itemEdit, "MyTorrentsView.menu.editTracker");
itemEdit.addListener(13, new Listener() {
final GeneralView this$0;
public void handleEvent(Event e)
{
final TOTorrent torrent = manager.getTorrent();
if (torrent == null)
{
return;
} else
{
List group = TorrentUtils.announceGroupsToList(torrent);
new MultiTrackerEditor(null, group, new TrackerEditorListener() {
final TOTorrent val$torrent;
final 4 this$1;
public void trackersChanged(String str, String str2, List _group)
{
TorrentUtils.listToAnnounceGroups(_group, torrent);
try
{
TorrentUtils.writeToFile(torrent);
}
catch (Throwable e2)
{
Debug.printStackTrace(e2);
}
TRTrackerAnnouncer tc = manager.getTrackerClient();
if (tc != null)
tc.resetTrackerUrl(true);
}
{
this$1 = 4.this;
torrent = totorrent;
super();
}
}, true);
return;
}
}
{
this$0 = GeneralView.this;
super();
}
});
final Listener menuListener = new Listener() {
final GeneralView this$0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -