/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.workflow; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.jface.viewers.ISelection; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PlatformUI; import de.rcenvironment.core.configuration.CommandLineArguments; import de.rcenvironment.core.gui.workflow.editor.WorkflowEditor; /** * Handler to show or hide advanced tab. * * @author Oliver Seebach */ public class AdvancedTabVisibilityHandler extends AbstractHandler { @Override public Object execute(ExecutionEvent event) throws ExecutionException { if (!CommandLineArguments.isShowAdvancedTab()) { if (AdvancedTabVisibilityHelper.isShowAdvancedTab()) { AdvancedTabVisibilityHelper.setShowAdvancedTab(false); } else { AdvancedTabVisibilityHelper.setShowAdvancedTab(true); } // refresh selection to trigger property tab update IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); if (activePage.getActiveEditor() instanceof WorkflowEditor){ WorkflowEditor editor = (WorkflowEditor) activePage.getActiveEditor(); ISelection currentSelection = editor.getViewer().getSelection(); // Note: deselect and reselect again causes property tab to flicker once if (currentSelection != null){ editor.getViewer().deselectAll(); editor.getViewer().setSelection(currentSelection); } } } return null; } }