/** Converts an AU request to a mouse event. * @since 5.0.0 */ public static MouseEvent getMouseEvent(AuRequest request) { final Map<String, Object> data = request.getData(); final String name = request.getCommand(); final int keys = AuRequests.parseKeys(data); final String area = (String) data.get("area"); return area != null ? new MouseEvent(name, request.getComponent(), area, keys) : //area new MouseEvent(name, request.getComponent(), //coord AuRequests.getInt(data, "x", 0, true), AuRequests.getInt(data, "y", 0, true), AuRequests.getInt(data, "pageX", 0, true), AuRequests.getInt(data, "pageY", 0, true), keys); }
public void service(org.zkoss.zk.au.AuRequest request, boolean everError) { final String cmd = request.getCommand(); if (cmd.equals(Events.ON_CLICK)) { Events.postEvent(MouseEvent.getMouseEvent(request)); } else if (cmd.equals(Events.ON_OPEN)) { OpenEvent evt = OpenEvent.getOpenEvent(request); _open = evt.isOpen(); Events.postEvent(evt); } else super.service(request, everError); }
public Map<String, Object> build(MouseEvent evt, Map<String, Object> data) { AuUtility.setEssential(data, "pageX", evt.getPageX()); AuUtility.setEssential(data, "pageY", evt.getPageY()); AuUtility.setEssential(data, "x", evt.getX()); AuUtility.setEssential(data, "y", evt.getY()); AuUtility.setOptional(data, "area", evt.getArea()); int keys = evt.getKeys(); if (keys == 0) { String cmd = evt.getName(); if (Events.ON_CLICK.equals(cmd) || Events.ON_DOUBLE_CLICK.equals(cmd)) AuUtility.setEssential(data, "which", 1); // left button
/** Returns the component representing the area that the click occurs, * or null if not associated with any component. * <p>This method assumes {@link #getArea} is either a component's ID * or a component's UUID. It is true when {@link org.zkoss.zul.Area} is used * to partition a component, such as {@link org.zkoss.zul.Imagemap} and {@link org.zkoss.zul.Chart}. * @since 5.0.4 */ public Component getAreaComponent() { if (_areacomp == null && _area != null) { final Component target = getTarget(); Desktop desktop = null; if (target != null) { _areacomp = target.getFellowIfAny(_area); if (_areacomp != null) return _areacomp; desktop = target.getDesktop(); } if (desktop == null) { final Execution exec = Executions.getCurrent(); if (exec != null) desktop = exec.getDesktop(); } if (desktop != null) return _areacomp = desktop.getComponentByUuidIfAny(_area); } return _areacomp; }
public void click() { String desktopId = target.getDesktop().getId(); String cmd = Events.ON_CLICK; Map<String, Object> data = EventDataManager.getInstance().build(new MouseEvent(cmd, (Component)target.getDelegatee())); ((ClientCtrl)target.getClient()).postUpdate(desktopId, target.getUuid(), cmd, data, false); ((ClientCtrl)target.getClient()).flush(desktopId); }
/** Processes an AU request. * * <p>Default: in addition to what are handled by {@link LabelImageElement#service}, * it also handles onClick. * @since 5.0.0 */ public void service(AuRequest request, boolean everError) { final String cmd = request.getCommand(); if (cmd.equals(Events.ON_CLICK)) { Events.postEvent(MouseEvent.getMouseEvent(request)); } else if (cmd.equals(Events.ON_CHANGE)) { final Map<String, Object> data = request.getData(); if (getContent().indexOf("#color") == 0) { disableClientUpdate(true); try { setContent("#color=" + (String) data.get("color")); } finally { disableClientUpdate(false); } Events.postEvent(InputEvent.getInputEvent(request, _content)); } } else super.service(request, everError); } }
public void moveOut() { String desktopId = target.getDesktop().getId(); String cmd = Events.ON_MOUSE_OUT; Map<String, Object> data = EventDataManager.getInstance().build(new MouseEvent(cmd, (Component)target.getDelegatee())); ((ClientCtrl) target.getClient()).postUpdate(desktopId, target.getUuid(), cmd, data, false); ((ClientCtrl) getClient()).flush(desktopId); }
if (cmd.equals(Events.ON_CLICK) || cmd.equals(Events.ON_DOUBLE_CLICK) || cmd.equals(Events.ON_RIGHT_CLICK) || cmd.equals(Events.ON_MOUSE_OVER) || cmd.equals(Events.ON_MOUSE_OUT)) { Events.postEvent(MouseEvent.getMouseEvent(request)); } else if (cmd.equals(Events.ON_OK) || cmd.equals(Events.ON_CANCEL) || cmd.equals(Events.ON_CTRL_KEY)) { Events.postEvent(KeyEvent.getKeyEvent(request));
public void doubleClick() { String desktopId = target.getDesktop().getId(); String cmd = Events.ON_DOUBLE_CLICK; Map<String, Object> data = EventDataManager.getInstance().build(new MouseEvent(cmd, (Component)target.getDelegatee())); ((ClientCtrl)target.getClient()).postUpdate(desktopId, target.getUuid(), cmd, data, false); ((ClientCtrl)target.getClient()).flush(desktopId); }
public void rightClick() { String desktopId = target.getDesktop().getId(); String cmd = Events.ON_RIGHT_CLICK; Map<String, Object> data = EventDataManager.getInstance().build(new MouseEvent(cmd, (Component)target.getDelegatee())); ((ClientCtrl) target.getClient()).postUpdate(desktopId, target.getUuid(), cmd, data, false); ((ClientCtrl) getClient()).flush(desktopId); } }
public void moveOver() { String desktopId = target.getDesktop().getId(); String cmd = Events.ON_MOUSE_OVER; Map<String, Object> data = EventDataManager.getInstance().build(new MouseEvent(cmd, (Component)target.getDelegatee())); ((ClientCtrl)target.getClient()).postUpdate(desktopId, target.getUuid(), cmd, data, false); ((ClientCtrl) getClient()).flush(desktopId); }