📄 mainwindow.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: MainWindow.java
package org.gudy.azureus2.ui.swt.mainwindow;
import com.aelitis.azureus.core.*;
import com.aelitis.azureus.core.versioncheck.VersionCheckClient;
import com.aelitis.azureus.ui.UIFunctionsManager;
import com.aelitis.azureus.ui.UIStatusTextClickListener;
import com.aelitis.azureus.ui.swt.UIFunctionsManagerSWT;
import com.aelitis.azureus.ui.swt.UIFunctionsSWT;
import com.aelitis.azureus.util.MapUtils;
import java.util.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTError;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.config.ParameterListener;
import org.gudy.azureus2.core3.download.DownloadManager;
import org.gudy.azureus2.core3.download.DownloadManagerState;
import org.gudy.azureus2.core3.global.GlobalManager;
import org.gudy.azureus2.core3.global.GlobalManagerAdapter;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.logging.*;
import org.gudy.azureus2.core3.tracker.host.TRHost;
import org.gudy.azureus2.core3.util.*;
import org.gudy.azureus2.plugins.*;
import org.gudy.azureus2.plugins.sharing.ShareException;
import org.gudy.azureus2.plugins.sharing.ShareManager;
import org.gudy.azureus2.pluginsimpl.local.PluginCoreUtils;
import org.gudy.azureus2.ui.swt.*;
import org.gudy.azureus2.ui.swt.associations.AssociationChecker;
import org.gudy.azureus2.ui.swt.components.shell.ShellManager;
import org.gudy.azureus2.ui.swt.config.wizard.ConfigureWizard;
import org.gudy.azureus2.ui.swt.debug.*;
import org.gudy.azureus2.ui.swt.donations.DonationWindow;
import org.gudy.azureus2.ui.swt.maketorrent.NewTorrentWizard;
import org.gudy.azureus2.ui.swt.minibar.AllTransfersBar;
import org.gudy.azureus2.ui.swt.minibar.MiniBarManager;
import org.gudy.azureus2.ui.swt.plugins.UISWTView;
import org.gudy.azureus2.ui.swt.plugins.UISWTViewEventListener;
import org.gudy.azureus2.ui.swt.pluginsimpl.UISWTInstanceImpl;
import org.gudy.azureus2.ui.swt.pluginsimpl.UISWTViewImpl;
import org.gudy.azureus2.ui.swt.sharing.progress.ProgressWindow;
import org.gudy.azureus2.ui.swt.views.*;
import org.gudy.azureus2.ui.swt.views.stats.StatsView;
import org.gudy.azureus2.ui.swt.views.table.TableViewSWT;
import org.gudy.azureus2.ui.swt.views.table.impl.TableViewTab;
import org.gudy.azureus2.ui.swt.views.table.utils.TableColumnCreator;
import org.gudy.azureus2.ui.swt.views.table.utils.TableColumnManager;
import org.gudy.azureus2.ui.swt.welcome.WelcomeWindow;
import org.gudy.azureus2.ui.systray.SystemTraySWT;
// Referenced classes of package org.gudy.azureus2.ui.swt.mainwindow:
// IMainMenu, IMainWindow, Initializer, MainMenu,
// MainStatusBar, MenuFactory, SWTThread, TorrentOpener,
// UIFunctionsImpl
public class MainWindow extends AERunnable
implements ParameterListener, IconBarEnabler, AEDiagnosticsEvidenceGenerator, ObfusticateShell, IMainWindow
{
private static final LogIDs LOGID;
private static MainWindow window;
private Initializer initializer;
private AzureusCore azureus_core;
private GlobalManager globalManager;
public static boolean isAlreadyDead = false;
public static boolean isDisposeFromListener = false;
private Display display;
private Composite parent;
private Shell shell;
private IMainMenu mainMenu;
private IconBar iconBar;
private Composite folder;
private MainStatusBar mainStatusBar;
private TrayWindow downloadBasket;
private SystemTraySWT systemTraySWT;
private HashMap downloadViews;
private AEMonitor downloadViews_mon;
private Item mytorrents;
private Item detailed_list;
private Item all_peers;
private Item my_tracker_tab;
private Item my_shares_tab;
private Item stats_tab;
private Item console;
private Item multi_options_tab;
private Item config;
private ConfigView config_view;
protected AEMonitor this_mon;
private UISWTInstanceImpl uiSWTInstanceImpl;
private ArrayList events;
private UIFunctionsSWT uiFunctions;
private boolean bIconBarEnabled;
private boolean bShowMainWindow;
private boolean bSettingVisibility;
private Tab mainTabSet;
Map pluginTabs;
public MainWindow(AzureusCore _azureus_core, Initializer _initializer, ArrayList events)
{
downloadViews_mon = new AEMonitor("MainWindow:dlviews");
this_mon = new AEMonitor("MainWindow");
uiSWTInstanceImpl = null;
bIconBarEnabled = false;
bSettingVisibility = false;
pluginTabs = new HashMap();
bShowMainWindow = true;
try
{
if (Logger.isEnabled())
Logger.log(new LogEvent(LOGID, "MainWindow start"));
AEDiagnostics.addEvidenceGenerator(this);
azureus_core = _azureus_core;
globalManager = azureus_core.getGlobalManager();
initializer = _initializer;
display = SWTThread.getInstance().getDisplay();
window = this;
this.events = events;
display.asyncExec(this);
}
catch (AzureusCoreException e)
{
Debug.printStackTrace(e);
}
}
public MainWindow(AzureusCore _azureus_core, Initializer _initializer, Shell shell, Composite parent, UISWTInstanceImpl swtinstance)
{
downloadViews_mon = new AEMonitor("MainWindow:dlviews");
this_mon = new AEMonitor("MainWindow");
uiSWTInstanceImpl = null;
bIconBarEnabled = false;
bSettingVisibility = false;
pluginTabs = new HashMap();
this.shell = shell;
this.parent = parent;
bShowMainWindow = true;
try
{
if (Logger.isEnabled())
Logger.log(new LogEvent(LOGID, "MainWindow start"));
AEDiagnostics.addEvidenceGenerator(this);
azureus_core = _azureus_core;
globalManager = azureus_core.getGlobalManager();
initializer = _initializer;
display = SWTThread.getInstance().getDisplay();
window = this;
uiSWTInstanceImpl = swtinstance;
}
catch (AzureusCoreException e)
{
Debug.printStackTrace(e);
}
}
public MainWindow()
{
downloadViews_mon = new AEMonitor("MainWindow:dlviews");
this_mon = new AEMonitor("MainWindow");
uiSWTInstanceImpl = null;
bIconBarEnabled = false;
bSettingVisibility = false;
pluginTabs = new HashMap();
bShowMainWindow = true;
try
{
if (Logger.isEnabled())
Logger.log(new LogEvent(LOGID, "MainWindow start"));
AEDiagnostics.addEvidenceGenerator(this);
azureus_core = AzureusCoreFactory.getSingleton();
globalManager = azureus_core.getGlobalManager();
display = SWTThread.getInstance().getDisplay();
window = this;
}
catch (AzureusCoreException e)
{
Debug.printStackTrace(e);
}
}
public void init(Composite parent, UISWTInstanceImpl swtInstance)
{
this.parent = parent;
shell = parent.getShell();
uiSWTInstanceImpl = swtInstance;
}
public void setShowMainWindow(boolean b)
{
bShowMainWindow = b;
}
public void runSupport()
{
uiFunctions = UIFunctionsManagerSWT.getUIFunctionsSWT();
if (uiFunctions == null)
{
uiFunctions = new UIFunctionsImpl(this);
UIFunctionsManager.setUIFunctions(uiFunctions);
} else
{
uiFunctions = new UIFunctionsImpl(this);
}
globalManager.loadExistingTorrentsNow(true);
COConfigurationManager.addParameterListener("config.style.useSIUnits", this);
mytorrents = null;
my_tracker_tab = null;
console = null;
config = null;
config_view = null;
downloadViews = new HashMap();
Control attachToTopOf = null;
Control controlAboveFolder = null;
Control controlBelowFolder = null;
FormData formData;
if (shell == null)
{
shell = new Shell(display, 3280);
shell.setData("class", this);
shell.setText(Constants.APP_NAME);
Utils.setShellIcon(shell);
if (parent == null)
parent = shell;
ShellManager.sharedManager().addWindow(shell);
mainMenu = new MainMenu(shell);
FormLayout mainLayout = new FormLayout();
mainLayout.marginHeight = 0;
mainLayout.marginWidth = 0;
try
{
mainLayout.spacing = 0;
}
catch (NoSuchFieldError e) { }
shell.setLayout(mainLayout);
Utils.linkShellMetricsToConfig(shell, "window");
shell.addDisposeListener(new DisposeListener() {
final MainWindow this$0;
public void widgetDisposed(DisposeEvent event)
{
if (!MainWindow.isAlreadyDead)
{
MainWindow.isDisposeFromListener = true;
if (shell != null)
{
shell.removeDisposeListener(this);
dispose(false, false);
}
MainWindow.isAlreadyDead = true;
}
}
{
this$0 = MainWindow.this;
super();
}
});
shell.addShellListener(new ShellAdapter() {
final MainWindow this$0;
public void shellClosed(ShellEvent event)
{
if (bSettingVisibility)
return;
if (systemTraySWT != null && COConfigurationManager.getBooleanParameter("Enable System Tray") && COConfigurationManager.getBooleanParameter("Close To Tray"))
minimizeToTray(event);
else
event.doit = dispose(false, false);
}
public void shellIconified(ShellEvent event)
{
if (bSettingVisibility)
return;
if (systemTraySWT != null && COConfigurationManager.getBooleanParameter("Enable System Tray") && COConfigurationManager.getBooleanParameter("Minimize To Tray"))
minimizeToTray(event);
}
public void shellDeiconified(ShellEvent e)
{
if (Constants.isOSX && COConfigurationManager.getBooleanParameter("Password enabled"))
{
shell.setVisible(false);
if (PasswordWindow.showPasswordWindow(display))
shell.setVisible(true);
}
}
{
this$0 = MainWindow.this;
super();
}
});
Label separator = new Label(parent, 258);
formData = new FormData();
formData.top = new FormAttachment(0, 0);
formData.left = new FormAttachment(0, 0);
formData.right = new FormAttachment(100, 0);
separator.setLayoutData(formData);
attachToTopOf = separator;
mainStatusBar = new MainStatusBar();
Composite statusBar = mainStatusBar.initStatusBar(azureus_core, globalManager, display, shell);
controlAboveFolder = attachToTopOf;
controlBelowFolder = statusBar;
}
try
{
Utils.createTorrentDropTarget(parent, true);
}
catch (SWTError e)
{
Logger.log(new LogEvent(LOGID, 1, (new StringBuilder()).append("Drag and Drop not available: ").append(e.getMessage()).toString()));
}
catch (Throwable e)
{
Logger.log(new LogEvent(LOGID, "Drag and Drop not available", e));
}
mainTabSet = new Tab(this);
folder = mainTabSet.createFolderWidget(parent);
formData = new FormData();
if (controlAboveFolder == null)
formData.top = new FormAttachment(0, 0);
else
formData.top = new FormAttachment(controlAboveFolder);
if (controlBelowFolder == null)
formData.bottom = new FormAttachment(100, 0);
else
formData.bottom = new FormAttachment(controlBelowFolder);
formData.left = new FormAttachment(0, 0);
formData.right = new FormAttachment(100, 0);
folder.setLayoutData(formData);
display.addFilter(1, new Listener() {
final MainWindow this$0;
public void handleEvent(Event event)
{
Control focus_control = display.getFocusControl();
if (focus_control != null && focus_control.getShell() != shell)
return;
int key = event.character;
if ((event.stateMask & SWT.MOD1) != 0 && event.character <= '\032' && event.character > 0)
key += 96;
if (key == 108 && (event.stateMask & SWT.MOD1) != 0)
{
OpenTorrentWindow.invokeURLPopup(shell, globalManager);
event.doit = false;
}
}
{
this$0 = MainWindow.this;
super();
}
});
if (Logger.isEnabled())
Logger.log(new LogEvent(LOGID, "Initializing GUI complete"));
globalManager.addListener(new GlobalManagerAdapter() {
final MainWindow this$0;
public void downloadManagerAdded(DownloadManager dm)
{
MainWindow.this.downloadManagerAdded(dm);
}
public void downloadManagerRemoved(DownloadManager dm)
{
MainWindow.this.downloadManagerRemoved(dm);
}
{
this$0 = MainWindow.this;
super();
}
});
PluginManager plugin_manager = azureus_core.getPluginManager();
plugin_manager.firePluginEvent(1);
if (!COConfigurationManager.getBooleanParameter("Wizard Completed"))
new ConfigureWizard(getAzureusCore(), true);
plugin_manager.firePluginEvent(2);
if (uiSWTInstanceImpl != null)
break MISSING_BLOCK_LABEL_760;
TableColumnCreator.initCoreColumns();
uiSWTInstanceImpl = new UISWTInstanceImpl(azureus_core);
uiSWTInstanceImpl.init(initializer);
if (isAlreadyDead)
return;
try
{
postPluginSetup(0, 50);
}
catch (Throwable e)
{
Debug.printStackTrace(e);
}
showMainWindow();
return;
}
public void postPluginSetup(int delay, int delayInc)
{
if (initializer != null)
{
initializer.reportCurrentTask(MessageText.getString("splash.openViews"));
initializer.nextTask();
}
if (!Constants.isSafeMode && azureus_core.getTrackerHost().getTorrents().length > 0)
Utils.execSWTThreadLater(delay += delayInc, new Runnable() {
final MainWindow this$0;
public void run()
{
showMyTracker();
}
{
this$0 = MainWindow.this;
super();
}
});
PluginManager plugin_manager = azureus_core.getPluginManager();
PluginInterface default_pi = plugin_manager.getDefaultPluginInterface();
try
{
final ShareManager share_manager = default_pi.getShareManager();
default_pi.addListener(new PluginListener() {
final ShareManager val$share_manager;
final MainWindow this$0;
public void initializationComplete()
{
}
public void closedownInitiated()
{
int share_count = share_manager.getShares().length;
if (share_count != COConfigurationManager.getIntParameter("GUI_SWT_share_count_at_close"))
COConfigurationManager.setParameter("GUI_SWT_share_count_at_close", share_count);
}
public void closedownComplete()
{
}
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -