/** * Jexer - Java Text User Interface * * License: LGPLv3 or later * * This module is licensed under the GNU Lesser General Public License * Version 3. Please see the file "COPYING" in this directory for more * information about the GNU Lesser General Public License Version 3. * * Copyright (C) 2015 Kevin Lamonte * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 3 of * the License, or (at your option) any later version. * * This program 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 for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, see * http://www.gnu.org/licenses/, or write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * * @author Kevin Lamonte [kevin.lamonte@gmail.com] * @version 1 */ package jexer.event; import jexer.TCommand; /** * This class encapsulates a user command event. User commands can be * generated by menu actions, keyboard accelerators, and other UI elements. * Commands can operate on both the application and individual widgets. */ public final class TCommandEvent extends TInputEvent { /** * Command dispatched. */ private TCommand cmd; /** * Get TCommand. * * @return the TCommand */ public TCommand getCmd() { return cmd; } /** * Public contructor. * * @param cmd the TCommand dispatched */ public TCommandEvent(final TCommand cmd) { this.cmd = cmd; } /** * Comparison check. All fields must match to return true. * * @param rhs another TCommandEvent or TCommand instance * @return true if all fields are equal */ @Override public boolean equals(final Object rhs) { if (!(rhs instanceof TCommandEvent) && !(rhs instanceof TCommand) ) { return false; } if (rhs instanceof TCommandEvent) { TCommandEvent that = (TCommandEvent) rhs; return (cmd.equals(that.cmd) && (getTime().equals(that.getTime()))); } TCommand that = (TCommand) rhs; return (cmd.equals(that)); } /** * Hashcode uses all fields in equals(). * * @return the hash */ @Override public int hashCode() { int A = 13; int B = 23; int hash = A; hash = (B * hash) + getTime().hashCode(); hash = (B * hash) + cmd.hashCode(); return hash; } /** * Make human-readable description of this TCommandEvent. * * @return displayable String */ @Override public String toString() { return String.format("CommandEvent: %s", cmd.toString()); } }