Crossfire JXClient, Trunk  R20561
GUILabelQuery.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-2011 Andreas Kirschbaum.
20  */
21 
22 package com.realtime.crossfire.jxclient.gui.label;
23 
28 import java.awt.Color;
29 import java.awt.Font;
30 import org.jetbrains.annotations.NotNull;
31 import org.jetbrains.annotations.Nullable;
32 
37 public class GUILabelQuery extends GUIMultiLineLabel {
38 
42  private static final long serialVersionUID = 1;
43 
47  @NotNull
49 
53  @NotNull
54  private final CrossfireQueryListener crossfireQueryListener = (prompt, queryType) -> setText(prompt);
55 
66  public GUILabelQuery(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final String name, @NotNull final CrossfireServerConnection crossfireServerConnection, @NotNull final Font font, @NotNull final Color color, @Nullable final Color backgroundColor) {
67  super(tooltipManager, elementListener, name, null, font, color, backgroundColor, Alignment.LEFT, "");
68  this.crossfireServerConnection = crossfireServerConnection;
69  this.crossfireServerConnection.addCrossfireQueryListener(crossfireQueryListener);
70  }
71 
75  @Override
76  public void dispose() {
77  super.dispose();
78  crossfireServerConnection.removeCrossfireQueryListener(crossfireQueryListener);
79  }
80 
81 }
void setText(@NotNull final String text)
The label text.
A AbstractLabel that renders the text as a list of plain strings.
final TooltipManager tooltipManager
The TooltipManager to update.
final CrossfireServerConnection crossfireServerConnection
The CrossfireServerConnection to monitor.
A GUIHTMLLabel that displays the last received "query" command.
GUILabelQuery(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final String name, @NotNull final CrossfireServerConnection crossfireServerConnection, @NotNull final Font font, @NotNull final Color color, @Nullable final Color backgroundColor)
Creates a new instance.
final GUIElementListener elementListener
The GUIElementListener to notify.
final Color backgroundColor
If set, the opaque background color.
static final long serialVersionUID
The serial version UID.
final CrossfireQueryListener crossfireQueryListener
The CrossfireQueryListener registered to receive query commands.
void addCrossfireQueryListener(@NotNull CrossfireQueryListener listener)
Adds a new listener monitoring the query S->C messages.
Adds encoding/decoding of crossfire protocol packets to a ServerConnection.
Interface for listeners interested in query messages received from the Crossfire server.
void dispose()
Releases all allocated resources.
void removeCrossfireQueryListener(@NotNull CrossfireQueryListener listener)
Removes the given listener from the list of objects listening to the query S->C messages.