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 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)
svoid componentPopupMenu(final JComponent component, fO menuMaker) {
if (component == null || menuMaker == null) ret;
swing {
O adapter = componentPopupMenu_initForComponent(component);
((L) _get(adapter, 'maker)).add(menuMaker);
}
}
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;
addMouseListener_inFront(component, a);
adapter = a;
}
ret adapter;
});
}
sclass componentPopupMenu_Adapter extends MouseAdapter {
new L maker;
bool internalFrameLeftButtonMagic;
Point pressedAt;
public void mousePressed(MouseEvent e) {
displayMenu(e);
pressedAt = internalFrameLeftButtonMagic && e.getClickCount() == 1 && internalFrameActive(e.getComponent()) ? e.getLocationOnScreen() : null;
}
public void mouseReleased(MouseEvent e) {
// TODO: show a little less often on left mouse click
if (internalFrameLeftButtonMagic && eq(pressedAt, e.getLocationOnScreen()))
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