⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainwindow.java

📁 java 文件下载器。可自定义
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
// 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 + -