Crossfire JXClient, Trunk
KeyBinding.java
Go to the documentation of this file.
1 /*
2  * This file is part of JXClient, the Fullscreen Java Crossfire Client.
3  *
4  * JXClient is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * JXClient is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with JXClient; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17  *
18  * Copyright (C) 2005-2008 Yann Chachkoff
19  * Copyright (C) 2006-2017,2019-2023 Andreas Kirschbaum
20  * Copyright (C) 2010-2012,2014-2018,2020-2023 Nicolas Weeger
21  */
22 
23 package com.realtime.crossfire.jxclient.gui.keybindings;
24 
26 import java.awt.event.InputEvent;
27 import java.awt.event.KeyEvent;
28 import org.jetbrains.annotations.NotNull;
29 import org.jetbrains.annotations.Nullable;
30 
37 public class KeyBinding implements Comparable<KeyBinding> {
38 
42  @NotNull
43  private final KeyEvent2 keyEvent;
44 
48  @NotNull
49  private final CommandList commands;
50 
55  private final boolean isDefault;
56 
64  public KeyBinding(@NotNull final KeyEvent2 keyEvent, @NotNull final CommandList commands, final boolean isDefault) {
65  this.keyEvent = keyEvent;
66  this.commands = commands;
67  this.isDefault = isDefault;
68  }
69 
74  @NotNull
76  return keyEvent;
77  }
78 
83  @NotNull
85  return commands;
86  }
87 
93  public boolean matchesKeyEvent(@NotNull final KeyEvent2 keyEvent) {
94  return this.keyEvent.matchesKeyEvent(keyEvent);
95  }
96 
97  @Override
98  public boolean equals(@Nullable final Object obj) {
99  if (!(obj instanceof KeyBinding)) {
100  return false;
101  }
102 
103  final KeyBinding keyBinding = (KeyBinding)obj;
104  return keyBinding.keyEvent.equals(keyEvent);
105  }
106 
107  @Override
108  public int hashCode() {
109  return keyEvent.hashCode();
110  }
111 
112  @Override
113  public int compareTo(@NotNull final KeyBinding o) {
114  return keyEvent.compareTo(o.keyEvent);
115  }
116 
121  @NotNull
122  public String getBindingDescription() {
123  final StringBuilder sb = new StringBuilder();
124  final int keyCode = keyEvent.getKeyCode();
125  if (keyCode == KeyEvent.VK_UNDEFINED) {
126  sb.append(keyEvent.getKeyChar());
127  } else {
128  final int modifiers = keyEvent.getModifiers();
129  if (modifiers != KeyEvent2.NONE) {
130  sb.append(InputEvent.getModifiersExText(modifiers)).append("+");
131  }
132  sb.append(KeyEvent.getKeyText(keyCode));
133  }
134  return sb.toString();
135  }
136 
141  @NotNull
142  public String getCommandString() {
143  return commands.getCommandString();
144  }
145 
151  public boolean isDefault() {
152  return isDefault;
153  }
154 
155 }
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.gui.keybindings.KeyEvent2.getKeyChar
char getKeyChar()
Definition: KeyEvent2.java:111
com.realtime.crossfire.jxclient.gui.keybindings.KeyEvent2
Definition: KeyEvent2.java:34
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding.getBindingDescription
String getBindingDescription()
Definition: KeyBinding.java:122
com.realtime.crossfire.jxclient.gui.commandlist.CommandList
Definition: CommandList.java:34
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding.matchesKeyEvent
boolean matchesKeyEvent(@NotNull final KeyEvent2 keyEvent)
Definition: KeyBinding.java:93
com.realtime.crossfire.jxclient.gui.keybindings.KeyEvent2.getModifiers
int getModifiers()
Definition: KeyEvent2.java:120
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding.commands
final CommandList commands
Definition: KeyBinding.java:49
com.realtime.crossfire.jxclient.gui.commandlist.CommandList.getCommandString
String getCommandString()
Definition: CommandList.java:112
com.realtime.crossfire.jxclient.gui.commandlist
Definition: CommandList.java:23
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding.getCommands
CommandList getCommands()
Definition: KeyBinding.java:84
com.realtime.crossfire.jxclient.gui.keybindings.KeyEvent2.equals
boolean equals(@Nullable final Object obj)
Definition: KeyEvent2.java:138
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding.isDefault
boolean isDefault()
Definition: KeyBinding.java:151
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding.hashCode
int hashCode()
Definition: KeyBinding.java:108
com.realtime.crossfire.jxclient.gui.keybindings.KeyEvent2.getKeyCode
int getKeyCode()
Definition: KeyEvent2.java:103
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding.isDefault
final boolean isDefault
Definition: KeyBinding.java:55
com.realtime.crossfire.jxclient.gui.keybindings.KeyEvent2.compareTo
int compareTo(@NotNull final KeyEvent2 o)
Definition: KeyEvent2.java:159
com.realtime.crossfire.jxclient.gui
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding.getKeyEvent2
KeyEvent2 getKeyEvent2()
Definition: KeyBinding.java:75
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding
Definition: KeyBinding.java:37
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding.KeyBinding
KeyBinding(@NotNull final KeyEvent2 keyEvent, @NotNull final CommandList commands, final boolean isDefault)
Definition: KeyBinding.java:64
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding.compareTo
int compareTo(@NotNull final KeyBinding o)
Definition: KeyBinding.java:113
com.realtime.crossfire
com.realtime
com
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding.keyEvent
final KeyEvent2 keyEvent
Definition: KeyBinding.java:43
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding.equals
boolean equals(@Nullable final Object obj)
Definition: KeyBinding.java:98
com.realtime.crossfire.jxclient.gui.keybindings.KeyEvent2.hashCode
int hashCode()
Definition: KeyEvent2.java:154
com.realtime.crossfire.jxclient.gui.keybindings.KeyEvent2.NONE
static final int NONE
Definition: KeyEvent2.java:39
com.realtime.crossfire.jxclient.gui.keybindings.KeyBinding.getCommandString
String getCommandString()
Definition: KeyBinding.java:142