/*
* Written and copyright 2001-2004 Tobias Minich. Distributed under the GNU
* General Public License; see the README file. This code comes with NO
* WARRANTY.
*
* Move.java
*
* Created on 23.03.2004
*
*/
package org.gudy.azureus2.ui.console.commands;
import java.util.List;
import org.gudy.azureus2.core3.download.DownloadManager;
import org.gudy.azureus2.core3.global.GlobalManager;
import org.gudy.azureus2.ui.console.ConsoleInput;
/**
* @author Tobias Minich
*/
public class Move extends IConsoleCommand {
public Move()
{
super("move", "m");
}
public String getCommandDescriptions()
{
return("move <from #> [<to #>]\t\tm\tMove torrent from to to. If to is omitted, the torrent is moved to top or to the bottom if given negative.");
}
public void execute(String commandName, ConsoleInput ci, List args) {
if( args.isEmpty() )
{
ci.out.println("> Missing subcommand for 'move'\r\n> move syntax: move <#from> [<#to>]");
return;
}
if (ci.torrents.isEmpty())
{
ci.out.println("> Command 'move': No torrents in list.");
return;
}
int ncommand;
int nmoveto = -1;
boolean moveto = false;
try {
ncommand = Integer.parseInt((String) args.get(0));
if (args.size() > 1) {
nmoveto = Integer.parseInt((String) args.get(1));
moveto = true;
}
} catch (NumberFormatException e) {
ci.out.println("> Command 'move': Subcommand '" + args.get(0) + "' unknown.");
return;
}
int number = Math.abs(ncommand);
if (number == 0 || number > ci.torrents.size()) {
ci.out.println("> Command 'move': Torrent #" + Integer.toString(number) + " unknown.");
return;
}
DownloadManager dm = (DownloadManager) ci.torrents.get(number - 1);
String name = dm.getDisplayName();
if (name == null)
name = "?";
GlobalManager gm = dm.getGlobalManager();
if (moveto) {
gm.moveTo(dm, nmoveto - 1);
gm.fixUpDownloadManagerPositions();
ci.out.println("> Torrent #" + Integer.toString(number) + " (" + name + ") moved to #" + Integer.toString(nmoveto) + ".");
} else if (ncommand > 0) {
if (gm.isMoveableUp(dm)) {
while (gm.isMoveableUp(dm))
gm.moveUp(dm);
gm.fixUpDownloadManagerPositions();
ci.out.println("> Torrent #" + Integer.toString(number) + " (" + name + ") moved to top.");
} else {
ci.out.println("> Torrent #" + Integer.toString(number) + " (" + name + ") already at top.");
}
} else {
if (gm.isMoveableDown(dm)) {
while (gm.isMoveableDown(dm))
gm.moveDown(dm);
gm.fixUpDownloadManagerPositions();
ci.out.println("> Torrent #" + Integer.toString(number) + " (" + name + ") moved to bottom.");
} else {
ci.out.println("> Torrent #" + Integer.toString(number) + " (" + name + ") already at bottom.");
}
}
}
}