/* * 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.Optional; 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.MoveKeywordCallUpCommand; import org.robotframework.ide.eclipse.main.plugin.model.cmd.keywords.MoveKeywordDefinitionUpCommand; import org.robotframework.ide.eclipse.main.plugin.tableeditor.RobotEditorCommandsStack; import org.robotframework.ide.eclipse.main.plugin.tableeditor.keywords.handler.MoveKeywordsUpHandler.E4MoveKeywordUpHandler; import org.robotframework.red.commands.DIParameterizedHandler; import org.robotframework.red.viewers.Selections; public class MoveKeywordsUpHandler extends DIParameterizedHandler<E4MoveKeywordUpHandler> { public MoveKeywordsUpHandler() { super(E4MoveKeywordUpHandler.class); } public static class E4MoveKeywordUpHandler { @Execute public void moveUp(@Named(Selections.SELECTION) final IStructuredSelection selection, final RobotEditorCommandsStack commandsStack) { final Optional<RobotKeywordCall> maybeKeywordCall = Selections.getOptionalFirstElement(selection, RobotKeywordCall.class); final Optional<RobotKeywordDefinition> maybeKeywordDef = Selections.getOptionalFirstElement(selection, RobotKeywordDefinition.class); if (maybeKeywordCall.isPresent()) { commandsStack.execute(new MoveKeywordCallUpCommand(maybeKeywordCall.get())); } else if (maybeKeywordDef.isPresent()) { commandsStack.execute(new MoveKeywordDefinitionUpCommand(maybeKeywordDef.get())); } } } }