Warning: session_start(): open(/var/lib/php/sessions/sess_ogd7ajqvpaeaurl55jsr44ljla, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
scope componentPopupMenu.
static Map componentPopupMenu_map;
static ThreadLocal #mouseEvent;
svoid componentPopupMenu_init {
swing {
if (componentPopupMenu_map == null)
componentPopupMenu_map = or((Map) getOpt(creator(), 'componentPopupMenu_map), new WeakHashMap);
if (mouseEvent == null)
mouseEvent = or((ThreadLocal) getOpt(creator(), 'componentPopupMenu_mouseEvent), new ThreadLocal);
}
}
// menuMaker = voidfunc(JPopupMenu)
static void componentPopupMenu(final JComponent component, fO menuMaker) {
componentPopupMenu_init();
if (component != null && menuMaker != null) swing {
L maker = componentPopupMenu_map.get(component);
if (maker == null) {
componentPopupMenu_map.put(component, maker = new L);
component.addMouseListener(new componentPopupMenu_Adapter(maker));
}
maker.add(menuMaker);
}
}
sclass componentPopupMenu_Adapter extends MouseAdapter {
L maker;
*(L *maker) {}
public void mousePressed(MouseEvent e) { displayMenu(e); }
public void mouseReleased(MouseEvent e) { displayMenu(e); }
void displayMenu(MouseEvent e) {
if (e.isPopupTrigger()) displayMenu2(e);
}
void displayMenu2(MouseEvent e) {
new JPopupMenu menu;
int emptyCount = menu.getComponentCount();
mouseEvent.set(e);
for (O menuMaker : maker)
pcallF(menuMaker, menu);
// show menu if any items in it
if (menu.getComponentCount() != emptyCount)
menu.show(e.getComponent(), e.getX(), e.getY());
}
}
end scope