Crossfire JXClient, Trunk  R20561
MoveSelectionCommand.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 
26 import org.jetbrains.annotations.NotNull;
27 
33 public class MoveSelectionCommand implements GUICommand {
34 
38  @NotNull
39  private final GUIList<?> list;
40 
44  private final int diffLines;
45 
49  private final int diffElements;
50 
57  public MoveSelectionCommand(@NotNull final GUIList<?> list, final int diffLines, final int diffElements) {
58  this.list = list;
59  this.diffLines = diffLines;
60  this.diffElements = diffElements;
61  }
62 
66  @Override
67  public boolean canExecute() {
68  return list.canMoveSelection(diffLines, diffElements) || list.canScroll(diffLines);
69  }
70 
74  @Override
75  public void execute() {
76  if (list.canMoveSelection(diffLines, diffElements)) {
77  list.moveSelection(diffLines, diffElements);
78  } else {
79  list.scroll(diffLines);
80  }
81  }
82 
83 }
A GUICommand which moves the selected element in a GUIList element.
boolean canExecute()
Returns whether this command may be executed.whether this command may be executed ...
boolean canMoveSelection(final int diffLines, final int diffElements)
Returns whether the selection can be moved.
Definition: GUIList.java:232
void execute()
Executes the command.Does nothing if called while canExecute() returnsfalse .
boolean canScroll(final int distance)
Returns whether the list can be scrolled.
Definition: GUIList.java:297
void moveSelection(final int diffLines, final int diffElements)
Moves the selection.
Definition: GUIList.java:261
MoveSelectionCommand(@NotNull final GUIList<?> list, final int diffLines, final int diffElements)
Creates a new instance.
A GUIElement that displays a list of entries.
Definition: GUIList.java:54
void scroll(final int distance)
Moves the list.
Definition: GUIList.java:316