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

📄 pluginsmenuhelper.java

📁 java 文件下载器。可自定义
💻 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:   PluginsMenuHelper.java

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

import com.aelitis.azureus.ui.swt.UIFunctionsManagerSWT;
import com.aelitis.azureus.ui.swt.UIFunctionsSWT;
import java.util.*;
import org.eclipse.swt.widgets.*;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.util.AEMonitor;
import org.gudy.azureus2.core3.util.AERunnable;
import org.gudy.azureus2.ui.common.util.MenuItemManager;
import org.gudy.azureus2.ui.swt.MenuBuildUtils;
import org.gudy.azureus2.ui.swt.Utils;
import org.gudy.azureus2.ui.swt.plugins.UISWTViewEventListener;
import org.gudy.azureus2.ui.swt.pluginsimpl.BasicPluginViewImpl;
import org.gudy.azureus2.ui.swt.views.AbstractIView;

// Referenced classes of package org.gudy.azureus2.ui.swt.mainwindow:
//			MenuFactory

public class PluginsMenuHelper
{
	public static class IViewInfo
	{

		public AbstractIView view;
		public String name;
		public String viewID;
		public UISWTViewEventListener event_listener;

		public void openView(UIFunctionsSWT uiFunctions)
		{
			if (event_listener != null)
				uiFunctions.openPluginView("Main", viewID, event_listener, null, true);
			else
				uiFunctions.openPluginView(view, name);
		}

		public IViewInfo()
		{
		}
	}

	public static interface PluginAddedViewListener
	{

		public abstract void pluginViewAdded(IViewInfo iviewinfo);
	}


	private static PluginsMenuHelper INSTANCE = null;
	private AEMonitor plugin_helper_mon;
	private Map plugin_view_info_map;
	private Map plugin_logs_view_info_map;
	private List pluginAddedViewListener;

	private PluginsMenuHelper()
	{
		plugin_helper_mon = new AEMonitor("plugin_helper_mon");
		plugin_view_info_map = new TreeMap();
		plugin_logs_view_info_map = new TreeMap();
		pluginAddedViewListener = new ArrayList();
	}

	public static PluginsMenuHelper getInstance()
	{
		if (null == INSTANCE)
			INSTANCE = new PluginsMenuHelper();
		return INSTANCE;
	}

	public void buildPluginMenu(Menu pluginMenu, Shell parent, boolean includeGetPluginsMenu)
	{
		plugin_helper_mon.enter();
		createIViewInfoMenuItems(pluginMenu, plugin_view_info_map);
		MenuItem menu_plugin_logViews = MenuFactory.addLogsViewMenuItem(pluginMenu);
		createIViewInfoMenuItems(menu_plugin_logViews.getMenu(), plugin_logs_view_info_map);
		plugin_helper_mon.exit();
		break MISSING_BLOCK_LABEL_57;
		Exception exception;
		exception;
		plugin_helper_mon.exit();
		throw exception;
		MenuFactory.addSeparatorMenuItem(pluginMenu);
		org.gudy.azureus2.plugins.ui.menus.MenuItem plugin_items[] = MenuItemManager.getInstance().getAllAsArray("mainmenu");
		if (plugin_items.length > 0)
		{
			MenuBuildUtils.addPluginMenuItems(parent, plugin_items, pluginMenu, true, true, MenuBuildUtils.BASIC_MENU_ITEM_CONTROLLER);
			MenuFactory.addSeparatorMenuItem(pluginMenu);
		}
		MenuFactory.addPluginInstallMenuItem(pluginMenu);
		MenuFactory.addPluginUnInstallMenuItem(pluginMenu);
		if (includeGetPluginsMenu)
			MenuFactory.addGetPluginsMenuItem(pluginMenu);
		return;
	}

	public void addPluginView(String sViewID, UISWTViewEventListener l)
	{
		IViewInfo view_info;
		String name;
		Map map_to_use;
		view_info = new IViewInfo();
		view_info.viewID = sViewID;
		view_info.event_listener = l;
		String sResourceID = (new StringBuilder()).append("Views.plugins.").append(sViewID).append(".title").toString();
		boolean bResourceExists = MessageText.keyExists(sResourceID);
		if (bResourceExists)
		{
			name = MessageText.getString(sResourceID);
		} else
		{
			sResourceID = sViewID;
			bResourceExists = MessageText.keyExists(sResourceID);
			if (bResourceExists)
				name = MessageText.getString(sResourceID);
			else
				name = sViewID.replace('.', ' ');
		}
		view_info.name = name;
		map_to_use = (l instanceof BasicPluginViewImpl) ? plugin_logs_view_info_map : plugin_view_info_map;
		plugin_helper_mon.enter();
		map_to_use.put(name, view_info);
		plugin_helper_mon.exit();
		break MISSING_BLOCK_LABEL_167;
		Exception exception;
		exception;
		plugin_helper_mon.exit();
		throw exception;
		triggerPluginAddedViewListeners(view_info);
		return;
	}

	private void removePluginViewsWithID(String sViewID, Map map)
	{
		if (sViewID == null)
			return;
		Iterator itr = map.values().iterator();
		IViewInfo view_info = null;
		do
		{
			if (!itr.hasNext())
				break;
			view_info = (IViewInfo)itr.next();
			if (sViewID.equals(view_info.viewID))
				itr.remove();
		} while (true);
	}

	public void removePluginViews(final String sViewID)
	{
		plugin_helper_mon.enter();
		removePluginViewsWithID(sViewID, plugin_view_info_map);
		removePluginViewsWithID(sViewID, plugin_logs_view_info_map);
		plugin_helper_mon.exit();
		break MISSING_BLOCK_LABEL_45;
		Exception exception;
		exception;
		plugin_helper_mon.exit();
		throw exception;
		Utils.execSWTThread(new AERunnable() {

			final String val$sViewID;
			final PluginsMenuHelper this$0;

			public void runSupport()
			{
				UIFunctionsSWT uiFunctions = UIFunctionsManagerSWT.getUIFunctionsSWT();
				if (uiFunctions != null)
					uiFunctions.closePluginViews(sViewID);
			}

			
			{
				this$0 = PluginsMenuHelper.this;
				sViewID = s;
				super();
			}
		});
		return;
	}

	public void addPluginView(AbstractIView view, String name)
	{
		IViewInfo view_info;
		view_info = new IViewInfo();
		view_info.name = name;
		view_info.view = view;
		plugin_helper_mon.enter();
		plugin_view_info_map.put(name, view_info);
		plugin_helper_mon.exit();
		break MISSING_BLOCK_LABEL_59;
		Exception exception;
		exception;
		plugin_helper_mon.exit();
		throw exception;
		triggerPluginAddedViewListeners(view_info);
		return;
	}

	public void removePluginView(final AbstractIView view, String name)
	{
		IViewInfo view_info = null;
		plugin_helper_mon.enter();
		view_info = (IViewInfo)plugin_view_info_map.remove(name);
		plugin_helper_mon.exit();
		break MISSING_BLOCK_LABEL_45;
		Exception exception;
		exception;
		plugin_helper_mon.exit();
		throw exception;
		if (view_info != null)
			Utils.execSWTThread(new AERunnable() {

				final AbstractIView val$view;
				final PluginsMenuHelper this$0;

				public void runSupport()
				{
					UIFunctionsSWT uiFunctions = UIFunctionsManagerSWT.getUIFunctionsSWT();
					if (uiFunctions != null)
						uiFunctions.closePluginView(view);
				}

			
			{
				this$0 = PluginsMenuHelper.this;
				view = abstractiview;
				super();
			}
			});
		return;
	}

	private void createIViewInfoMenuItem(Menu parent, final IViewInfo info)
	{
		MenuItem item = new MenuItem(parent, 0);
		item.setText(info.name);
		if (info.viewID != null)
			item.setData("ViewID", info.viewID);
		item.addListener(13, new Listener() {

			final IViewInfo val$info;
			final PluginsMenuHelper this$0;

			public void handleEvent(Event e)
			{
				UIFunctionsSWT uiFunctions = UIFunctionsManagerSWT.getUIFunctionsSWT();
				if (uiFunctions != null)
					info.openView(uiFunctions);
			}

			
			{
				this$0 = PluginsMenuHelper.this;
				info = iviewinfo;
				super();
			}
		});
	}

	private void createIViewInfoMenuItems(Menu parent, Map menu_data)
	{
		for (Iterator itr = menu_data.values().iterator(); itr.hasNext(); createIViewInfoMenuItem(parent, (IViewInfo)itr.next()));
	}

	public IViewInfo[] getPluginViewsInfo()
	{
		return (IViewInfo[])(IViewInfo[])plugin_view_info_map.values().toArray(new IViewInfo[0]);
	}

	public IViewInfo[] getPluginLogViewsInfo()
	{
		return (IViewInfo[])(IViewInfo[])plugin_logs_view_info_map.values().toArray(new IViewInfo[0]);
	}

	public void addPluginAddedViewListener(PluginAddedViewListener l)
	{
		pluginAddedViewListener.add(l);
	}

	public void triggerPluginAddedViewListeners(IViewInfo viewInfo)
	{
		Object listeners[] = pluginAddedViewListener.toArray();
		for (int i = 0; i < listeners.length; i++)
		{
			PluginAddedViewListener l = (PluginAddedViewListener)listeners[i];
			l.pluginViewAdded(viewInfo);
		}

	}

}

⌨️ 快捷键说明

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