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

📄 managerview.java

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

package org.gudy.azureus2.ui.swt.views;

import com.aelitis.azureus.core.AzureusCore;
import com.aelitis.azureus.core.AzureusCoreFactory;
import com.aelitis.azureus.ui.UIFunctions;
import com.aelitis.azureus.ui.UIFunctionsManager;
import com.aelitis.azureus.ui.common.updater.UIUpdatable;
import com.aelitis.azureus.ui.common.updater.UIUpdater;
import com.aelitis.azureus.ui.common.viewtitleinfo.ViewTitleInfo;
import com.aelitis.azureus.ui.common.viewtitleinfo.ViewTitleInfoManager;
import com.aelitis.azureus.ui.swt.UIFunctionsManagerSWT;
import com.aelitis.azureus.ui.swt.UIFunctionsSWT;
import java.io.PrintStream;
import java.util.*;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import org.gudy.azureus2.core3.disk.DiskManagerFileInfo;
import org.gudy.azureus2.core3.download.*;
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.Logger;
import org.gudy.azureus2.core3.util.*;
import org.gudy.azureus2.plugins.download.DownloadException;
import org.gudy.azureus2.pluginsimpl.local.download.DownloadImpl;
import org.gudy.azureus2.pluginsimpl.local.download.DownloadManagerImpl;
import org.gudy.azureus2.ui.swt.*;
import org.gudy.azureus2.ui.swt.debug.ObfusticateImage;
import org.gudy.azureus2.ui.swt.debug.ObfusticateTab;
import org.gudy.azureus2.ui.swt.plugins.*;
import org.gudy.azureus2.ui.swt.pluginsimpl.*;
import org.gudy.azureus2.ui.swt.views.utils.ManagerUtils;

// Referenced classes of package org.gudy.azureus2.ui.swt.views:
//			FilesView, GeneralView, IView, LoggerView, 
//			PeersGraphicView, PeersView, PiecesView, TorrentInfoView, 
//			TorrentOptionsView

public class ManagerView
	implements DownloadManagerListener, ObfusticateTab, ObfusticateImage, ViewTitleInfo, UISWTViewCoreEventListener, IconBarEnabler, UIUpdatable
{

	private DownloadManager manager;
	private CTabFolder folder;
	private ArrayList tabViews;
	int lastCompleted;
	private UISWTView swtView;
	private GlobalManagerAdapter gmListener;
	private Composite parent;
	protected IView activeView;

	public ManagerView()
	{
		tabViews = new ArrayList();
		lastCompleted = -1;
		GlobalManager gm = AzureusCoreFactory.getSingleton().getGlobalManager();
		gmListener = new GlobalManagerAdapter() {

			final ManagerView this$0;

			public void downloadManagerRemoved(DownloadManager dm)
			{
				if (dm.equals(manager))
					Utils.execSWTThread(new AERunnable() {

						final 1 this$1;

						public void runSupport()
						{
							delete();
						}

					
					{
						this$1 = 1.this;
						super();
					}
					});
			}

			
			{
				this$0 = ManagerView.this;
				super();
			}
		};
		gm.addListener(gmListener, false);
		UIFunctionsManagerSWT.getUIFunctionsSWT().getUIUpdater().addUpdater(this);
	}

	private void dataSourceChanged(Object newDataSource)
	{
		if (manager != null)
			manager.removeListener(this);
		DownloadImpl dataSourcePlugin = null;
		if (newDataSource instanceof DownloadImpl)
		{
			dataSourcePlugin = (DownloadImpl)newDataSource;
			manager = dataSourcePlugin.getDownload();
		} else
		if (newDataSource instanceof DownloadManager)
		{
			manager = (DownloadManager)newDataSource;
			try
			{
				dataSourcePlugin = DownloadManagerImpl.getDownloadStatic(manager);
			}
			catch (DownloadException e) { }
		} else
		{
			manager = null;
		}
		if (manager != null)
			manager.addListener(this);
		for (int i = 0; i < tabViews.size(); i++)
		{
			IView view = (IView)tabViews.get(i);
			if (view == null)
				continue;
			if (view instanceof UISWTViewImpl)
				((UISWTViewImpl)view).dataSourceChanged(dataSourcePlugin);
			else
				view.dataSourceChanged(newDataSource);
		}

		refreshTitle();
		ViewTitleInfoManager.refreshTitleInfo(this);
	}

	private void delete()
	{
		UIFunctions uiFunctions = UIFunctionsManager.getUIFunctions();
		if (uiFunctions != null)
		{
			uiFunctions.removeManagerView(manager);
			uiFunctions.getUIUpdater().removeUpdater(this);
		}
		if (manager != null)
			manager.removeListener(this);
		try
		{
			GlobalManager gm = AzureusCoreFactory.getSingleton().getGlobalManager();
			gm.removeListener(gmListener);
		}
		catch (Exception e)
		{
			Debug.out(e);
		}
		if (folder != null && !folder.isDisposed())
			folder.setSelection(0);
		if (Constants.isOSX && folder != null && !folder.isDisposed())
		{
			CTabItem items[] = folder.getItems();
			for (int i = 0; i < items.length; i++)
				if (!items[i].isDisposed())
					items[i].dispose();

		}
		for (int i = 0; i < tabViews.size(); i++)
		{
			IView view = (IView)tabViews.get(i);
			try
			{
				if (view != null)
					view.delete();
			}
			catch (Throwable t)
			{
				Debug.out(t);
			}
		}

		tabViews.clear();
		Utils.disposeSWTObjects(new Object[] {
			folder, parent
		});
	}

	private void initialize(Composite composite)
	{
		parent = composite;
		if (folder == null)
		{
			folder = new CTabFolder(composite, 16384);
			folder.setBorderVisible(true);
		} else
		{
			System.out.println("ManagerView::initialize : folder isn't null !!!");
		}
		if (composite.getLayout() instanceof FormLayout)
			folder.setLayoutData(Utils.getFilledFormData());
		else
		if (composite.getLayout() instanceof GridLayout)
			folder.setLayoutData(new GridData(1808));
		Label lblClose = new Label(folder, 64);
		lblClose.setText("x");
		lblClose.addListener(4, new Listener() {

			final ManagerView this$0;

			public void handleEvent(Event event)
			{
				delete();
			}

			
			{
				this$0 = ManagerView.this;
				super();
			}
		});
		folder.setTopRight(lblClose);
		folder.setTabHeight(20);
		ArrayList iviews_to_use = new ArrayList();
		iviews_to_use.add(new GeneralView());
		iviews_to_use.add(new PeersView());
		iviews_to_use.add(new PeersGraphicView());
		iviews_to_use.add(new PiecesView());
		iviews_to_use.add(new FilesView());
		iviews_to_use.add(new TorrentInfoView());
		iviews_to_use.add(new TorrentOptionsView());
		if (Logger.isEnabled())
			iviews_to_use.add(new LoggerView(true));
		IView views[] = (IView[])(IView[])iviews_to_use.toArray(new IView[iviews_to_use.size()]);
		for (int i = 0; i < views.length; i++)
			addSection(views[i], manager);

		UIFunctionsSWT uiFunctions = UIFunctionsManagerSWT.getUIFunctionsSWT();
		if (uiFunctions != null)
		{
			UISWTInstanceImpl pluginUI = uiFunctions.getSWTPluginInstanceImpl();
			Map pluginViews = pluginUI != null ? pluginUI.getViewListeners("MyTorrents") : null;
			if (pluginViews != null)
			{
				String sNames[] = (String[])(String[])pluginViews.keySet().toArray(new String[0]);
				for (int i = 0; i < sNames.length; i++)
				{
					UISWTViewEventListener l = (UISWTViewEventListener)pluginViews.get(sNames[i]);
					if (l == null)
						continue;
					try
					{
						UISWTViewImpl view = new UISWTViewImpl("MyTorrents", sNames[i], l);
						addSection(view);
					}
					catch (Exception e) { }
				}

			}
		}
		folder.addSelectionListener(new SelectionAdapter() {

			final ManagerView this$0;

			public void widgetSelected(SelectionEvent e)
			{
				CTabItem item = (CTabItem)e.item;
				if (item != null)
				{
					IView view = (IView)item.getData("IView");
					activeView = view;
					if (item.getControl() == null)
					{
						view.initialize(folder);
						item.setControl(view.getComposite());
					}
					item.getControl().setFocus();
				}
				refresh();
				ViewTitleInfoManager.refreshTitleInfo(ManagerView.this);
			}

			
			{
				this$0 = ManagerView.this;
				super();
			}
		});
		views[0].initialize(folder);
		folder.getItem(0).setControl(views[0].getComposite());
		views[0].refresh();
		views[0].getComposite().layout(true);
		views[0].getComposite().setFocus();
		activeView = views[0];
		ViewTitleInfoManager.refreshTitleInfo(this);
	}

	private IView getActiveView()
	{
		return activeView;
	}

	private void refresh()
	{
		if (folder == null || folder.isDisposed())
			return;
		IView view;
		CTabItem items[];
		int i;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -