Crossfire JXClient, Trunk  R20561
ToggleCommand.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.commands;
23 
27 import java.awt.Component;
28 import org.jetbrains.annotations.NotNull;
29 
35 public class ToggleCommand implements GUICommand {
36 
40  @NotNull
41  private final Component target;
42 
47  @NotNull
48  private final Runnable executeRunnable = new Runnable() {
49 
50  @Override
51  public void run() {
52  target.setVisible(!target.isVisible());
53  }
54 
55  };
56 
61  public ToggleCommand(@NotNull final Component target) {
62  this.target = target;
63  }
64 
68  @Override
69  public boolean canExecute() {
70  return true;
71  }
72 
76  @Override
77  public void execute() {
78  SwingUtilities2.invokeAndWait(executeRunnable);
79  }
80 
81 }
ToggleCommand(@NotNull final Component target)
Creates a new instance.
Interface defining an abstract GUI element.
Definition: GUIElement.java:32
boolean canExecute()
Returns whether this command may be executed.whether this command may be executed ...
final Component target
The gui element to toggle.
A GUICommand which toggles the visibility of a target GUIElement.
Utility class for Swing related functions.
void execute()
Executes the command.Does nothing if called while canExecute() returnsfalse .
static void invokeAndWait(@NotNull final Runnable runnable)
Calls SwingUtilities#invokeAndWait(Runnable) if not on the EDT or calls the Runnable directly if on t...
final Runnable executeRunnable
The Runnable that implements the functionality of execute().