00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 package com.realtime.crossfire.jxclient.gui.keybindings;
00023
00024 import com.realtime.crossfire.jxclient.gui.commandlist.CommandList;
00025 import org.jetbrains.annotations.NotNull;
00026 import org.jetbrains.annotations.Nullable;
00027
00032 public class KeyCharKeyBinding extends KeyBinding {
00033
00037 private final char keyChar;
00038
00046 public KeyCharKeyBinding(final char keyChar, @NotNull final CommandList commands, final boolean isDefault) {
00047 super(commands, isDefault);
00048 this.keyChar = keyChar;
00049 }
00050
00055 public char getKeyChar() {
00056 return keyChar;
00057 }
00058
00062 @Override
00063 public boolean equals(@Nullable final Object obj) {
00064 if (obj == null || !(obj instanceof KeyCharKeyBinding)) {
00065 return false;
00066 }
00067
00068 final KeyCharKeyBinding keyBinding = (KeyCharKeyBinding)obj;
00069 return keyBinding.getKeyChar() == keyChar;
00070 }
00071
00075 @Override
00076 public int hashCode() {
00077 return keyChar;
00078 }
00079
00083 @Override
00084 public boolean matchesKeyCode(final int keyCode, final int modifiers) {
00085 return false;
00086 }
00087
00091 @Override
00092 public boolean matchesKeyChar(final char keyChar) {
00093 return this.keyChar == keyChar;
00094 }
00095
00099 @Override
00100 public String getBindingDescription() {
00101 if (keyChar == '\n') {
00102 return "return";
00103 }
00104 if (keyChar == '\t') {
00105 return "tab";
00106 }
00107 if (keyChar == ' ') {
00108 return "space";
00109 }
00110 return new String(new char[] { keyChar });
00111 }
00112 }