📄 menuitemimpl.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 + -