diff options
author | Doug Schaefer | 2016-11-11 18:10:16 +0000 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org | 2016-11-11 21:24:40 +0000 |
commit | 03051c91ab83ac8f532fb0cbea256449b76a6f1b (patch) | |
tree | ad559c8d9247917a233abf795abed1b049612378 /launch/org.eclipse.cdt.launch | |
parent | c31b45b5ccb46371b60972992b6a220843be1200 (diff) | |
download | org.eclipse.cdt-03051c91ab83ac8f532fb0cbea256449b76a6f1b.tar.gz org.eclipse.cdt-03051c91ab83ac8f532fb0cbea256449b76a6f1b.tar.xz org.eclipse.cdt-03051c91ab83ac8f532fb0cbea256449b76a6f1b.zip |
Implement Qt build tab for the launch config dialog.
Make sure Core Build handles the properties set by these tabs
correctly. A bunch of string externalization too.
Change-Id: I54a61b4d2520a0952c43608169747e792826062e
Diffstat (limited to 'launch/org.eclipse.cdt.launch')
7 files changed, 83 insertions, 5 deletions
diff --git a/launch/org.eclipse.cdt.launch/META-INF/MANIFEST.MF b/launch/org.eclipse.cdt.launch/META-INF/MANIFEST.MF index a3661afac97..731ca773c56 100644 --- a/launch/org.eclipse.cdt.launch/META-INF/MANIFEST.MF +++ b/launch/org.eclipse.cdt.launch/META-INF/MANIFEST.MF @@ -8,9 +8,11 @@ Bundle-Vendor: %providerName Bundle-Localization: plugin Export-Package: org.eclipse.cdt.launch, org.eclipse.cdt.launch.internal;x-internal:=true, + org.eclipse.cdt.launch.internal.corebuild;x-internal:=true, org.eclipse.cdt.launch.internal.refactoring;x-internal:=true, org.eclipse.cdt.launch.internal.ui;x-friends:="org.eclipse.cdt.debug.edc.ui", - org.eclipse.cdt.launch.ui + org.eclipse.cdt.launch.ui, + org.eclipse.cdt.launch.ui.corebuild Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)", org.eclipse.core.expressions;bundle-version="[3.2.0,4.0.0)", org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)", @@ -23,7 +25,9 @@ Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)", org.eclipse.cdt.debug.ui;bundle-version="[7.0.0,9.0.0)", org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)", org.eclipse.core.variables;bundle-version="[3.1.100,4.0.0)", - org.eclipse.ltk.core.refactoring;bundle-version="[3.5.0,4.0.0)" + org.eclipse.ltk.core.refactoring;bundle-version="[3.5.0,4.0.0)", + org.eclipse.launchbar.ui;bundle-version="2.1.0", + org.eclipse.launchbar.core;bundle-version="2.1.0" Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Import-Package: com.ibm.icu.text diff --git a/launch/org.eclipse.cdt.launch/plugin.xml b/launch/org.eclipse.cdt.launch/plugin.xml index fb521cdfd42..9fb7db2cad8 100644 --- a/launch/org.eclipse.cdt.launch/plugin.xml +++ b/launch/org.eclipse.cdt.launch/plugin.xml @@ -147,7 +147,7 @@ <launchConfigurationTabGroup class="org.eclipse.cdt.launch.internal.corebuild.LocalLaunchConfigurationTabGroup" id="org.eclipse.cdt.launch.launchConfigurationTabGroup.local" - type="org.eclipse.cdt.debug.core.localLaunchConfigurationType"> + type="org.eclipse.cdt.debug.core.localCoreBuildLaunchConfigType"> </launchConfigurationTabGroup> </extension> </plugin> diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.java index d9216df2633..0b3e4a846a7 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.java +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.java @@ -46,6 +46,8 @@ public class LaunchMessages extends NLS { public static String LocalAttachLaunchDelegate_Platform_cannot_list_processes; public static String LocalAttachLaunchDelegate_Select_Process_to_attach_debugger_to; public static String LocalAttachLaunchDelegate_CDT_Launch_Error; + public static String CoreBuildTab_Build; + public static String CoreBuildTab_NoOptions; public static String CoreFileLaunchDelegate_Launching_postmortem_debugger; public static String CoreFileLaunchDelegate_No_Corefile_selected; public static String CoreFileLaunchDelegate_No_Shell_available_in_Launch; diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.properties b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.properties index 26073b4d391..ef0d62cea5c 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.properties +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.properties @@ -49,6 +49,8 @@ LocalAttachLaunchDelegate_Platform_cannot_list_processes=Current platform does n LocalAttachLaunchDelegate_Select_Process_to_attach_debugger_to=Select a Process to attach debugger to: LocalAttachLaunchDelegate_CDT_Launch_Error=CDT Launch Error +CoreBuildTab_Build=Build +CoreBuildTab_NoOptions=No build options required. CoreFileLaunchDelegate_Launching_postmortem_debugger=Launching postmortem debugger CoreFileLaunchDelegate_No_Corefile_selected=No Corefile selected CoreFileLaunchDelegate_No_Shell_available_in_Launch=No Shell available in Launch diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchUIPlugin.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchUIPlugin.java index 55a0b2bed6c..d9c1aca5f31 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchUIPlugin.java +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchUIPlugin.java @@ -23,6 +23,7 @@ import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; public class LaunchUIPlugin extends AbstractUIPlugin implements ILaunchesListener2 { @@ -226,4 +227,11 @@ public class LaunchUIPlugin extends AbstractUIPlugin implements ILaunchesListene } } } + + public static <T> T getService(Class<T> service) { + BundleContext context = fgPlugin.getBundle().getBundleContext(); + ServiceReference<T> ref = context.getServiceReference(service); + return ref != null ? context.getService(ref) : null; + } + } diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CommonBuildTab.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CommonBuildTab.java new file mode 100644 index 00000000000..c7b79e6c49e --- /dev/null +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CommonBuildTab.java @@ -0,0 +1,55 @@ +/******************************************************************************* + * Copyright (c) 2016 QNX Software Systems 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 + *******************************************************************************/ +package org.eclipse.cdt.launch.ui.corebuild; + +import java.util.Map; + +import org.eclipse.cdt.core.build.ICBuildConfiguration; +import org.eclipse.cdt.core.build.ICBuildConfigurationManager; +import org.eclipse.cdt.debug.core.launch.CoreBuildLaunchConfigDelegate; +import org.eclipse.cdt.launch.internal.ui.LaunchUIPlugin; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.debug.ui.AbstractLaunchConfigurationTab; +import org.eclipse.debug.ui.ILaunchConfigurationDialog; +import org.eclipse.launchbar.core.target.ILaunchTarget; +import org.eclipse.launchbar.ui.ILaunchBarLaunchConfigDialog; + +/** + * Common utilities for Core Build launch configuration tabs. + * + * @since 9.1 + */ +public abstract class CommonBuildTab extends AbstractLaunchConfigurationTab { + + public ILaunchBarLaunchConfigDialog getLaunchBarLaunchConfigDialog() { + ILaunchConfigurationDialog dialog = getLaunchConfigurationDialog(); + return dialog instanceof ILaunchBarLaunchConfigDialog ? (ILaunchBarLaunchConfigDialog) dialog : null; + } + + public ILaunchTarget getLaunchTarget() { + ILaunchBarLaunchConfigDialog dialog = getLaunchBarLaunchConfigDialog(); + return dialog != null ? dialog.getLaunchTarget() : null; + } + + public ICBuildConfiguration getBuildConfiguration(ILaunchConfiguration configuration) throws CoreException { + String mode = getLaunchConfigurationDialog().getMode(); + ILaunchTarget target = getLaunchTarget(); + if (target == null) { + return null; + } + + ICBuildConfigurationManager bcManager = LaunchUIPlugin.getService(ICBuildConfigurationManager.class); + IProject project = CoreBuildLaunchConfigDelegate.getProject(configuration); + Map<String, String> properties = target.getAttributes(); + return bcManager.getBuildConfiguration(project, properties, mode, new NullProgressMonitor()); + } + +} diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CoreBuildTab.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CoreBuildTab.java index 2607c6e773d..af286f2faf1 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CoreBuildTab.java +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CoreBuildTab.java @@ -7,6 +7,7 @@ *******************************************************************************/ package org.eclipse.cdt.launch.ui.corebuild; +import org.eclipse.cdt.launch.internal.ui.LaunchMessages; import org.eclipse.cdt.launch.internal.ui.LaunchUIPlugin; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; @@ -26,6 +27,12 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; +/** + * Launch configuration tab for adjusting Core Build settings. Contents of tab depends on the nature + * of the project which determines what build system is being used. + * + * @since 9.1 + */ public class CoreBuildTab extends AbstractLaunchConfigurationTab { private Composite container; @@ -84,7 +91,7 @@ public class CoreBuildTab extends AbstractLaunchConfigurationTab { @Override public String getName() { - return "Build"; + return LaunchMessages.CoreBuildTab_Build; } private IProject getProject(ILaunchConfiguration configuration) { @@ -111,7 +118,7 @@ public class CoreBuildTab extends AbstractLaunchConfigurationTab { comp.setLayout(new GridLayout()); Label label = new Label(comp, SWT.NONE); - label.setText("No build options required."); + label.setText(LaunchMessages.CoreBuildTab_NoOptions); activeTab = null; } |