Crossfire JXClient, Trunk
DefaultKeyHandler.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.main;
24 
32 import java.nio.ByteBuffer;
33 import org.jetbrains.annotations.NotNull;
34 
40 public class DefaultKeyHandler implements KeyHandlerListener {
41 
45  @NotNull
46  private final Exiter exiter;
47 
51  @NotNull
52  private final GuiManager guiManager;
53 
57  @NotNull
59 
63  @NotNull
64  private final Object semaphoreConnected = new Object();
65 
69  private boolean connected;
70 
75  @NotNull
76  @SuppressWarnings("FieldCanBeLocal")
78 
79  @Override
80  public void connecting() {
81  setConnected(true);
82  }
83 
84  @Override
85  public void connected() {
86  // ignore
87  }
88 
89  @Override
90  public void packetReceived(@NotNull final ByteBuffer packet) {
91  // ignore
92  }
93 
94  @Override
95  public void packetSent(@NotNull final ClientSocketMonitorCommand monitor) {
96  // ignore
97  }
98 
99  @Override
100  public void disconnected(@NotNull final String reason) {
101  setConnected(false);
102  }
103 
104  };
105 
113  public DefaultKeyHandler(@NotNull final Exiter exiter, @NotNull final GuiManager guiManager, @NotNull final ServerConnection server, @NotNull final GuiStateManager guiStateManager) {
114  this.exiter = exiter;
115  this.guiManager = guiManager;
116  this.guiStateManager = guiStateManager;
117  server.addClientSocketListener(clientSocketListener);
118  }
119 
120  @Override
121  public void escPressed() {
124  return;
125  }
126 
127  switch (guiManager.escPressed(isConnected())) {
128  case IGNORE:
129  break;
130 
131  case DISCONNECT:
133  break;
134 
135  case QUIT:
136  exiter.terminate();
137  break;
138  }
139  }
140 
141  @Override
142  public void keyReleased() {
144  }
145 
150  private void setConnected(final boolean connected) {
151  synchronized (semaphoreConnected) {
152  this.connected = connected;
153  }
154  }
155 
160  private boolean isConnected() {
161  synchronized (semaphoreConnected) {
162  return connected;
163  }
164  }
165 
166 }
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.window.GuiManager.escPressed
EscAction escPressed(final boolean connected)
Definition: GuiManager.java:518
com.realtime.crossfire.jxclient.server
com.realtime.crossfire.jxclient.window
Definition: DialogStateParser.java:23
com.realtime.crossfire.jxclient.main.DefaultKeyHandler.semaphoreConnected
final Object semaphoreConnected
Definition: DefaultKeyHandler.java:64
com.realtime.crossfire.jxclient.server.socket.ClientSocketListener
Definition: ClientSocketListener.java:33
com.realtime.crossfire.jxclient.window.KeyHandlerListener
Definition: KeyHandlerListener.java:29
com.realtime.crossfire.jxclient.main.DefaultKeyHandler.isConnected
boolean isConnected()
Definition: DefaultKeyHandler.java:160
com.realtime.crossfire.jxclient.main.DefaultKeyHandler.escPressed
void escPressed()
Definition: DefaultKeyHandler.java:121
com.realtime.crossfire.jxclient.guistate.GuiStateManager
Definition: GuiStateManager.java:34
com.realtime.crossfire.jxclient.guistate
Definition: ClientSocketState.java:23
com.realtime.crossfire.jxclient.main.DefaultKeyHandler.keyReleased
void keyReleased()
Definition: DefaultKeyHandler.java:142
com.realtime.crossfire.jxclient.main.DefaultKeyHandler.DefaultKeyHandler
DefaultKeyHandler(@NotNull final Exiter exiter, @NotNull final GuiManager guiManager, @NotNull final ServerConnection server, @NotNull final GuiStateManager guiStateManager)
Definition: DefaultKeyHandler.java:113
com.realtime.crossfire.jxclient.guistate.GuiStateManager.getGuiState
GuiState getGuiState()
Definition: GuiStateManager.java:154
com.realtime.crossfire.jxclient.main.DefaultKeyHandler.guiManager
final GuiManager guiManager
Definition: DefaultKeyHandler.java:52
com.realtime.crossfire.jxclient.window.GuiManager.closeKeybindDialog
void closeKeybindDialog()
Definition: GuiManager.java:810
com.realtime.crossfire.jxclient.main.DefaultKeyHandler.connected
boolean connected
Definition: DefaultKeyHandler.java:69
com.realtime.crossfire.jxclient.server.server.ServerConnection
Definition: ServerConnection.java:32
com.realtime.crossfire.jxclient.main.DefaultKeyHandler.guiStateManager
final GuiStateManager guiStateManager
Definition: DefaultKeyHandler.java:58
com.realtime.crossfire.jxclient.guistate.GuiStateManager.disconnect
void disconnect()
Definition: GuiStateManager.java:187
com.realtime.crossfire.jxclient.server.server
Definition: DefaultServerConnection.java:23
com.realtime.crossfire
com.realtime
com.realtime.crossfire.jxclient.main.DefaultKeyHandler.exiter
final Exiter exiter
Definition: DefaultKeyHandler.java:46
com.realtime.crossfire.jxclient.server.socket
Definition: ClientSocket.java:23
com
com.realtime.crossfire.jxclient.main.DefaultKeyHandler.clientSocketListener
final ClientSocketListener clientSocketListener
Definition: DefaultKeyHandler.java:77
com.realtime.crossfire.jxclient.main.Exiter.terminate
void terminate()
Definition: Exiter.java:42
com.realtime.crossfire.jxclient.guistate.GuiState.CONNECT_FAILED
CONNECT_FAILED
Definition: GuiState.java:54
com.realtime.crossfire.jxclient.main.DefaultKeyHandler.setConnected
void setConnected(final boolean connected)
Definition: DefaultKeyHandler.java:150
com.realtime.crossfire.jxclient.server.socket.ClientSocketMonitorCommand
Definition: ClientSocketMonitorCommand.java:8
com.realtime.crossfire.jxclient.main.DefaultKeyHandler
Definition: DefaultKeyHandler.java:40
com.realtime.crossfire.jxclient.main.Exiter
Definition: Exiter.java:31
com.realtime.crossfire.jxclient.window.GuiManager
Definition: GuiManager.java:63
com.realtime.crossfire.jxclient.guistate.GuiState
Definition: GuiState.java:29