Warning: session_start(): open(/var/lib/php/sessions/sess_ddd901o68g122ronh3arsgvs87, 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 ThreadLocal #mouseEvent;
svoid componentPopupMenu_init {
swing {
if (mouseEvent == null)
mouseEvent = (ThreadLocal) vm_generalMap_get('mouseEvent);
if (mouseEvent == null)
vm_generalMap_put(componentPopupMenu_mouseEvent := mouseEvent = new ThreadLocal);
}
}
// menuMaker = voidfunc(JPopupMenu)
// returns listener
sO componentPopupMenu(final JComponent component, fO menuMaker) {
ret component == null || menuMaker == null ? null : swing(func {
O adapter = componentPopupMenu_initForComponent(component);
((L) _get(adapter, 'maker)).add(menuMaker);
ret adapter;
});
}
sO componentPopupMenu_initForComponent(final JComponent component) {
ret component == null ? null : swing(func {
componentPopupMenu_init();
O adapter = findComponentPopupMenuListener_gen(component);
if (adapter == null) {
new componentPopupMenu_Adapter a;
component.addMouseListener(a);
adapter = a;
}
ret adapter;
});
}
sclass componentPopupMenu_Adapter extends MouseAdapter {
new L maker;
bool bothButtons;
Point pressedAt;
public void mousePressed(MouseEvent e) { displayMenu(e); pressedAt = e.getPoint(); }
public void mouseReleased(MouseEvent e) {
if (bothButtons && eq(pressedAt, e.getPoint()) && noCurrentPopupMenu())
displayMenu2(e);
else
displayMenu(e);
}
void displayMenu(MouseEvent e) {
if (e.getSource() instanceof JInternalFrame) ret;
if (e.isPopupTrigger()) displayMenu2(e);
}
void displayMenu2(MouseEvent e) {
new JPopupMenu menu;
int emptyCount = menu.getComponentCount();
temp tempSetTL(mouseEvent, e);
for (O menuMaker : maker)
pcallF(menuMaker, menu);
vmBus_send('showingPopupMenu, e.getComponent(), menu);
// show menu if any items in it
if (menu.getComponentCount() != emptyCount)
menu.show(e.getComponent(), e.getX(), e.getY());
}
}
end scope