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.GUIList;
00026 import org.jetbrains.annotations.NotNull;
00027
00033 public class MoveSelectionCommand implements GUICommand {
00034
00038 @NotNull
00039 private final GUIList list;
00040
00044 private final int diffLines;
00045
00049 private final int diffElements;
00050
00057 public MoveSelectionCommand(@NotNull final GUIList list, final int diffLines, final int diffElements) {
00058 this.list = list;
00059 this.diffLines = diffLines;
00060 this.diffElements = diffElements;
00061 }
00062
00066 @Override
00067 public boolean canExecute() {
00068 return list.canMoveSelection(diffLines, diffElements) || list.canScroll(diffLines);
00069 }
00070
00074 @Override
00075 public void execute() {
00076 if (list.canMoveSelection(diffLines, diffElements)) {
00077 list.moveSelection(diffLines, diffElements);
00078 } else {
00079 list.scroll(diffLines);
00080 }
00081 }
00082
00083 }