📄 mainwindow.java
字号:
Logger.log(new LogEvent(LOGID, " denied - password is enabled"));
return;
}
Utils.execSWTThread(
new Runnable()
{
public void
run()
{
dispose( false, false );
}
});
}
// globalmanagerlistener
public void
destroyed()
{
}
public void
destroyInitiated()
{
}
public void seedingStatusChanged( boolean seeding_only_mode ){
}
public void
downloadManagerAdded(
final DownloadManager created)
{
DonationWindow2.checkForDonationPopup();
created.addListener(this);
/*
if (display != null && !display.isDisposed()){
display.asyncExec(new AERunnable() {
public void
runSupport()
{
if (COConfigurationManager.getBooleanParameter("Open Details")){
openManagerView(created);
}
if (COConfigurationManager.getBooleanParameter("Open Bar", false)) {
try{
downloadBars_mon.enter();
MinimizedWindow mw = new MinimizedWindow(created, mainWindow);
downloadBars.put(created, mw);
}finally{
downloadBars_mon.exit();
}
}
}
});
}
*/
}
public void openManagerView(DownloadManager downloadManager) {
try{
downloadViews_mon.enter();
if (downloadViews.containsKey(downloadManager)) {
Tab tab = (Tab) downloadViews.get(downloadManager);
tab.setFocus();
refreshIconBar();
}
else {
Tab tab = new Tab(new ManagerView(azureus_core, downloadManager));
downloadViews.put(downloadManager, tab);
}
}finally{
downloadViews_mon.exit();
}
}
public void removeManagerView(DownloadManager downloadManager) {
try{
downloadViews_mon.enter();
downloadViews.remove(downloadManager);
}finally{
downloadViews_mon.exit();
}
}
public void downloadManagerRemoved(DownloadManager removed) {
try{
downloadViews_mon.enter();
if (downloadViews.containsKey(removed)) {
final Tab tab = (Tab) downloadViews.get(removed);
Utils.execSWTThread(new AERunnable(){
public void runSupport() {
if (display == null || display.isDisposed())
return;
tab.dispose();
}
});
}
}finally{
downloadViews_mon.exit();
}
}
public Display getDisplay() {
return this.display;
}
public Shell getShell() {
return mainWindow;
}
public void setVisible(boolean visible) {
mainWindow.setVisible(visible);
if (visible) {
if (tray != null)
tray.setVisible(false);
/*
if (trayIcon != null)
trayIcon.showIcon();
*/
mainWindow.forceActive();
mainWindow.setMinimized(false);
}
}
public boolean isVisible() {
return mainWindow.isVisible();
}
public boolean
dispose(
boolean for_restart,
boolean close_already_in_progress )
{
if(COConfigurationManager.getBooleanParameter("confirmationOnExit", false) && !getExitConfirmation(for_restart))
return false;
if(systemTraySWT != null) {
systemTraySWT.dispose();
}
// close all tabs
Tab.closeAllTabs();
isAlreadyDead = true; //NICO try to never die twice...
/*
if (this.trayIcon != null)
SysTrayMenu.dispose();
*/
if(updater != null){
updater.stopIt();
}
initializer.stopIt( for_restart, close_already_in_progress );
//NICO swt disposes the mainWindow all by itself (thanks... ;-( ) on macosx
if(!mainWindow.isDisposed() && !isDisposeFromListener) {
mainWindow.dispose();
}
COConfigurationManager.removeParameterListener( "config.style.useSIUnits", this );
COConfigurationManager.removeParameterListener( "Show Download Basket", this );
COConfigurationManager.removeParameterListener( "GUI_SWT_bFancyTab", this );
// problem with closing down web start as AWT threads don't close properly
if ( SystemProperties.isJavaWebStartInstance()){
Thread close = new AEThread( "JWS Force Terminate")
{
public void
runSupport()
{
try{
Thread.sleep(2500);
}catch( Throwable e ){
Debug.printStackTrace( e );
}
SESecurityManager.exitVM(1);
}
};
close.setDaemon(true);
close.start();
}
return true;
}
/**
* @return true, if the user choosed OK in the exit dialog
*
* @author Rene Leonhardt
*/
private boolean
getExitConfirmation(
boolean for_restart) {
MessageBox mb = new MessageBox(mainWindow, SWT.ICON_WARNING | SWT.YES | SWT.NO);
mb.setText(MessageText.getString(
for_restart?"MainWindow.dialog.restartconfirmation.title":"MainWindow.dialog.exitconfirmation.title"));
mb.setMessage(MessageText.getString(
for_restart?"MainWindow.dialog.restartconfirmation.text":"MainWindow.dialog.exitconfirmation.text"));
if(mb.open() == SWT.YES)
return true;
return false;
}
public GlobalManager getGlobalManager() {
return globalManager;
}
/**
* @return
*/
public Tab getConsole() {
return console;
}
/**
* @return
*/
public Tab getMytorrents() {
return mytorrents;
}
public Tab getMyTracker() {
return my_tracker_tab;
}
/**
* @param tab
*/
public void setConsole(Tab tab) {
console = tab;
}
/**
* @param tab
*/
public void setMytorrents(Tab tab) {
mytorrents = tab;
}
public void setMyTracker(Tab tab) {
my_tracker_tab = tab;
}
public void setMyShares(Tab tab) {
my_shares_tab = tab;
}
/**
* @return
*/
public static MainWindow getWindow() {
return window;
}
/**
* @return
*/
public HashMap getDownloadBars() {
return downloadBars;
}
/**
* @param tab
*/
public void clearConfig() {
config = null;
config_view = null;
}
/**
* @param tab
*/
public void clearStats() {
stats_tab = null;
}
/**
* @return
*/
public TrayWindow getTray() {
return tray;
}
/**
* @return Returns the useCustomTab.
*/
public boolean isUseCustomTab() {
return useCustomTab;
}
Map pluginTabs = new HashMap();
public void
openPluginView(
PluginView view)
{
openPluginView( view, view.getPluginViewName());
}
public void
openPluginView(
UISWTPluginView view)
{
openPluginView( view, view.getPluginViewName());
}
public void openPluginView(String sParentID, String sViewID, UISWTViewEventListener l,
Object dataSource, boolean bSetFocus) {
UISWTViewImpl view = null;
try {
view = new UISWTViewImpl(sParentID, sViewID, l);
} catch (Exception e) {
Tab tab = (Tab) pluginTabs.get(sViewID);
if (tab != null) {
tab.setFocus();
}
return;
}
view.dataSourceChanged(dataSource);
Tab tab = new Tab(view, bSetFocus);
pluginTabs.put(sViewID, tab);
}
/**
* Close all plugin views with the specified ID
*
* @param sViewID
*/
public void closePluginViews(String sViewID) {
Item[] items;
if (folder instanceof CTabFolder)
items = ((CTabFolder) folder).getItems();
else if (folder instanceof TabFolder)
items = ((TabFolder) folder).getItems();
else
return;
for (int i = 0; i < items.length; i++) {
IView view = Tab.getView(items[i]);
if (view instanceof UISWTViewImpl) {
String sID = ((UISWTViewImpl) view).getViewID();
if (sID != null && sID.equals(sViewID)) {
try {
closePluginView(view);
} catch (Exception e) {
Debug.printStackTrace(e);
}
}
}
} // for
}
/**
* Get all open Plugin Views
*
* @return open plugin views
*/
public UISWTView[] getPluginViews() {
Item[] items;
if (folder instanceof CTabFolder)
items = ((CTabFolder) folder).getItems();
else if (folder instanceof TabFolder)
items = ((TabFolder) folder).getItems();
else
return new UISWTView[0];
ArrayList views = new ArrayList();
for (int i = 0; i < items.length; i++) {
IView view = Tab.getView(items[i]);
if (view instanceof UISWTViewImpl) {
views.add(view);
}
} // for
return (UISWTView[])views.toArray(new UISWTView[0]);
}
protected void
openPluginView(
AbstractIView view,
String name )
{
Tab tab = (Tab) pluginTabs.get(name);
if(tab != null) {
tab.setFocus();
} else {
tab = new Tab(view);
pluginTabs.put(name,tab);
}
}
public void
closePluginView(
IView view)
{
Item tab = Tab.getTab( view );
if ( tab != null ){
Tab.closed( tab );
}
}
public void removeActivePluginView( String view_name ) {
pluginTabs.remove(view_name);
}
public void parameterChanged(String parameterName) {
if( parameterName.equals( "Show Download Basket" ) ) {
if (COConfigurationManager.getBooleanParameter("Show Download Basket")) {
if(tray == null) {
tray = new TrayWindow(this);
tray.setVisible(true);
}
} else if(tray != null) {
tray.setVisible(false);
tray = null;
}
}
if( parameterName.equals( "GUI_SWT_bFancyTab" ) &&
folder instanceof CTabFolder &&
folder != null && !folder.isDisposed()) {
try {
((CTabFolder)folder).setSimple(!COConfigurationManager.getBooleanParameter("GUI_SWT_bFancyTab"));
} catch (NoSuchMethodError e) {
/** < SWT 3.0RC1 **/
}
}
if( parameterName.equals( "config.style.useSIUnits" ) ) {
updateComponents();
}
}
public boolean isEnabled(String itemKey) {
if(itemKey.equals("open"))
return true;
if(itemKey.equals("new"))
return true;
IView currentView = getCurrentView();
if(currentView != null)
return currentView.isEnabled(itemKey);
return false;
}
public boolean isSelected(String itemKey) {
return false;
}
public void itemActivated(String itemKey) {
if(itemKey.equals("open")) {
TorrentOpener.openTorrentWindow();
return;
}
if(itemKey.equals("new")) {
new NewTorrentWizard(getAzureusCore(),display);
return;
}
IView currentView = getCurrentView();
if(currentView != null)
currentView.itemActivated(itemKey);
}
IView getCurrentView() {
try {
if(!useCustomTab) {
TabItem[] selection = ((TabFolder)folder).getSelection();
if(selection.length > 0) {
return Tab.getView(selection[0]);
}
return null;
}
return Tab.getView(((CTabFolder)folder).getSelection());
}
catch (Exception e) {
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -