diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java
index 86930364fd1..e0f3347910d 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java
@@ -4732,7 +4732,6 @@ public class ManagedBuildManager extends AbstractCExtension {
}
}
}
-
}
/**
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java
index 73ed1a76769..d36a1d8f5f6 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java
@@ -1447,7 +1447,7 @@ public class GeneratedMakefileBuilder extends ACBuilder {
OutputStream stdout = buildRunnerHelper.getOutputStream();
OutputStream stderr = buildRunnerHelper.getErrorStream();
- buildRunnerHelper.greeting(ManagedMakeMessages.getResourceString("BuildFilesHandler.buildingSelectedFiles"), cfgName, toolchainName, isSupported); //$NON-NLS-1$
+ buildRunnerHelper.greeting(ManagedMakeMessages.getResourceString("GeneratedMakefileBuilder.buildingSelectedFiles"), cfgName, toolchainName, isSupported); //$NON-NLS-1$
buildRunnerHelper.printLine(ManagedMakeMessages.getResourceString("ManagedMakeBuilder.message.internal.builder.header.note")); //$NON-NLS-1$
// Build artifacts for each file in the project
@@ -1574,7 +1574,7 @@ public class GeneratedMakefileBuilder extends ACBuilder {
ErrorParserManager epm = new ErrorParserManager(project, des.getDefaultBuildDirLocationURI(), this, errorParsers);
buildRunnerHelper.prepareStreams(epm, null , console, new SubProgressMonitor(monitor, TICKS_STREAM_PROGRESS_MONITOR));
- buildRunnerHelper.greeting(ManagedMakeMessages.getResourceString("CleanFilesHandler.cleanSelectedFiles"), cfgName, toolchainName, isSupported); //$NON-NLS-1$
+ buildRunnerHelper.greeting(ManagedMakeMessages.getResourceString("GeneratedMakefileBuilder.cleanSelectedFiles"), cfgName, toolchainName, isSupported); //$NON-NLS-1$
buildRunnerHelper.printLine(ManagedMakeMessages.getResourceString("ManagedMakeBuilder.message.internal.builder.header.note")); //$NON-NLS-1$
for (IFile file : files) {
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/PluginResources.properties b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/PluginResources.properties
index 458e8f3806b..004db2f11db 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/PluginResources.properties
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/PluginResources.properties
@@ -115,7 +115,7 @@ UserDefinedMacroSupplier.storeOutputStream.wrong.arguments=Failed to persist mac
# BuildMacroStatus messages
BuildMacroStatus.status.macro.undefined=Macro {0} is undefined
-BuildFilesHandler.buildingSelectedFiles=Building Selected Files
+GeneratedMakefileBuilder.buildingSelectedFiles=Building Selected Files
BuildDescriptionGnuMakefileGenerator.0=IO exception occurred:
BuildDescriptionGnuMakefileGenerator.1=IO exception occurred:
BuildMacroStatus.status.reference.eachother=Macros {0} and {1} reference each other
@@ -144,8 +144,7 @@ ManagedBuilderCorePlugin.resourceChangeHandlingInitializationJob=Initializing Re
InternalBuilder.msg.header=Internal Builder: {0}
InternalBuilder.nothing.todo=Nothing to be done for project {0}
CfgScannerConfigUtil_ErrorNotSupported=Only type {0} is supported in this method.
-CleanFilesHandler.cleanSelectedFiles=Cleaning Selected Files
-CleanFilesHandler.cleaningFiles=Cleaning files
+GeneratedMakefileBuilder.cleanSelectedFiles=Cleaning Selected Files
BuilderFactory.1=can not find builder with the specified id
FolderInfo.4=converter invocation failed
MbsMacroSupplier.1=tool parent must be one of configuration, toolchain, or resource configuration
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.managedbuilder.ui/META-INF/MANIFEST.MF
index ff182a48d1d..9efcfcd54ae 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.managedbuilder.ui/META-INF/MANIFEST.MF
@@ -22,7 +22,8 @@ Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
org.eclipse.ui.console;bundle-version="[3.5.100,4.0.0)",
org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui.navigator;bundle-version="[3.2.0,4.0.0)";resolution:=optional
+ org.eclipse.ui.navigator;bundle-version="[3.2.0,4.0.0)";resolution:=optional,
+ org.eclipse.core.expressions
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Import-Package: com.ibm.icu.text
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties b/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties
index 6d22cd22fa1..93aea465d5f 100755
--- a/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties
+++ b/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties
@@ -37,13 +37,14 @@ propSettingsPrefName=Property Pages Settings
MngResourceProp.name=C/C++ Build
# The Project Converter page
-ConvertTargetAction.label=Convert To...
+command.convertTarget.label=Convert To...
+command.convertTarget.name=Convert To
# Build/clean selected files actions
-BuildSelectedFiles.label=Build Selected &File(s)
+command.buildFiles.label=Build Selected &File(s)
command.buildFiles.name=Build Selected File(s)
command.buildFiles.description=Rebuilds the selected source files
-CleanSelectedFiles.label=C&lean Selected File(s)
+command.cleanFiles.label=C&lean Selected File(s)
command.cleanFiles.name=Clean Selected File(s)
command.cleanFiles.description=Deletes build output files for the selected source files
@@ -83,7 +84,7 @@ Tool.settings=Tool Settings
Build.steps=Build Steps
Build.artifact=Build Artifact
Builder.settings=Builder Settings
-WBB.settings=Behaviour
+WBB.settings=Behavior
Refresh.policy=Refresh Policy
Includes=Includes
Includes.tooltip=Includes list
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml b/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml
index 32606262601..357e384856c 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml
+++ b/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml
@@ -50,6 +50,10 @@
description="%command.buildFiles.description"
categoryId="org.eclipse.cdt.managedbuilder.ui.category.build"
id="org.eclipse.cdt.managedbuilder.ui.buildFiles"/>
+
+
@@ -89,7 +96,7 @@
@@ -109,24 +116,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
files;
BuildFilesJob(List filesToBuild) {
- super(ManagedMakeMessages.getResourceString("BuildFilesHandler.buildingSelectedFiles")); //$NON-NLS-1$
+ super(Messages.BuildFilesHandler_buildingSelectedFiles);
files = filesToBuild;
}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/CleanFilesHandler.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/CleanFilesHandler.java
index 5e12e8bf17c..37074ee9126 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/CleanFilesHandler.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/CleanFilesHandler.java
@@ -21,7 +21,6 @@ import org.eclipse.cdt.internal.ui.util.AbstractResourceActionHandler;
import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
import org.eclipse.cdt.managedbuilder.internal.core.GeneratedMakefileBuilder;
-import org.eclipse.cdt.managedbuilder.internal.core.ManagedMakeMessages;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.resources.IFile;
@@ -115,7 +114,7 @@ public class CleanFilesHandler extends AbstractResourceActionHandler {
private final List files;
private CleanFilesJob(List filesToBuild) {
- super(ManagedMakeMessages.getResourceString("CleanFilesHandler.cleaningFiles")); //$NON-NLS-1$
+ super(Messages.CleanFilesHandler_cleaningFiles);
files = filesToBuild;
}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/ConvertTargetAction.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/ConvertTargetAction.java
deleted file mode 100644
index 89a70eecdff..00000000000
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/ConvertTargetAction.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2012 Intel 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:
- * Intel Corporation - initial API and implementation
- * Anna Dushistova (MontaVista) - [366771]Converter fails to convert a CDT makefile project
- *******************************************************************************/
-package org.eclipse.cdt.managedbuilder.internal.ui.actions;
-
-import java.util.Vector;
-
-import org.eclipse.cdt.managedbuilder.core.IBuildObject;
-import org.eclipse.cdt.managedbuilder.core.IConfiguration;
-import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
-import org.eclipse.cdt.managedbuilder.core.IManagedProject;
-import org.eclipse.cdt.managedbuilder.core.IProjectType;
-import org.eclipse.cdt.managedbuilder.core.IToolChain;
-import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
-import org.eclipse.cdt.managedbuilder.internal.ui.Messages;
-import org.eclipse.cdt.managedbuilder.ui.properties.ManagedBuilderUIPlugin;
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.actions.ActionDelegate;
-
-public class ConvertTargetAction
- extends ActionDelegate
- implements IObjectActionDelegate {
-
- private IProject selectedProject = null;
-
- public static final String PREFIX = "ProjectConvert"; //$NON-NLS-1$
- public static final String PROJECT_CONVERTER_DIALOG = PREFIX + ".title"; //$NON-NLS-1$
-
- public static void initStartup() {
- return;
- }
-
- @Override
- public void selectionChanged(IAction action, ISelection selection) {
- if (selection instanceof IStructuredSelection) {
- IStructuredSelection sel = (IStructuredSelection) selection;
- Object obj = sel.getFirstElement();
- if (obj instanceof IProject) {
- IProject project = (IProject)obj;
- // Save the selected project.
- setSelectedProject(project);
- return;
- }
- }
- setSelectedProject(null);
- }
-
- private IProjectType getProjectType(IProject project) {
- IProjectType projectType = null;
-
- // Get the projectType from project.
- IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);
- if (info != null) {
- IManagedProject managedProject = info.getManagedProject();
- if ( managedProject != null )
- projectType = managedProject.getProjectType();
- }
- return projectType;
- }
-
- private Vector getProjectToolchains(IProject project) {
- Vector projectToolchains = new Vector();
-
- // Get the projectType from project.
- IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);
- if (info != null) {
- IConfiguration[] configs = info.getManagedProject().getConfigurations();
- for (IConfiguration config : configs) {
- IToolChain tc = config.getToolChain();
- if (tc != null) {
- projectToolchains.add(tc);
- }
- }
- }
- return projectToolchains;
- }
-
- @Override
- public void run(IAction action) {
- Shell shell = CUIPlugin.getActiveWorkbenchShell();
-
- // Check whether the converters available for the selected project
- // If there are no converters display error dialog otherwise display converters list
-
- if( ManagedBuildManager.hasTargetConversionElements(getProjectType(getSelectedProject())) == true ||
- ManagedBuildManager.hasAnyTargetConversionElements(getProjectToolchains(getSelectedProject()))) {
- handleConvertTargetAction();
- } else {
- MessageDialog.openError(shell,Messages.ConvertTargetAction_No_Converter,
- NLS.bind(Messages.ProjectConvert_noConverterErrordialog_message, new String[] {getSelectedProject().getName()}) );
- }
- }
-
- private void handleConvertTargetAction() {
- Shell shell = ManagedBuilderUIPlugin.getDefault().getShell();
-
- String projectName = getSelectedProject().getName();
- String title = NLS.bind(Messages.ProjectConvert_title, new String(projectName));
- ConvertTargetDialog dialog = new ConvertTargetDialog(shell, getSelectedProject(), title);
- if ( dialog.open() == ConvertTargetDialog.OK ) {
- if ( ConvertTargetDialog.isConversionSuccessful() == false) {
- MessageDialog.openError(shell, Messages.ProjectConvert_conversionErrordialog_title,
- NLS.bind(Messages.ProjectConvert_conversionErrordialog_message, projectName));
- }
- }
- return;
- }
-
- @Override
- public void setActivePart(IAction action, IWorkbenchPart targetPart) {
- // TODO Auto-generated method stub
- }
-
- /**
- * @return Returns the selectedProject.
- */
- private IProject getSelectedProject() {
- return selectedProject;
- }
-
- /**
- * @param selectedProject The selectedProject to set.
- */
- private void setSelectedProject(IProject selectedProject) {
- this.selectedProject = selectedProject;
- }
-}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/ConvertTargetDialog.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/ConvertTargetDialog.java
index e5de8c8b859..812220e1b3a 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/ConvertTargetDialog.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/ConvertTargetDialog.java
@@ -7,13 +7,15 @@
*
* Contributors:
* Intel Corporation - initial API and implementation
- * Anna Dushistova (MontaVista) - [366771]Converter fails to convert a CDT makefile project
+ * Anna Dushistova (MontaVista) - [366771] Converter fails to convert a CDT makefile project
+ * Sergey Prigogin (Google)
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.internal.ui.actions;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
-import java.util.Vector;
import org.eclipse.cdt.managedbuilder.core.IBuildObject;
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
@@ -23,7 +25,7 @@ import org.eclipse.cdt.managedbuilder.core.IManagedProject;
import org.eclipse.cdt.managedbuilder.core.IProjectType;
import org.eclipse.cdt.managedbuilder.core.IToolChain;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
-import org.eclipse.cdt.managedbuilder.internal.ui.Messages;
+import org.eclipse.cdt.managedbuilder.ui.properties.ManagedBuilderUIPlugin;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
@@ -39,35 +41,33 @@ import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
public class ConvertTargetDialog extends Dialog {
-
final private String title;
- protected List convertersList;
+ protected org.eclipse.swt.widgets.List convertersList;
private IProject project;
private Map conversionElements;
private IConfigurationElement selectedConversionElement;
private static boolean isConversionSuccessful = false;
public static final String PREFIX = "ProjectConvert"; //$NON-NLS-1$
- public static final String CONVERTERS_LIST = PREFIX +".convertersList"; //$NON-NLS-1$
-
+ public static final String CONVERTERS_LIST = PREFIX + ".convertersList"; //$NON-NLS-1$
/**
- * @param parentShell
- * @param project
- * @param title The title of the dialog
+ * @param parentShell the parent shell
+ * @param project the project to convert
+ * @param title the title of the dialog
*/
protected ConvertTargetDialog(Shell parentShell, IProject project, String title) {
super(parentShell);
this.title = title;
setProject(project);
- if (getProjectType() != null) {
- conversionElements = ManagedBuildManager.getConversionElements(getProjectType());
+ IProjectType projectType = getProjectType();
+ if (projectType != null) {
+ conversionElements = ManagedBuildManager.getConversionElements(projectType);
}
for (IBuildObject tc : getProjectToolchains()) {
Map converters = ManagedBuildManager.getConversionElements(tc);
@@ -80,34 +80,29 @@ public class ConvertTargetDialog extends Dialog {
}
}
- setShellStyle(getShellStyle()|SWT.RESIZE);
+ setShellStyle(getShellStyle() | SWT.RESIZE);
}
@Override
protected void buttonPressed(int buttonId) {
if (buttonId == IDialogConstants.OK_ID) {
-
handleConverterSelection();
IConvertManagedBuildObject convertBuildObject = null;
try {
- convertBuildObject = (IConvertManagedBuildObject) getSelectedConversionElement()
- .createExecutableExtension("class"); //$NON-NLS-1$
+ convertBuildObject =
+ (IConvertManagedBuildObject) getSelectedConversionElement().createExecutableExtension("class"); //$NON-NLS-1$
} catch (CoreException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ ManagedBuilderUIPlugin.log(e);
}
if (convertBuildObject != null) {
- String fromId = getSelectedConversionElement().getAttribute(
- "fromId"); //$NON-NLS-1$
- String toId = getSelectedConversionElement().getAttribute(
- "toId"); //$NON-NLS-1$
+ String fromId = getSelectedConversionElement().getAttribute("fromId"); //$NON-NLS-1$
+ String toId = getSelectedConversionElement().getAttribute("toId"); //$NON-NLS-1$
IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(getProject());
if (info != null) {
IManagedProject managedProject = info.getManagedProject();
if (managedProject != null) {
- if (convertBuildObject.convert(managedProject, fromId,
- toId, true) == null) {
+ if (convertBuildObject.convert(managedProject, fromId, toId, true) == null) {
setConversionSuccessful(false);
} else {
setConversionSuccessful(true);
@@ -135,7 +130,6 @@ public class ConvertTargetDialog extends Dialog {
@Override
protected Control createDialogArea(Composite parent) {
-
Composite comp = new Composite(parent, SWT.NULL);
comp.setFont(parent.getFont());
comp.setLayout(new GridLayout(1, true));
@@ -149,7 +143,7 @@ public class ConvertTargetDialog extends Dialog {
convertersListGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
// Create the current config List
- convertersList = new List(convertersListGroup, SWT.SINGLE|SWT.V_SCROLL|SWT.H_SCROLL|SWT.BORDER);
+ convertersList = new org.eclipse.swt.widgets.List(convertersListGroup, SWT.SINGLE|SWT.V_SCROLL|SWT.H_SCROLL|SWT.BORDER);
convertersList.setFont(convertersListGroup.getFont());
GridData data = new GridData(GridData.FILL_BOTH);
convertersList.setLayoutData(data);
@@ -240,22 +234,21 @@ public class ConvertTargetDialog extends Dialog {
ConvertTargetDialog.isConversionSuccessful = isConversionSuccessful;
}
- private Vector getProjectToolchains() {
- Vector projectToolchains = new Vector();
+ private List getProjectToolchains() {
+ List projectToolchains = new ArrayList<>();
// Get the projectType from project.
IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(getProject());
if (info != null) {
IConfiguration[] configs = info.getManagedProject().getConfigurations();
for (IConfiguration config : configs) {
- IToolChain tc = config.getToolChain();
- if (tc != null) {
- projectToolchains.add(tc);
+ IToolChain toolchain = config.getToolChain();
+ if (toolchain != null) {
+ projectToolchains.add(toolchain);
}
}
}
return projectToolchains;
}
-
}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/ConvertTargetHandler.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/ConvertTargetHandler.java
new file mode 100644
index 00000000000..8c45bef2e17
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/ConvertTargetHandler.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2014 Intel 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:
+ * Intel Corporation - initial API and implementation
+ * Anna Dushistova (MontaVista) - [366771] Converter fails to convert a CDT makefile project
+ * Sergey Prigogin (Google)
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.internal.ui.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.cdt.internal.ui.util.AbstractResourceActionHandler;
+import org.eclipse.cdt.managedbuilder.core.IBuildObject;
+import org.eclipse.cdt.managedbuilder.core.IConfiguration;
+import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
+import org.eclipse.cdt.managedbuilder.core.IManagedProject;
+import org.eclipse.cdt.managedbuilder.core.IProjectType;
+import org.eclipse.cdt.managedbuilder.core.IToolChain;
+import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+public class ConvertTargetHandler extends AbstractResourceActionHandler {
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ Shell shell = HandlerUtil.getActiveShellChecked(event);
+
+ IProject project;
+ IStructuredSelection selection = getSelection(event);
+ if (selection.size() != 1)
+ return null;
+
+ Object obj = selection.getFirstElement();
+ if (!(obj instanceof IProject))
+ return null;
+
+ project = (IProject) obj;
+
+ // Check whether the converters available for the selected project.
+ // If there are no converters display error dialog otherwise display converters list.
+ if (hasTargetConverters(project)) {
+ handleConvertTargetAction(project, shell);
+ } else {
+ MessageDialog.openError(shell, Messages.ConvertTargetHandler_No_Converter,
+ NLS.bind(Messages.ProjectConvert_noConverterErrorDialog_message, new String[] {project.getName()}) );
+ }
+ return null;
+ }
+
+ public static boolean hasTargetConverters(IProject project) {
+ return ManagedBuildManager.hasTargetConversionElements(getProjectType(project)) ||
+ ManagedBuildManager.hasAnyTargetConversionElements(getProjectToolchains(project));
+ }
+
+ private static IProjectType getProjectType(IProject project) {
+ IProjectType projectType = null;
+
+ // Get the projectType from project.
+ IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);
+ if (info != null) {
+ IManagedProject managedProject = info.getManagedProject();
+ if (managedProject != null)
+ projectType = managedProject.getProjectType();
+ }
+ return projectType;
+ }
+
+ private static List getProjectToolchains(IProject project) {
+ List projectToolchains = new ArrayList<>();
+
+ // Get the projectType from project.
+ IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);
+ if (info != null) {
+ IConfiguration[] configs = info.getManagedProject().getConfigurations();
+ for (IConfiguration config : configs) {
+ IToolChain toolchain = config.getToolChain();
+ if (toolchain != null) {
+ projectToolchains.add(toolchain);
+ }
+ }
+ }
+ return projectToolchains;
+ }
+
+ private static void handleConvertTargetAction(IProject project, Shell shell) {
+ String title = NLS.bind(Messages.ProjectConvert_title, project.getName());
+ ConvertTargetDialog dialog = new ConvertTargetDialog(shell, project, title);
+ if (dialog.open() != ConvertTargetDialog.OK)
+ return;
+ if (!ConvertTargetDialog.isConversionSuccessful()) {
+ MessageDialog.openError(shell, Messages.ProjectConvert_conversionErrordialog_title,
+ NLS.bind(Messages.ProjectConvert_conversionErrordialog_message, project.getName()));
+ }
+ }
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/Messages.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/Messages.java
new file mode 100644
index 00000000000..313b1070c65
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/Messages.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2011 Andrew Gvozdev 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:
+ * Andrew Gvozdev - Initial API and implementation
+ * IBM Corporation
+ * Sergey Prigogin (Google)
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.internal.ui.actions;
+
+import org.eclipse.osgi.util.NLS;
+
+class Messages extends NLS {
+ public static String BuildFilesHandler_buildingSelectedFiles;
+ public static String CleanFilesHandler_cleaningFiles;
+ public static String ConvertTargetHandler_No_Converter;
+ public static String ProjectConvert_noConverterErrorDialog_message;
+ public static String ProjectConvert_title;
+ public static String ProjectConvert_conversionErrordialog_message;
+ public static String ProjectConvert_conversionErrordialog_title;
+ public static String ProjectConvert_convertersList;
+
+ static {
+ // Initialize resource bundle.
+ NLS.initializeMessages(Messages.class.getName(), Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/Messages.properties b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/Messages.properties
new file mode 100755
index 00000000000..5f20f5f6693
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/Messages.properties
@@ -0,0 +1,24 @@
+###############################################################################
+# Copyright (c) 2000, 2011 IBM Corporation, 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
+#
+# Contributors:
+# IBM - Initial API and implementation
+# Andrew Gvozdev (Quoin Inc.) - Combined managedbuilder.ui bundles to NLS message format, bug 318812
+# Sergey Prigogin (Google)
+###############################################################################
+
+BuildFilesHandler_buildingSelectedFiles=Building Selected Files
+CleanFilesHandler_cleanSelectedFiles=Cleaning Selected Files
+CleanFilesHandler_cleaningFiles=Cleaning files
+
+# Project Conversion Dialog messages
+ProjectConvert_conversionErrordialog_title=Project Conversion Error
+ProjectConvert_conversionErrordialog_message=Error has occurred during the conversion of the project {0} .
+ProjectConvert_noConverterErrorDialog_message=There are no converters available to convert the project {0} .
+ProjectConvert_title=Project Converters for {0}
+ProjectConvert_convertersList=Converters List
+ConvertTargetHandler_No_Converter=No converter
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/ProjectPropertyTester.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/ProjectPropertyTester.java
new file mode 100644
index 00000000000..5f13d48f9a2
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/actions/ProjectPropertyTester.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Google, Inc 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:
+ * Sergey Prigogin (Google) - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.internal.ui.actions;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.core.resources.IProject;
+
+public class ProjectPropertyTester extends PropertyTester {
+ private static final String PROP_HAS_TARGET_CONVERTERS = "hasTargetConverters"; //$NON-NLS-1$
+
+ @Override
+ public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
+ if (!(receiver instanceof IProject) || args.length != 0)
+ return false;
+ if (property.equals(PROP_HAS_TARGET_CONVERTERS)) {
+ return ConvertTargetHandler.hasTargetConverters((IProject) receiver);
+ }
+ return false;
+ }
+}
diff --git a/core/org.eclipse.cdt.ui/plugin.xml b/core/org.eclipse.cdt.ui/plugin.xml
index 1d840b89267..5cfce5c2437 100644
--- a/core/org.eclipse.cdt.ui/plugin.xml
+++ b/core/org.eclipse.cdt.ui/plugin.xml
@@ -3406,7 +3406,8 @@
id="org.eclipse.cdt.ui.indexer">
-
+
@@ -3417,7 +3418,8 @@
id="org.eclipse.cdt.ui.fileTypes">
-
+
@@ -3428,7 +3430,8 @@
id="org.eclipse.cdt.ui.cHelp">
-
+
@@ -3439,7 +3442,8 @@
name="%CDTLanguagesProperty.name">
-
+
@@ -3463,7 +3467,8 @@
id="org.eclipse.cdt.ui.propertyPages.CodeFormatterPreferencePage">
-
+
@@ -3475,7 +3480,8 @@
-
+
@@ -3487,9 +3493,10 @@
-
+
+ value="org.eclipse.cdt.core/language.settings.providers.disabled=false"/>
@@ -3769,7 +3776,8 @@
-
+
@@ -3797,7 +3805,8 @@
-
+
@@ -3811,7 +3820,8 @@
-
+
@@ -3844,7 +3854,8 @@
-
+
@@ -3858,7 +3869,8 @@
-
+
@@ -3878,7 +3890,8 @@
-
+
@@ -3898,7 +3911,8 @@
-
+
@@ -3913,7 +3927,8 @@
-
+
@@ -3928,7 +3943,8 @@
-
+
@@ -3943,7 +3959,8 @@
-
+
@@ -3958,7 +3975,8 @@
-
+
@@ -3972,7 +3990,8 @@
-
+