/* * 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."); } } } }