📄 menubuildutils.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: MenuBuildUtils.java
package org.gudy.azureus2.ui.swt;
import org.eclipse.swt.events.MenuEvent;
import org.eclipse.swt.events.MenuListener;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Widget;
import org.gudy.azureus2.core3.util.AERunnable;
import org.gudy.azureus2.core3.util.Constants;
import org.gudy.azureus2.pluginsimpl.local.ui.menus.MenuItemImpl;
import org.gudy.azureus2.ui.swt.plugins.UISWTGraphic;
// Referenced classes of package org.gudy.azureus2.ui.swt:
// Utils
public class MenuBuildUtils
{
public static interface MenuBuilder
{
public abstract void buildMenu(Menu menu);
}
public static class MenuItemPluginMenuControllerImpl
implements PluginMenuController
{
private Object objects[];
public Listener makeSelectionListener(org.gudy.azureus2.plugins.ui.menus.MenuItem menu_item)
{
final MenuItemImpl mii = (MenuItemImpl)menu_item;
return new Listener() {
final MenuItemImpl val$mii;
final MenuItemPluginMenuControllerImpl this$0;
public void handleEvent(Event e)
{
mii.invokeListenersMulti(objects);
}
{
this$0 = MenuItemPluginMenuControllerImpl.this;
mii = menuitemimpl;
super();
}
};
}
public void notifyFillListeners(org.gudy.azureus2.plugins.ui.menus.MenuItem menu_item)
{
((MenuItemImpl)menu_item).invokeMenuWillBeShownListeners(((Object) (objects)));
}
public MenuItemPluginMenuControllerImpl(Object o[])
{
objects = o;
}
}
public static interface PluginMenuController
{
public abstract Listener makeSelectionListener(org.gudy.azureus2.plugins.ui.menus.MenuItem menuitem);
public abstract void notifyFillListeners(org.gudy.azureus2.plugins.ui.menus.MenuItem menuitem);
}
public static final PluginMenuController BASIC_MENU_ITEM_CONTROLLER = new MenuItemPluginMenuControllerImpl(null);
public MenuBuildUtils()
{
}
public static void addMaintenanceListenerForMenu(Menu menu, MenuBuilder builder)
{
menu.addMenuListener(new MenuListener(menu, builder) {
boolean bShown;
final Menu val$menu;
final MenuBuilder val$builder;
public void menuHidden(MenuEvent e)
{
bShown = false;
if (Constants.isOSX)
{
return;
} else
{
e.widget.getDisplay().asyncExec(new AERunnable() {
final 1 this$0;
public void runSupport()
{
if (bShown || menu.isDisposed())
return;
MenuItem items[] = menu.getItems();
for (int i = 0; i < items.length; i++)
items[i].dispose();
}
{
this$0 = 1.this;
super();
}
});
return;
}
}
public void menuShown(MenuEvent e)
{
MenuItem items[] = menu.getItems();
for (int i = 0; i < items.length; i++)
items[i].dispose();
bShown = true;
builder.buildMenu(menu);
}
{
menu = menu1;
builder = menubuilder;
super();
bShown = false;
}
});
}
public static void addPluginMenuItems(Composite composite, org.gudy.azureus2.plugins.ui.menus.MenuItem items[], Menu parent, boolean prev_was_separator, boolean enable_items, PluginMenuController controller)
{
for (int i = 0; i < items.length; i++)
{
MenuItemImpl az_menuitem = (MenuItemImpl)items[i];
controller.notifyFillListeners(az_menuitem);
if (!az_menuitem.isVisible())
continue;
int style = az_menuitem.getStyle();
boolean this_is_separator = false;
boolean is_container = false;
int swt_style;
if (style == 5)
{
swt_style = 64;
is_container = true;
} else
if (style == 1)
swt_style = 8;
else
if (style == 2)
swt_style = 32;
else
if (style == 3)
swt_style = 16;
else
if (style == 4)
{
this_is_separator = true;
swt_style = 2;
} else
{
swt_style = 8;
}
MenuItem menuItem = new MenuItem(parent, swt_style);
if (swt_style == 2 || prev_was_separator && this_is_separator || this_is_separator && i == items.length - 1)
continue;
prev_was_separator = this_is_separator;
if (enable_items && (style == 2 || style == 3))
{
Boolean selection_value = (Boolean)az_menuitem.getData();
if (selection_value == null)
throw new RuntimeException((new StringBuilder()).append("MenuItem with resource name \"").append(az_menuitem.getResourceKey()).append("\" needs to have a boolean value entered via setData before being used!").toString());
menuItem.setSelection(selection_value.booleanValue());
}
Listener main_listener = controller.makeSelectionListener(az_menuitem);
menuItem.addListener(13, new Listener(az_menuitem, menuItem, main_listener) {
final MenuItemImpl val$az_menuitem;
final MenuItem val$menuItem;
final Listener val$main_listener;
public void handleEvent(Event e)
{
if ((az_menuitem.getStyle() == 2 || az_menuitem.getStyle() == 3) && !menuItem.isDisposed())
az_menuitem.setData(new Boolean(menuItem.getSelection()));
main_listener.handleEvent(e);
}
{
az_menuitem = menuitemimpl;
menuItem = menuitem;
main_listener = listener;
super();
}
});
if (is_container)
{
Menu this_menu = new Menu(composite.getShell(), 4);
menuItem.setMenu(this_menu);
addPluginMenuItems(composite, az_menuitem.getItems(), this_menu, false, enable_items, controller);
}
String custom_title = az_menuitem.getText();
menuItem.setText(custom_title);
org.gudy.azureus2.plugins.ui.Graphic g = az_menuitem.getGraphic();
if (g instanceof UISWTGraphic)
Utils.setMenuItemImage(menuItem, ((UISWTGraphic)g).getImage());
menuItem.setEnabled(enable_items && az_menuitem.isEnabled());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -