All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.debug.ui.actions.AbstractLaunchToolbarAction Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 * Copyright (c) 2000, 2011 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.debug.ui.actions;


import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.internal.ui.DebugUIPlugin;
import org.eclipse.debug.internal.ui.contextlaunching.ContextRunner;
import org.eclipse.debug.internal.ui.contextlaunching.LaunchingResourceManager;
import org.eclipse.debug.internal.ui.launchConfigurations.OrganizeFavoritesAction;
import org.eclipse.debug.ui.DebugUITools;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.widgets.Menu;

/**
 * A launch history action that also includes launch shortcut actions (run/debug
 * as), and an action to open the launch configuration dialog.
 * 

* Clients may subclass this class. *

* @since 2.1 */ public class AbstractLaunchToolbarAction extends AbstractLaunchHistoryAction { /** * Constructs a launch toolbar action. * * @param launchGroupIdentifier unique identifier of the launch group * extension that this action displays a launch history, shortcuts, and * launch configuration dialog for. */ public AbstractLaunchToolbarAction(String launchGroupIdentifier) { super(launchGroupIdentifier); } /** * Fills the drop-down menu with favorites and launch history, * launch shortcuts, and an action to open the launch configuration dialog. * * @param menu the menu to fill */ @Override protected void fillMenu(Menu menu) { super.fillMenu(menu); // Separator between history and common actions if (menu.getItemCount() > 0) { addSeparator(menu); } addToMenu(menu, new LaunchShortcutsAction(getLaunchGroupIdentifier()), -1); addToMenu(menu, getOpenDialogAction(), -1); addToMenu(menu, new OrganizeFavoritesAction(getLaunchGroupIdentifier()), -1); } /** * Returns an action to open the launch dialog * @return the new {@link OpenLaunchDialogAction} * @since 3.1 */ protected IAction getOpenDialogAction() { return new OpenLaunchDialogAction(getLaunchGroupIdentifier()); } /** * Launch the last launch, or open the launch config dialog if none. * * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) */ @Override public void run(IAction action) { //always ignore external tools during context launching if(LaunchingResourceManager.isContextLaunchEnabled(getLaunchGroupIdentifier())) { ContextRunner.getDefault().launch(DebugUIPlugin.getDefault().getLaunchConfigurationManager().getLaunchGroup(getLaunchGroupIdentifier())); } else { ILaunchConfiguration configuration = getLastLaunch(); if (configuration == null) { DebugUITools.openLaunchConfigurationDialogOnGroup(DebugUIPlugin.getShell(), new StructuredSelection(), getLaunchGroupIdentifier()); } else { DebugUITools.launch(configuration, getMode()); } } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy