From 27d49dfd542d0a9b241790c30a01418c8316c339 Mon Sep 17 00:00:00 2001 From: Anna Dushistova Date: Wed, 2 May 2012 03:17:42 +0400 Subject: Patch for bug 366771 Change-Id: Ib95c2b9c475f25196d1c399d65b12c715f8e5e1e Reviewed-on: https://git.eclipse.org/r/5778 Reviewed-by: Doug Schaefer IP-Clean: Doug Schaefer Tested-by: Doug Schaefer --- .../internal/ui/actions/ConvertTargetAction.java | 27 +++++++++++++-- .../internal/ui/actions/ConvertTargetDialog.java | 39 ++++++++++++++++++++-- 2 files changed, 62 insertions(+), 4 deletions(-) (limited to 'build/org.eclipse.cdt.managedbuilder.ui') 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 index fbc2ef77086..89a70eecdff 100644 --- 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 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2010 Intel Corporation and others. + * 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 @@ -7,12 +7,18 @@ * * 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; @@ -69,6 +75,22 @@ public class ConvertTargetAction 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) { @@ -77,7 +99,8 @@ public class ConvertTargetAction // 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 ) { + if( ManagedBuildManager.hasTargetConversionElements(getProjectType(getSelectedProject())) == true || + ManagedBuildManager.hasAnyTargetConversionElements(getProjectToolchains(getSelectedProject()))) { handleConvertTargetAction(); } else { MessageDialog.openError(shell,Messages.ConvertTargetAction_No_Converter, 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 dbc97ae271a..e5de8c8b859 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 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2010 Intel Corporation and others. + * 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 @@ -7,16 +7,21 @@ * * 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.HashMap; import java.util.Map; +import java.util.Vector; +import org.eclipse.cdt.managedbuilder.core.IBuildObject; +import org.eclipse.cdt.managedbuilder.core.IConfiguration; import org.eclipse.cdt.managedbuilder.core.IConvertManagedBuildObject; 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.core.resources.IProject; @@ -61,7 +66,19 @@ public class ConvertTargetDialog extends Dialog { this.title = title; setProject(project); - conversionElements = ManagedBuildManager.getConversionElements(getProjectType()); + if (getProjectType() != null) { + conversionElements = ManagedBuildManager.getConversionElements(getProjectType()); + } + for (IBuildObject tc : getProjectToolchains()) { + Map converters = ManagedBuildManager.getConversionElements(tc); + if (converters != null) { + if (conversionElements == null) { + conversionElements = converters; + } else { + conversionElements.putAll(converters); + } + } + } setShellStyle(getShellStyle()|SWT.RESIZE); } @@ -222,5 +239,23 @@ public class ConvertTargetDialog extends Dialog { public void setConversionSuccessful(boolean isConversionSuccessful) { ConvertTargetDialog.isConversionSuccessful = isConversionSuccessful; } + + private Vector getProjectToolchains() { + Vector projectToolchains = new Vector(); + + // 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); + } + } + } + return projectToolchains; + } + } -- cgit v1.2.3