X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fevent%2FTCommandEvent.java;h=e93a941984b48e4a595e131606639d808409cf5f;hb=daa4106c096cd4d2b92c3cbae6491edccd25fcc4;hp=09304d3b5a3d27e6e5d08bf77f83b7a18ffd7e9d;hpb=7b5261bc5b641e0769902f014e3b21f61050b02b;p=fanfix.git diff --git a/src/jexer/event/TCommandEvent.java b/src/jexer/event/TCommandEvent.java index 09304d3..e93a941 100644 --- a/src/jexer/event/TCommandEvent.java +++ b/src/jexer/event/TCommandEvent.java @@ -1,4 +1,4 @@ -/** +/* * Jexer - Java Text User Interface * * License: LGPLv3 or later @@ -37,7 +37,7 @@ import jexer.TCommand; * generated by menu actions, keyboard accelerators, and other UI elements. * Commands can operate on both the application and individual widgets. */ -public class TCommandEvent extends TInputEvent { +public final class TCommandEvent extends TInputEvent { /** * Command dispatched. @@ -49,7 +49,7 @@ public class TCommandEvent extends TInputEvent { * * @return the TCommand */ - public final TCommand getCmd() { + public TCommand getCmd() { return cmd; } @@ -62,13 +62,52 @@ public class TCommandEvent extends TInputEvent { 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 final String toString() { + public String toString() { return String.format("CommandEvent: %s", cmd.toString()); } }