00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 package com.realtime.crossfire.jxclient.gui.commands;
00022
00023 import com.realtime.crossfire.jxclient.account.CharacterInformation;
00024 import com.realtime.crossfire.jxclient.gui.commandlist.GUICommand;
00025 import com.realtime.crossfire.jxclient.gui.gui.Gui;
00026 import com.realtime.crossfire.jxclient.gui.gui.GuiUtils;
00027 import com.realtime.crossfire.jxclient.gui.list.GUICharacterList;
00028 import com.realtime.crossfire.jxclient.gui.textinput.CommandCallback;
00029 import java.awt.Component;
00030 import org.jetbrains.annotations.NotNull;
00031
00036 public class AccountPlayCharacterCommand implements GUICommand {
00037
00041 @NotNull
00042 private final CommandCallback commandCallback;
00043
00047 @NotNull
00048 private final Component element;
00049
00055 public AccountPlayCharacterCommand(@NotNull final CommandCallback commandCallback, @NotNull final Component button) {
00056 this.commandCallback = commandCallback;
00057 element = button;
00058 }
00059
00063 @Override
00064 public boolean canExecute() {
00065 return true;
00066 }
00067
00071 @Override
00072 public void execute() {
00073 final Gui gui = GuiUtils.getGui(element);
00074 if (gui == null) {
00075 return;
00076 }
00077
00078 final GUICharacterList charactersList = gui.getFirstElement(GUICharacterList.class, "characters");
00079 if (charactersList == null) {
00080 return;
00081 }
00082
00083 final CharacterInformation current = charactersList.getCurrentCharacter();
00084 if (current == null) {
00085 return;
00086 }
00087
00088 commandCallback.accountPlayCharacter(current.getName());
00089 }
00090
00091 }