00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 package com.realtime.crossfire.jxclient.gui.commands;
00023
00024 import com.realtime.crossfire.jxclient.gui.commandlist.GUICommand;
00025 import com.realtime.crossfire.jxclient.gui.list.GUIItemList;
00026 import com.realtime.crossfire.jxclient.items.FloorView;
00027 import com.realtime.crossfire.jxclient.queue.CommandQueue;
00028 import com.realtime.crossfire.jxclient.server.crossfire.CrossfireServerConnection;
00029 import org.jetbrains.annotations.NotNull;
00030
00036 public class ExecSelectionCommand implements GUICommand {
00037
00041 @NotNull
00042 private final GUIItemList list;
00043
00047 @NotNull
00048 private final CommandType command;
00049
00053 @NotNull
00054 private final CrossfireServerConnection crossfireServerConnection;
00055
00059 @NotNull
00060 private final FloorView floorView;
00061
00065 @NotNull
00066 private final CommandQueue commandQueue;
00067
00076 public ExecSelectionCommand(@NotNull final GUIItemList list, @NotNull final CommandType command, @NotNull final CrossfireServerConnection crossfireServerConnection, @NotNull final FloorView floorView, @NotNull final CommandQueue commandQueue) {
00077 this.list = list;
00078 this.command = command;
00079 this.crossfireServerConnection = crossfireServerConnection;
00080 this.floorView = floorView;
00081 this.commandQueue = commandQueue;
00082 }
00083
00087 @Override
00088 public boolean canExecute() {
00089 return CommandType.canExecute(list.getSelectedItem());
00090 }
00091
00095 @Override
00096 public void execute() {
00097 command.execute(list.getSelectedItem(), crossfireServerConnection, floorView.getCurrentFloor(), commandQueue);
00098 }
00099
00100 }