/* * 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.handler; import java.util.Optional; import javax.inject.Named; import org.eclipse.e4.core.di.annotations.Execute; import org.eclipse.ui.ISources; import org.robotframework.ide.eclipse.main.plugin.model.RobotCodeHoldingElement; import org.robotframework.ide.eclipse.main.plugin.tableeditor.RobotFormEditor; import org.robotframework.ide.eclipse.main.plugin.tableeditor.TreeLayerAccessor; import org.robotframework.ide.eclipse.main.plugin.tableeditor.handler.CollapseAllHandler.E4CollapseAllHandler; import org.robotframework.red.commands.DIParameterizedHandler; public class CollapseAllHandler extends DIParameterizedHandler<E4CollapseAllHandler> { public CollapseAllHandler() { super(E4CollapseAllHandler.class); } public static class E4CollapseAllHandler { @Execute public void collapseAll(final @Named(ISources.ACTIVE_EDITOR_NAME) RobotFormEditor editor) { final Optional<TreeLayerAccessor> treeLayerAccessor = editor.getTreeLayerAccessor(); if (treeLayerAccessor.isPresent()) { editor.getSelectionLayerAccessor().preserveElementsParentSelectionWhen(RobotCodeHoldingElement.class, new Runnable() { @Override public void run() { treeLayerAccessor.get().collapseAll(); } }); } } } }