blob: 887424032db0a8a7fa1195779190765f8af46128 [file] [log] [blame]
package org.eclipse.jdt.internal.debug.ui.actions;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
import java.util.Iterator;
import java.util.List;
import org.eclipse.jdt.internal.debug.ui.launcher.RuntimeClasspathViewer;
import org.eclipse.jface.viewers.IStructuredSelection;
/**
* Moves selected enries in a runtime classpath viewer up one position.
*/
public class MoveUpAction extends RuntimeClasspathAction {
public MoveUpAction(RuntimeClasspathViewer viewer) {
super(ActionMessages.getString("MoveUpAction.Move_U&p_1"), viewer); //$NON-NLS-1$
}
/**
* Moves all selected entries up one position (if possible).
*
* @see IAction#run()
*/
public void run() {
List targets = getOrderedSelection();
if (targets.isEmpty()) {
return;
}
int top = 0;
int index = 0;
List list = getEntiresAsList();
Iterator entries = targets.iterator();
while (entries.hasNext()) {
Object target = entries.next();
index = list.indexOf(target);
if (index > top) {
top = index - 1;
Object temp = list.get(top);
list.set(top, target);
list.set(index, temp);
}
top = index;
}
setEntries(list);
}
/**
* @see SelectionListenerAction#updateSelection(IStructuredSelection)
*/
protected boolean updateSelection(IStructuredSelection selection) {
return getViewer().isEnabled() && !selection.isEmpty() && !isIndexSelected(selection, 0);
}
}