/* * Copyright 2015 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.tableeditor.keywords.handler; import java.util.List; import javax.inject.Named; import org.eclipse.e4.core.di.annotations.Execute; import org.eclipse.jface.viewers.IStructuredSelection; import org.robotframework.ide.eclipse.main.plugin.model.RobotKeywordCall; import org.robotframework.ide.eclipse.main.plugin.model.RobotKeywordDefinition; import org.robotframework.ide.eclipse.main.plugin.model.cmd.DeleteKeywordCallCommand; import org.robotframework.ide.eclipse.main.plugin.model.cmd.keywords.DeleteKeywordDefinitionCommand; import org.robotframework.ide.eclipse.main.plugin.tableeditor.RobotEditorCommandsStack; import org.robotframework.ide.eclipse.main.plugin.tableeditor.keywords.handler.DeleteKeywordsHandler.E4DeleteKeywordsHandler; import org.robotframework.red.commands.DIParameterizedHandler; import org.robotframework.red.viewers.Selections; public class DeleteKeywordsHandler extends DIParameterizedHandler<E4DeleteKeywordsHandler> { public DeleteKeywordsHandler() { super(E4DeleteKeywordsHandler.class); } public static class E4DeleteKeywordsHandler { @Execute public void deleteKeywords(final RobotEditorCommandsStack commandsStack, @Named(Selections.SELECTION) final IStructuredSelection selection) { final List<RobotKeywordCall> keywordCalls = Selections.getElements(selection, RobotKeywordCall.class); final List<RobotKeywordDefinition> keywordDefinitions = Selections.getElements(selection, RobotKeywordDefinition.class); // it's not possible to have both lists non-empty (the handler is disabled in this // situation) if (!keywordCalls.isEmpty()) { commandsStack.execute(new DeleteKeywordCallCommand(keywordCalls)); } else if (!keywordDefinitions.isEmpty()) { commandsStack.execute(new DeleteKeywordDefinitionCommand(keywordDefinitions)); } } } }