/* * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package com.sun.lwuit.events; import com.sun.lwuit.Command; /** * Event object delivered when an {@link ActionListener} callback is invoked * * @author Chen Fishbein */ public class ActionEvent { private boolean consumed; private Object source; private int keyEvent = -1; private int y = -1; /** * Creates a new instance of ActionEvent * @param source element for the action event */ public ActionEvent(Object source) { this.source = source; } /** * Creates a new instance of ActionEvent * @param source element for the action event * @param keyEvent the key that triggered the event */ public ActionEvent(Object source, int keyEvent) { this.source = source; this.keyEvent = keyEvent; } /** * Creates a new instance of ActionEvent as a pointer event * * @param source element for the pointer event * @param x the x position of the pointer event * @param y the y position of the pointer event */ public ActionEvent(Object source, int x, int y) { this.source = source; this.keyEvent = x; this.y = y; } /** * The element that triggered the action event, useful for decoupling event * handling code * @return the element that triggered the action event */ public Object getSource(){ return source; } /** * If this event was triggered by a key press this method will return the * appropriate keycode * @return the key that triggered the event */ public int getKeyEvent() { return keyEvent; } /** * If this event was sent as a result of a command action this method returns * that command * @return the command action that triggered the action event */ public Command getCommand() { if(source instanceof Command) { return (Command)source; } return null; } /** * Consume the event indicating that it was handled thus preventing other action * listeners from handling/receiving the event */ public void consume() { consumed = true; } /** * Returns true if the event was consumed thus indicating that it was handled. * This prevents other action listeners from handling/receiving the event * * @return true if the event was consumed */ public boolean isConsumed() { return consumed; } /** * The X position if this is a pointer event otherwise undefined * * @return x position */ public int getX() { return keyEvent; } /** * The Y position if this is a pointer event otherwise undefined * * @return y position */ public int getY() { return y; } }