/*
* Copyright 2016 Nokia Solutions and Networks
* Licensed under the Apache License, Version 2.0,
* see license.txt file for details.
*/
package org.robotframework.ide.eclipse.main.plugin.console;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.ui.console.ConsolePlugin;
import org.eclipse.ui.console.IConsole;
import org.eclipse.ui.console.IConsoleManager;
import org.robotframework.ide.eclipse.main.plugin.RedImages;
/**
* @author Michal Anglart
*
*/
class RemoveAllTerminatedRedSessionsAction extends Action {
RemoveAllTerminatedRedSessionsAction() {
super("Remove all terminated RED sessions", IAction.AS_PUSH_BUTTON);
setImageDescriptor(RedImages.getCloseAllImage());
setEnabled(false);
}
@Override
public void run() {
final IConsoleManager consolesManager = ConsolePlugin.getDefault().getConsoleManager();
final List<IConsole> consolesToRemove = new ArrayList<>();
for (final IConsole console : consolesManager.getConsoles()) {
if (console instanceof RedSessionConsole && ((RedSessionConsole) console).isTerminated()) {
consolesToRemove.add(console);
}
}
consolesManager.removeConsoles(consolesToRemove.toArray(new IConsole[0]));
setEnabled(false);
}
}