/* MouseEventDataBuilder.java Purpose: Description: History: Mar 26, 2012 Created by pao Copyright (C) 2011 Potix Corporation. All Rights Reserved. */ package org.zkoss.zats.mimic.impl.au; import java.util.Map; import org.zkoss.zats.mimic.impl.EventDataBuilder; import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.event.MouseEvent; /** * A data builder for MouseEvent. * * @author pao */ public class MouseEventDataBuilder implements EventDataBuilder<MouseEvent> { 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()); // parse key int keys = evt.getKeys(); if (keys == 0) { // generate data by command name String cmd = evt.getName(); if (Events.ON_CLICK.equals(cmd) || Events.ON_DOUBLE_CLICK.equals(cmd)) AuUtility.setEssential(data, "which", 1); // left button else if (Events.ON_RIGHT_CLICK.equals(cmd)) AuUtility.setEssential(data, "which", 2); // right button } else { // generate data by parsing keys if ((keys & MouseEvent.LEFT_CLICK) > 0) AuUtility.setEssential(data, "which", 1); if ((keys & MouseEvent.MIDDLE_CLICK) > 0) AuUtility.setEssential(data, "which", 2); if ((keys & MouseEvent.RIGHT_CLICK) > 0) AuUtility.setEssential(data, "which", 3); if ((keys & MouseEvent.ALT_KEY) > 0) AuUtility.setEssential(data, "altKey", true); if ((keys & MouseEvent.CTRL_KEY) > 0) AuUtility.setEssential(data, "ctrlKey", true); if ((keys & MouseEvent.SHIFT_KEY) > 0) AuUtility.setEssential(data, "shiftKey", true); } return data; } public Class<MouseEvent> getEventClass(){ return MouseEvent.class; } }