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

📄 menuitemimpl.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:   MenuItemImpl.java

package org.gudy.azureus2.pluginsimpl.local.ui.menus;

import com.aelitis.azureus.core.util.CopyOnWriteList;
import java.util.Iterator;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.util.Debug;
import org.gudy.azureus2.plugins.ui.Graphic;
import org.gudy.azureus2.plugins.ui.menus.*;
import org.gudy.azureus2.pluginsimpl.local.ui.UIManagerImpl;

// Referenced classes of package org.gudy.azureus2.pluginsimpl.local.ui.menus:
//			MenuContextImpl

public class MenuItemImpl
	implements MenuItem
{

	private UIManagerImpl uiManager;
	private String sMenuID;
	private String sName;
	private int style;
	private boolean enabled;
	private Object data;
	private Graphic graphic;
	private CopyOnWriteList listeners;
	private CopyOnWriteList m_listeners;
	private CopyOnWriteList fill_listeners;
	private CopyOnWriteList children;
	private MenuItemImpl parent;
	private String display_text;
	private boolean visible;
	private MenuContextImpl menu_context;

	public MenuItemImpl(UIManagerImpl _uiManager, String menuID, String key)
	{
		style = 1;
		enabled = true;
		listeners = new CopyOnWriteList(1);
		m_listeners = new CopyOnWriteList(1);
		fill_listeners = new CopyOnWriteList(1);
		children = new CopyOnWriteList();
		parent = null;
		display_text = null;
		visible = true;
		menu_context = null;
		uiManager = _uiManager;
		sMenuID = menuID;
		sName = key;
	}

	public MenuItemImpl(MenuItemImpl ti, String key)
	{
		style = 1;
		enabled = true;
		listeners = new CopyOnWriteList(1);
		m_listeners = new CopyOnWriteList(1);
		fill_listeners = new CopyOnWriteList(1);
		children = new CopyOnWriteList();
		parent = null;
		display_text = null;
		visible = true;
		menu_context = null;
		uiManager = ti.uiManager;
		parent = ti;
		parent.addChildMenuItem(this);
		sMenuID = parent.getMenuID();
		sName = key;
	}

	public String getResourceKey()
	{
		return sName;
	}

	public String getMenuID()
	{
		return sMenuID;
	}

	public int getStyle()
	{
		return style;
	}

	public void setStyle(int _style)
	{
		if (style == 5 && _style != 5)
		{
			throw new RuntimeException("cannot revert menu style MenuItem object to another style");
		} else
		{
			style = _style;
			return;
		}
	}

	public Object getData()
	{
		return data;
	}

	public void setData(Object _data)
	{
		data = _data;
	}

	public boolean isEnabled()
	{
		return enabled;
	}

	public void setEnabled(boolean _enabled)
	{
		enabled = _enabled;
	}

	public void setGraphic(Graphic _graphic)
	{
		graphic = _graphic;
	}

	public Graphic getGraphic()
	{
		return graphic;
	}

	public void invokeMenuWillBeShownListeners(Object o)
	{
		for (Iterator iter = fill_listeners.iterator(); iter.hasNext();)
			try
			{
				MenuItemFillListener l = (MenuItemFillListener)iter.next();
				l.menuWillBeShown(this, o);
			}
			catch (Throwable e)
			{
				Debug.printStackTrace(e);
			}

	}

	public void addFillListener(MenuItemFillListener listener)
	{
		fill_listeners.add(listener);
	}

	public void removeFillListener(MenuItemFillListener listener)
	{
		fill_listeners.remove(listener);
	}

	public void invokeListenersMulti(Object rows[])
	{
		invokeListenersOnList(m_listeners, ((Object) (rows)));
		if (rows == null)
		{
			invokeListenersSingle(null);
			return;
		}
		for (int i = 0; i < rows.length; i++)
			invokeListenersSingle(rows[i]);

	}

	public void addMultiListener(MenuItemListener l)
	{
		m_listeners.add(l);
	}

	public void removeMultiListener(MenuItemListener l)
	{
		m_listeners.remove(l);
	}

	private void invokeListenersSingle(Object o)
	{
		invokeListenersOnList(listeners, o);
	}

	public void addListener(MenuItemListener l)
	{
		listeners.add(l);
	}

	public void removeListener(MenuItemListener l)
	{
		listeners.remove(l);
	}

	public MenuItem getParent()
	{
		return parent;
	}

	public MenuItem[] getItems()
	{
		if (style != 5)
			return null;
		else
			return (MenuItem[])(MenuItem[])children.toArray(new MenuItem[children.size()]);
	}

	public MenuItem getItem(String key)
	{
		if (style != 5)
			return null;
		Iterator itr = children.iterator();
		MenuItem result = null;
		while (itr.hasNext()) 
		{
			result = (MenuItem)itr.next();
			if (key.equals(result.getResourceKey()))
				return result;
		}
		return null;
	}

	private void addChildMenuItem(MenuItem child)
	{
		if (style != 5)
		{
			throw new RuntimeException("cannot add to non-container MenuItem");
		} else
		{
			children.add(child);
			return;
		}
	}

	public String getText()
	{
		if (display_text == null)
			return MessageText.getString(getResourceKey());
		else
			return display_text;
	}

	public void setText(String text)
	{
		display_text = text;
	}

	protected void invokeListenersOnList(CopyOnWriteList listeners_to_notify, Object o)
	{
		for (Iterator iter = listeners_to_notify.iterator(); iter.hasNext();)
			try
			{
				MenuItemListener l = (MenuItemListener)iter.next();
				l.selected(this, o);
			}
			catch (Throwable e)
			{
				Debug.printStackTrace(e);
			}

	}

	protected void removeWithEvents(int root_menu_event, int sub_menu_event)
	{
		removeAllChildItems();
		if (parent != null)
		{
			UIManagerImpl.fireEvent(uiManager.getPluginInterface(), sub_menu_event, ((Object) (new Object[] {
				parent, this
			})));
			parent.children.remove(this);
			parent = null;
		} else
		{
			UIManagerImpl.fireEvent(uiManager.getPluginInterface(), root_menu_event, this);
		}
		data = null;
		graphic = null;
		listeners.clear();
		fill_listeners.clear();
		m_listeners.clear();
		if (menu_context != null)
			menu_context.dirty();
	}

	public void remove()
	{
		removeWithEvents(19, 20);
	}

	public void removeAllChildItems()
	{
		MenuItem children[] = getItems();
		if (children != null)
		{
			for (int i = 0; i < children.length; i++)
				children[i].remove();

		}
	}

	public boolean isVisible()
	{
		return visible;
	}

	public void setVisible(boolean visible)
	{
		this.visible = visible;
	}

	public boolean isSelected()
	{
		if (style != 2 && style != 3)
			throw new RuntimeException("Style is not STYLE_CHECK or STYLE_RADIO");
		if (data == null)
			throw new RuntimeException("Item is neither selected or deselected");
		if (!(data instanceof Boolean))
			throw new RuntimeException((new StringBuilder()).append("Invalid data assigned to menu item, should be boolean: ").append(data).toString());
		else
			return ((Boolean)data).booleanValue();
	}

	public void setContext(MenuContextImpl context)
	{
		menu_context = context;
	}
}

⌨️ 快捷键说明

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