| 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); |
| } |
| |
| } |