mainwindow.java
来自「Azureus is a powerful, full-featured, cr」· Java 代码 · 共 1,776 行 · 第 1/4 页
JAVA
1,776 行
formData.width = 150;
formData.height = height;
statusUpdateLabel.setLayoutData(formData);
/*formData = new FormData();
formData.right = new FormAttachment(100);
ctrlHeight = statusUpdateButton.computeSize(100,SWT.DEFAULT).y;
top = (height - ctrlHeight) / 2;
//formData.top = new FormAttachment(0,top);
formData.width = 100;
formData.height = height;
statusUpdateButton.setLayoutData(formData);*/
formData = new FormData();
formData.left = new FormAttachment(statusUpdateLabel);
formData.right = new FormAttachment(100,0);
ctrlHeight = statusUpdateProgressBar.computeSize(100,SWT.DEFAULT).y;
top = (height - ctrlHeight) / 2;
formData.top = new FormAttachment(0,top);
formData.height = height;
statusUpdateProgressBar.setLayoutData(formData);
layoutStatusAera.topControl = statusText;
gridData = new GridData();
if( Constants.isLinux ) gridData.widthHint = 255;
else gridData.widthHint = 225;
ipBlocked = new CLabel(statusBar, SWT.SHADOW_IN);
ipBlocked.setText("{} IPs:"); //$NON-NLS-1$
ipBlocked.setLayoutData(gridData);
Messages.setLanguageText(ipBlocked,"MainWindow.IPs.tooltip");
ipBlocked.addMouseListener(new MouseAdapter() {
public void mouseDoubleClick(MouseEvent arg0) {
BlockedIpsWindow.showBlockedIps(azureus_core, MainWindow.this.mainWindow);
}
});
gridData = new GridData();
gridData.widthHint = Constants.isOSX ? 150 : ( Constants.isLinux ? 140 : 130 );
statusDown = new CLabel(statusBar, SWT.SHADOW_IN);
statusDown.setText(/*MessageText.getString("ConfigView.download.abbreviated") +*/ "n/a");
statusDown.setLayoutData(gridData);
Messages.setLanguageText(statusDown,"MainWindow.status.updowndetails.tooltip");
Listener lStats = new Listener() {
public void handleEvent(Event e) {
showStats();
}
};
gridData = new GridData();
gridData.widthHint = Constants.isOSX ? 150 : ( Constants.isLinux ? 140 : 130 );
statusUp = new CLabel(statusBar, SWT.SHADOW_IN);
statusUp.setText(/*MessageText.getString("ConfigView.upload.abbreviated") +*/ "n/a");
statusUp.setLayoutData(gridData);
Messages.setLanguageText(statusUp,"MainWindow.status.updowndetails.tooltip");
statusDown.addListener(SWT.MouseDoubleClick,lStats);
statusUp.addListener(SWT.MouseDoubleClick,lStats);
final Menu menuUpSpeed = new Menu(mainWindow,SWT.POP_UP);
menuUpSpeed.addListener(SWT.Show,new Listener() {
public void handleEvent(Event e) {
MenuItem[] items = menuUpSpeed.getItems();
for(int i = 0 ; i < items.length ; i++) {
items[i].dispose();
}
int upLimit = COConfigurationManager.getIntParameter("Max Upload Speed KBs",0);
MenuItem item = new MenuItem(menuUpSpeed,SWT.RADIO);
item.setText(MessageText.getString("ConfigView.unlimited"));
item.addListener(SWT.Selection,new Listener() {
public void handleEvent(Event e) {
COConfigurationManager.setParameter("Max Upload Speed KBs",0);
COConfigurationManager.save();
}
});
if(upLimit == 0) item.setSelection(true);
final Listener speedChangeListener = new Listener() {
public void handleEvent(Event e) {
int iSpeed = ((Long)((MenuItem)e.widget).getData("speed")).intValue();
COConfigurationManager.setParameter("Max Upload Speed KBs", iSpeed);
COConfigurationManager.save();
}
};
int iRel = 0;
for (int i = 0; i < 12; i++) {
int[] iAboveBelow;
if (iRel == 0) {
iAboveBelow = new int[] { upLimit };
} else {
iAboveBelow = new int[] { upLimit - iRel, upLimit + iRel };
}
for (int j = 0; j < iAboveBelow.length; j++) {
if (iAboveBelow[j] >= 5) {
item = new MenuItem(menuUpSpeed, SWT.RADIO,
(j == 0) ? 1 : menuUpSpeed.getItemCount());
item.setText(iAboveBelow[j] + " KB/s");
item.setData("speed", new Long(iAboveBelow[j]));
item.addListener(SWT.Selection, speedChangeListener);
if (upLimit == iAboveBelow[j]) item.setSelection(true);
}
}
iRel += (iRel >= 10) ? 10 : (iRel >= 6) ? 2 : 1;
}
}
});
statusUp.setMenu(menuUpSpeed);
final Menu menuDownSpeed = new Menu(mainWindow,SWT.POP_UP);
menuDownSpeed.addListener(SWT.Show,new Listener() {
public void handleEvent(Event e) {
MenuItem[] items = menuDownSpeed.getItems();
for(int i = 0 ; i < items.length ; i++) {
items[i].dispose();
}
int downLimit = COConfigurationManager.getIntParameter("Max Download Speed KBs",0);
MenuItem item = new MenuItem(menuDownSpeed,SWT.RADIO);
item.setText(MessageText.getString("ConfigView.unlimited"));
item.addListener(SWT.Selection,new Listener() {
public void handleEvent(Event e) {
COConfigurationManager.setParameter("Max Download Speed KBs",0);
COConfigurationManager.save();
}
});
if(downLimit == 0) item.setSelection(true);
final Listener speedChangeListener = new Listener() {
public void handleEvent(Event e) {
int iSpeed = ((Long)((MenuItem)e.widget).getData("speed")).intValue();
COConfigurationManager.setParameter("Max Download Speed KBs", iSpeed);
COConfigurationManager.save();
}
};
int iRel = 0;
for (int i = 0; i < 12; i++) {
int[] iAboveBelow;
if (iRel == 0) {
iAboveBelow = new int[] { downLimit };
} else {
iAboveBelow = new int[] { downLimit - iRel, downLimit + iRel };
}
for (int j = 0; j < iAboveBelow.length; j++) {
if (iAboveBelow[j] >= 5) {
item = new MenuItem(menuDownSpeed, SWT.RADIO,
(j == 0) ? 1 : menuDownSpeed.getItemCount());
item.setText(iAboveBelow[j] + " KB/s");
item.setData("speed", new Long(iAboveBelow[j]));
item.addListener(SWT.Selection, speedChangeListener);
if (downLimit == iAboveBelow[j]) item.setSelection(true);
}
}
iRel += (iRel >= 10) ? 10 : (iRel >= 6) ? 2 : 1;
}
}
});
statusDown.setMenu(menuDownSpeed);
LGLogger.log("Initializing GUI complete");
globalManager.addListener(this);
boolean isMaximized = COConfigurationManager.getBooleanParameter("window.maximized", mainWindow.getMaximized());
mainWindow.setMaximized(isMaximized);
String windowRectangle = COConfigurationManager.getStringParameter("window.rectangle", null);
if (null != windowRectangle) {
int i = 0;
int[] values = new int[4];
StringTokenizer st = new StringTokenizer(windowRectangle, ",");
try {
while (st.hasMoreTokens() && i < 4) {
values[i++] = Integer.valueOf(st.nextToken()).intValue();
if (values[i - 1] < 0)
values[i - 1] = 0;
}
if (i == 4) {
mainWindow.setBounds(values[0], values[1], values[2], values[3]);
}
}
catch (Exception e) {}
}
//NICO catch the dispose event from file/quit on osx
mainWindow.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent event) {
if (!isAlreadyDead) {
isDisposeFromListener = true;
if (mainWindow != null) {
mainWindow.removeDisposeListener(this);
dispose(false,false);
}
isAlreadyDead = true;
}
}
});
mainWindow.layout();
mainWindow.addShellListener(new ShellAdapter() {
public void
shellClosed(ShellEvent event)
{
if ( systemTraySWT != null &&
COConfigurationManager.getBooleanParameter("Enable System Tray") &&
COConfigurationManager.getBooleanParameter("Close To Tray", true)){
minimizeToTray(event);
}
else {
event.doit = dispose(false,false);
}
}
public void
shellIconified(ShellEvent event)
{
if ( systemTraySWT != null &&
COConfigurationManager.getBooleanParameter("Enable System Tray") &&
COConfigurationManager.getBooleanParameter("Minimize To Tray", false)) {
minimizeToTray(event);
}
}
});
mainWindow.addListener(SWT.Deiconify, new Listener() {
public void handleEvent(Event e) {
if (Constants.isOSX && COConfigurationManager.getBooleanParameter("Password enabled", false)) {
e.doit = false;
mainWindow.setVisible(false);
PasswordWindow.showPasswordWindow(display);
}
}
});
}catch( Throwable e ){
System.out.println("Initialize Error");
Debug.printStackTrace( e );
}
}
private void openMainWindow() {
// share progress window
new ProgressWindow();
addUpdateListener();
if ( azureus_core.getTrackerHost().getTorrents().length > 0 ){
showMyTracker();
}
showMyTorrents();
if (COConfigurationManager.getBooleanParameter("Open Console", false)) {
showConsole();
}
if (COConfigurationManager.getBooleanParameter("Open Config", false)) {
showConfig();
}
if (COConfigurationManager.getBooleanParameter("Open Stats On Start", false)) {
showStats();
}
mainWindow.open();
mainWindow.forceActive();
updater = new GUIUpdater(azureus_core,this);
updater.start();
if ( COConfigurationManager.getBooleanParameter("Enable System Tray")){
try {
systemTraySWT = new SystemTraySWT(this);
} catch (Throwable e) {
LGLogger.log(LGLogger.ERROR, "Upgrade to SWT3.0M8 or later for system tray support.");
}
if (COConfigurationManager.getBooleanParameter("Start Minimized", false)) {
minimizeToTray(null);
}
//Only show the password if not started minimized
//Correct bug #878227
else {
if (COConfigurationManager.getBooleanParameter("Password enabled", false)) {
minimizeToTray(null);
PasswordWindow.showPasswordWindow(display);
}
}
}
azureus_core.getPluginManager().firePluginEvent( PluginEvent.PEV_CONFIGURATION_WIZARD_STARTS );
if (!COConfigurationManager.getBooleanParameter("Wizard Completed", false)) {
ConfigureWizard wizard = new ConfigureWizard(getAzureusCore(),display);
wizard.addListener(
new WizardListener()
{
public void
closed()
{
azureus_core.getPluginManager().firePluginEvent( PluginEvent.PEV_CONFIGURATION_WIZARD_COMPLETES );
}
});
}else{
azureus_core.getPluginManager().firePluginEvent( PluginEvent.PEV_CONFIGURATION_WIZARD_COMPLETES );
}
if (COConfigurationManager.getBooleanParameter("Show Download Basket", false)) { //$NON-NLS-1$
if(tray == null)
tray = new TrayWindow(this);
tray.setVisible(true);
}
COConfigurationManager.addParameterListener("Show Download Basket", this);
COConfigurationManager.addParameterListener("GUI_SWT_bFancyTab", this);
Tab.addTabKeyListenerToComposite(folder);
// globalManager.startChecker();
// check file associations
DonationWindow2.checkForDonationPopup();
}
public void showMyTracker() {
if (my_tracker_tab == null) {
my_tracker_tab = new Tab(new MyTrackerView(azureus_core));
} else {
my_tracker_tab.setFocus();
refreshIconBar();
}
}
public void
showMyShares()
{
if (my_shares_tab == null) {
my_shares_tab = new Tab(new MySharesView(azureus_core));
} else {
my_shares_tab.setFocus();
refreshIconBar();
}
}
public void showMyTorrents() {
if (mytorrents == null) {
mytorrents = new Tab(new MyTorrentsSuperView(azureus_core));
} else
mytorrents.setFocus();
refreshIconBar();
}
private void minimizeToTray(ShellEvent event) {
//Added this test so that we can call this method will null parameter.
if (event != null)
event.doit = false;
if(Constants.isOSX) {
mainWindow.setMinimized(true);
} else {
mainWindow.setVisible(false);
}
if (tray != null)
tray.setVisible(true);
try{
downloadBars_mon.enter();
Iterator iter = downloadBars.values().iterator();
while (iter.hasNext()) {
MinimizedWindow mw = (MinimizedWindow) iter.next();
mw.setVisible(true);
}
}finally{
downloadBars_mon.exit();
}
}
public void setStatusText(String keyedSentence) {
this.statusTextKey = keyedSentence==null?"":keyedSentence;
updateStatusText();
}
private void updateStatusText() {
if (display == null || display.isDisposed())
return;
final String text;
if(updateWindow != null) {
text = this.statusTextKey + " MainWindow.updateavail";
} else {
text = this.statusTextKey;
}
display.asyncExec(new AERunnable(){
public void runSupport() {
if (statusText != null && !statusText.isDisposed()) {
statusText.setText(MessageText.getStringForSentence(text));
}
}
});
}
private void
updateComponents()
{
if (statusText != null)
statusText.update();
if (folder != null) {
if(useCustomTab) {
((CTabFolder)folder).update();
} else {
((TabFolder)folder).update();
}
}
}
public void closeDownloadBars() {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?