diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerConfigBuilderInfo2.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerConfigBuilderInfo2.java index 2d53f399e6b..7324b2eb2f1 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerConfigBuilderInfo2.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerConfigBuilderInfo2.java @@ -31,7 +31,7 @@ public interface IScannerConfigBuilderInfo2 { String getSelectedProfileId(); void setSelectedProfileId(String profileId); - List getProfileIdList(); + List getProfileIdList(); // SCD profile - buildOutputProvider options boolean isBuildOutputFileActionEnabled(); @@ -44,7 +44,7 @@ public interface IScannerConfigBuilderInfo2 { void setBuildOutputParserEnabled(boolean enable); // SCD profile - scanner info provider options - List getProviderIdList(); + List getProviderIdList(); // void addSIProvider(String providerId); // void removeSIProvider(String providerId); diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerConfigBuilderInfo2Set.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerConfigBuilderInfo2Set.java index db4f250eaf3..01047f709ca 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerConfigBuilderInfo2Set.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerConfigBuilderInfo2Set.java @@ -21,7 +21,7 @@ public interface IScannerConfigBuilderInfo2Set { * * @return InfoContext - to IScannerConfigBuilderInfo2 map */ - Map getInfoMap(); + Map getInfoMap(); IScannerConfigBuilderInfo2 getInfo(InfoContext context); diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/ScannerConfigInfoFactory2.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/ScannerConfigInfoFactory2.java index 6a39de1ab04..62a8a5acedb 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/ScannerConfigInfoFactory2.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/ScannerConfigInfoFactory2.java @@ -534,9 +534,10 @@ public class ScannerConfigInfoFactory2 { /* (non-Javadoc) * @see org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2#getSIProviderIdList() */ - public List getProviderIdList() { + @SuppressWarnings("unchecked") + public List getProviderIdList() { ProfileOptions po = (ProfileOptions) profileOptionsMap.get(selectedProfile); - return (po != null) ? new ArrayList(po.providerOptionsMap.keySet()) : new ArrayList(0); + return (po != null) ? new ArrayList(po.providerOptionsMap.keySet()) : new ArrayList(0); } /* (non-Javadoc) 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 48266df6fe9..f71fb073a53 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 @@ -3735,9 +3735,9 @@ public class ManagedBuildManager extends AbstractCExtension implements IScannerI * Generic function for getting the list of converters for the given Build Object */ - public static Map getConversionElements(IBuildObject buildObj) { + public static Map getConversionElements(IBuildObject buildObj) { - Map conversionTargets = new HashMap(); + Map conversionTargets = new HashMap(); // Get the Converter Extension Point IExtensionPoint extensionPoint = Platform.getExtensionRegistry() diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/MultiConfiguration.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/MultiConfiguration.java index 01b563acc2b..7910da5e2e3 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/MultiConfiguration.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/MultiConfiguration.java @@ -1213,4 +1213,18 @@ public class MultiConfiguration extends MultiItemsHolder implements CCorePlugin.log(e); } } + + public String getBuildAttribute(String name, String defValue) { + String res = defValue; + IBuilder b = fCfgs[0].getBuilder(); + if (b != null) + res = b.getBuildAttribute(name, defValue); + for (int i=1; i projects = null; private ActionContributionItem it_all = null; private ActionContributionItem it_sel = null; @@ -87,7 +87,7 @@ IWorkbenchWindowPulldownDelegate2, IObjectActionDelegate, IMenuCreator { if (prjd == null) continue; ICConfigurationDescription[] cfgds = prjd.getConfigurations(); if (cfgds != null && cfgds.length > 0) { - if (projects == null) projects = new ArrayList(); + if (projects == null) projects = new ArrayList(); projects.add(prj); } } @@ -174,12 +174,15 @@ IWorkbenchWindowPulldownDelegate2, IObjectActionDelegate, IMenuCreator { } public void run() { - if (projects == null || projects.isEmpty()) return; - Iterator it = projects.iterator(); + if (projects == null || projects.isEmpty()) + return; + Iterator it = projects.iterator(); if (forAll) { - while(it.hasNext()) processProject((IProject)it.next()); + while(it.hasNext()) + processProject((IProject)it.next()); } else { - if (it.hasNext()) processProject((IProject)it.next()); + if (it.hasNext()) + processProject((IProject)it.next()); } } diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/actions/BuildFilesAction.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/actions/BuildFilesAction.java index 2ed4dbfeb55..cddc1854b26 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/actions/BuildFilesAction.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/actions/BuildFilesAction.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2007 Texas Instruments Incorporated and others. + * Copyright (c) 2006, 2008 Texas Instruments Incorporated 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 @@ -147,9 +147,9 @@ public class BuildFilesAction extends ActionDelegate implements * * @return a list of resources */ - private List getSelectedBuildableFiles() { + private List getSelectedBuildableFiles() { - List files = new LinkedList(); + List files = new LinkedList(); ISelectionService selectionService = workbenchWindow .getSelectionService(); @@ -157,7 +157,7 @@ public class BuildFilesAction extends ActionDelegate implements if (selection instanceof IStructuredSelection) { IStructuredSelection structuredSelection = (IStructuredSelection) selection; - for (Iterator elements = structuredSelection.iterator(); elements + for (Iterator elements = structuredSelection.iterator(); elements .hasNext();) { IFile file = convertToIFile(elements.next()); if (file != null) { @@ -182,9 +182,9 @@ public class BuildFilesAction extends ActionDelegate implements } private static final class BuildFilesJob extends Job { - private final List files; + private final List files; - BuildFilesJob(List filesToBuild) { + BuildFilesJob(List filesToBuild) { super( ManagedMakeMessages .getResourceString("BuildFilesAction.buildingSelectedFiles")); //$NON-NLS-1$ @@ -197,7 +197,7 @@ public class BuildFilesAction extends ActionDelegate implements */ protected IStatus run(IProgressMonitor monitor) { - Iterator iterator = files.iterator(); + Iterator iterator = files.iterator(); GeneratedMakefileBuilder builder = new GeneratedMakefileBuilder(); @@ -251,7 +251,7 @@ public class BuildFilesAction extends ActionDelegate implements */ public void run(IAction action) { - List selectedFiles = getSelectedBuildableFiles(); + List selectedFiles = getSelectedBuildableFiles(); Job buildFilesJob = new BuildFilesJob(selectedFiles); @@ -283,7 +283,7 @@ public class BuildFilesAction extends ActionDelegate implements return false; } - for (Iterator elements = structuredSelection.iterator(); elements + for (Iterator elements = structuredSelection.iterator(); elements .hasNext();) { IFile file = convertToIFile(elements.next()); if (file != null) { diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/actions/CleanFilesAction.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/actions/CleanFilesAction.java index 1c7ea195f84..9d0a99f5af8 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/actions/CleanFilesAction.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/actions/CleanFilesAction.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2007 Texas Instruments Incorporated and others. + * Copyright (c) 2006, 2008 Texas Instruments Incorporated 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 @@ -147,9 +147,9 @@ public class CleanFilesAction extends ActionDelegate implements * * @return a list of resources */ - private List getSelectedBuildableFiles() { + private List getSelectedBuildableFiles() { - List files = new LinkedList(); + List files = new LinkedList(); ISelectionService selectionService = workbenchWindow .getSelectionService(); @@ -157,7 +157,7 @@ public class CleanFilesAction extends ActionDelegate implements if (selection instanceof IStructuredSelection) { IStructuredSelection structuredSelection = (IStructuredSelection) selection; - for (Iterator elements = structuredSelection.iterator(); elements + for (Iterator elements = structuredSelection.iterator(); elements .hasNext();) { IFile file = convertToIFile(elements.next()); if (file != null) { @@ -180,11 +180,11 @@ public class CleanFilesAction extends ActionDelegate implements } private static final class CleanFilesJob extends Job { - private final List files; + private final List files; - protected Vector generationProblems; + protected Vector generationProblems; - private CleanFilesJob(String name, List filesToBuild) { + private CleanFilesJob(String name, List filesToBuild) { super(name); files = filesToBuild; } @@ -217,7 +217,7 @@ public class CleanFilesAction extends ActionDelegate implements ManagedMakeMessages .getResourceString("CleanFilesAction.cleaningFiles"), files.size()); //$NON-NLS-1$ - Iterator iterator = files.iterator(); + Iterator iterator = files.iterator(); // clean each file while (iterator.hasNext() && !monitor.isCanceled()) { @@ -254,7 +254,7 @@ public class CleanFilesAction extends ActionDelegate implements */ public void run(IAction action) { - List selectedFiles = getSelectedBuildableFiles(); + List selectedFiles = getSelectedBuildableFiles(); CleanFilesJob job = new CleanFilesJob( ManagedMakeMessages @@ -288,7 +288,7 @@ public class CleanFilesAction extends ActionDelegate implements return false; } - for (Iterator elements = structuredSelection.iterator(); elements + for (Iterator elements = structuredSelection.iterator(); elements .hasNext();) { IFile file = convertToIFile(elements.next()); if (file != null) { diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/actions/ConvertTargetDialog.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/actions/ConvertTargetDialog.java index c11e8f80da0..a1c86be23e4 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/actions/ConvertTargetDialog.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/actions/ConvertTargetDialog.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2007 Intel Corporation and others. + * Copyright (c) 2005, 2008 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 @@ -43,7 +43,7 @@ public class ConvertTargetDialog extends Dialog { final private String title; protected List convertersList; private IProject project; - private Map conversionElements; + private Map conversionElements; private IConfigurationElement selectedConversionElement; private static boolean isConversionSuccessful = false; @@ -173,9 +173,9 @@ public class ConvertTargetDialog extends Dialog { b.setEnabled(convertersList.getSelectionIndex() != -1); } - private Map getConversionElements() { + private Map getConversionElements() { if (conversionElements == null) { - conversionElements = new HashMap(); + conversionElements = new HashMap(); } return conversionElements; } diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ArtifactTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ArtifactTab.java index 6de01147ce4..882a723a741 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ArtifactTab.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ArtifactTab.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007 Intel Corporation and others. + * Copyright (c) 2007, 2008 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 @@ -46,6 +46,7 @@ public class ArtifactTab extends AbstractCBuildPropertyTab { private IBuildObjectProperties fProperties; private IBuildPropertyValue[] values; private ITool tTool; + private boolean canModify = true; public void createControls(Composite parent) { super.createControls(parent); @@ -68,7 +69,8 @@ public class ArtifactTab extends AbstractCBuildPropertyTab { t2.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); t2.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { - fCfg.setArtifactName(t2.getText()); + if (canModify) + fCfg.setArtifactName(t2.getText()); }} ); Label l3 = new Label(usercomp, SWT.NONE); l3.setLayoutData(new GridData(GridData.BEGINNING)); @@ -77,7 +79,8 @@ public class ArtifactTab extends AbstractCBuildPropertyTab { t3.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); t3.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { - fCfg.setArtifactExtension(t3.getText()); + if (canModify) + fCfg.setArtifactExtension(t3.getText()); }} ); l4 = new Label(usercomp, SWT.NONE); @@ -87,11 +90,12 @@ public class ArtifactTab extends AbstractCBuildPropertyTab { t4.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); t4.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { - if(tTool != null) - tTool.setOutputPrefixForPrimaryOutput(t4.getText()); - else if (fCfg instanceof IMultiConfiguration) - ((IMultiConfiguration)fCfg).setOutputPrefixForPrimaryOutput(t4.getText()); - + if (canModify) { + if(tTool != null) + tTool.setOutputPrefixForPrimaryOutput(t4.getText()); + else if (fCfg instanceof IMultiConfiguration) + ((IMultiConfiguration)fCfg).setOutputPrefixForPrimaryOutput(t4.getText()); + } }} ); updateData(getResDesc()); } @@ -145,31 +149,40 @@ public class ArtifactTab extends AbstractCBuildPropertyTab { } String s = fCfg.getArtifactName(); - if (s == null || s.trim().length() == 0) { + if (! page.isMultiCfg() && (s == null || s.trim().length() == 0)) { s = getResDesc().getConfiguration().getProjectDescription().getName(); getCfg().setArtifactName(CWizardHandler.removeSpaces(s)); } - t2.setText(s); + canModify = false; + + t2.setText(s); t3.setText(fCfg.getArtifactExtension()); - tTool = fCfg.calculateTargetTool(); - if(tTool != null){ - if (l4 != null) l4.setVisible(true); - if (t4 != null) { - t4.setVisible(true); - t4.setText(tTool.getOutputPrefix()); - } - } else if (page.isMultiCfg()) { - if (l4 != null) l4.setVisible(true); + if (page.isMultiCfg()) { + if (l4 != null) + l4.setVisible(true); if (t4 != null) { t4.setVisible(true); t4.setText(((IMultiConfiguration)fCfg).getToolOutputPrefix()); } } else { - if (l4 != null) l4.setVisible(false); - if (t4 != null) t4.setVisible(false); + tTool = fCfg.calculateTargetTool(); + if(tTool != null){ + if (l4 != null) + l4.setVisible(true); + if (t4 != null) { + t4.setVisible(true); + t4.setText(tTool.getOutputPrefix()); + } + } else { + if (l4 != null) + l4.setVisible(false); + if (t4 != null) + t4.setVisible(false); + } } + canModify = true; } public void performApply(ICResourceDescription src, ICResourceDescription dst) { diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildBehaviourTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildBehaviourTab.java index c2045279e7e..ccd985ea2e1 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildBehaviourTab.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildBehaviourTab.java @@ -18,6 +18,7 @@ import org.eclipse.cdt.managedbuilder.core.IConfiguration; import org.eclipse.cdt.managedbuilder.core.IMultiConfiguration; import org.eclipse.cdt.managedbuilder.internal.buildmodel.BuildProcessManager; import org.eclipse.cdt.managedbuilder.internal.core.Configuration; +import org.eclipse.cdt.managedbuilder.internal.core.MultiConfiguration; import org.eclipse.cdt.newmake.core.IMakeBuilderInfo; import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.ui.newui.AbstractCPropertyTab; @@ -64,6 +65,7 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab { private IBuilder bldr; private IConfiguration icfg; + private boolean canModify = true; protected final int cpuNumber = BuildProcessManager.checkCPUNumber(); @@ -153,7 +155,8 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab { t_autoBuild = setupBlock(g4, b_autoBuild); t_autoBuild.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { - setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_AUTO, t_autoBuild.getText()); + if (canModify) + setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_AUTO, t_autoBuild.getText()); }} ); t_autoBuild.getAccessible().addAccessibleListener(makeTargetLabelAccessibleListener); setupLabel(g4, Messages.getString("BuilderSettingsTab.18"), 3, GridData.BEGINNING); //$NON-NLS-1$ @@ -161,14 +164,16 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab { t_cmdBuild = setupBlock(g4, b_cmdBuild); t_cmdBuild.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { - setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREMENTAL, t_cmdBuild.getText()); + if (canModify) + setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREMENTAL, t_cmdBuild.getText()); }} ); t_cmdBuild.getAccessible().addAccessibleListener(makeTargetLabelAccessibleListener); b_cmdClean = setupCheck(g4, Messages.getString("BuilderSettingsTab.20"), 1, GridData.BEGINNING); //$NON-NLS-1$ t_cmdClean = setupBlock(g4, b_cmdClean); t_cmdClean.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { - setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_CLEAN, t_cmdClean.getText()); + if (canModify) + setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_CLEAN, t_cmdClean.getText()); }} ); t_cmdClean.getAccessible().addAccessibleListener(makeTargetLabelAccessibleListener); } @@ -242,7 +247,7 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab { */ protected void updateButtons() { bldr = icfg.getEditableBuilder(); - + canModify = false; int[] extStates = calc3states(page, icfg, 1); if (extStates != null) { @@ -290,9 +295,17 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab { b_parallelNum.setSelection(!getParallelDef(icfg)); } } - t_autoBuild.setText(bldr.getBuildAttribute(IBuilder.BUILD_TARGET_AUTO, EMPTY_STR)); - t_cmdBuild.setText(bldr.getBuildAttribute(IBuilder.BUILD_TARGET_INCREMENTAL, EMPTY_STR)); - t_cmdClean.setText(bldr.getBuildAttribute(IBuilder.BUILD_TARGET_CLEAN, EMPTY_STR)); + + if (page.isMultiCfg()) { + MultiConfiguration mc = (MultiConfiguration)icfg; + t_autoBuild.setText(mc.getBuildAttribute(IBuilder.BUILD_TARGET_AUTO, EMPTY_STR)); + t_cmdBuild.setText(mc.getBuildAttribute(IBuilder.BUILD_TARGET_INCREMENTAL, EMPTY_STR)); + t_cmdClean.setText(mc.getBuildAttribute(IBuilder.BUILD_TARGET_CLEAN, EMPTY_STR)); + } else { + t_autoBuild.setText(bldr.getBuildAttribute(IBuilder.BUILD_TARGET_AUTO, EMPTY_STR)); + t_cmdBuild.setText(bldr.getBuildAttribute(IBuilder.BUILD_TARGET_INCREMENTAL, EMPTY_STR)); + t_cmdClean.setText(bldr.getBuildAttribute(IBuilder.BUILD_TARGET_CLEAN, EMPTY_STR)); + } boolean external = ! isInternalBuilderEnabled(); boolean parallel = b_parallel.getSelection(); @@ -314,6 +327,7 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab { checkPressed(b_cmdBuild, false); checkPressed(b_cmdClean, false); } + canModify = true; } /** diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildStepsTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildStepsTab.java index ee3cc5323c9..d187383154b 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildStepsTab.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildStepsTab.java @@ -39,15 +39,16 @@ import org.eclipse.swt.widgets.Text; public class BuildStepsTab extends AbstractCBuildPropertyTab { - Combo combo; - Text preCmd; - Text preDes; - Text postCmd; - Text postDes; - ITool tool; - IConfiguration config; - ICResourceDescription cfgdescr; - IFileInfo rcfg; + private Combo combo; + private Text preCmd; + private Text preDes; + private Text postCmd; + private Text postDes; + private ITool tool; + private IConfiguration config; + private ICResourceDescription cfgdescr; + private IFileInfo rcfg; + private boolean canModify = true; private static final String label1 = Messages.getString("BuildStepsTab.0"); //$NON-NLS-1$ private static final String label2 = Messages.getString("BuildStepsTab.1"); //$NON-NLS-1$ @@ -94,14 +95,18 @@ public class BuildStepsTab extends AbstractCBuildPropertyTab { preCmd = setupText(g1, 1, GridData.FILL_HORIZONTAL); preCmd.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { - getCfg().setPrebuildStep(preCmd.getText()); + if (canModify && + !preCmd.getText().equals(getCfg().getPrebuildStep())) + getCfg().setPrebuildStep(preCmd.getText()); }}); setupLabel(g1, label2, 1, GridData.BEGINNING); preDes = setupText(g1, 1, GridData.FILL_HORIZONTAL); preDes.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { - getCfg().setPreannouncebuildStep(preDes.getText()); + if (canModify && + !preDes.getText().equals(getCfg().getPreannouncebuildStep())) + getCfg().setPreannouncebuildStep(preDes.getText()); }}); Group g2 = setupGroup (usercomp, Messages.getString("BuildStepsTab.3"), 1, GridData.FILL_HORIZONTAL); //$NON-NLS-1$ @@ -109,14 +114,18 @@ public class BuildStepsTab extends AbstractCBuildPropertyTab { postCmd = setupText(g2, 1, GridData.FILL_HORIZONTAL); postCmd.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { - getCfg().setPostbuildStep(postCmd.getText()); + if (canModify && + !postCmd.getText().equals(getCfg().getPostbuildStep())) + getCfg().setPostbuildStep(postCmd.getText()); }}); setupLabel(g2, label2, 1, GridData.BEGINNING); postDes = setupText(g2, 1, GridData.FILL_HORIZONTAL); postDes.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { - getCfg().setPostannouncebuildStep(postDes.getText()); + if (canModify && + !postDes.getText().equals(getCfg().getPostannouncebuildStep())) + getCfg().setPostannouncebuildStep(postDes.getText()); }}); } @@ -138,9 +147,10 @@ public class BuildStepsTab extends AbstractCBuildPropertyTab { preCmd = setupText(g1, 1, GridData.FILL_HORIZONTAL); preCmd.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { - if (page.isForProject()) - getCfg().setPrebuildStep(preCmd.getText()); - else { + // if (page.isForProject()) + // getCfg().setPrebuildStep(preCmd.getText()); + // else + if (canModify && tool != null) { IInputType[] ein = tool.getInputTypes(); if (ein != null && ein.length > 0) { IAdditionalInput[] add = ein[0].getAdditionalInputs(); @@ -155,9 +165,10 @@ public class BuildStepsTab extends AbstractCBuildPropertyTab { preDes = setupText(g1, 1, GridData.FILL_HORIZONTAL); preDes.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { - if (page.isForProject()) - getCfg().setPreannouncebuildStep(preDes.getText()); - else { +// if (page.isForProject()) +// getCfg().setPreannouncebuildStep(preDes.getText()); +// else { + if (canModify && tool != null) { IOutputType[] out = tool.getOutputTypes(); if (valid(out)) out[0].setOutputNames(preDes.getText()); @@ -168,9 +179,10 @@ public class BuildStepsTab extends AbstractCBuildPropertyTab { postCmd = setupText(g1, 1, GridData.FILL_HORIZONTAL); postCmd.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { - if (page.isForProject()) - getCfg().setPostbuildStep(postCmd.getText()); - else +// if (page.isForProject()) +// getCfg().setPostbuildStep(postCmd.getText()); +// else + if (canModify && tool != null) tool.setToolCommand(postCmd.getText()); }}); @@ -178,9 +190,10 @@ public class BuildStepsTab extends AbstractCBuildPropertyTab { postDes = setupText(g1, 1, GridData.FILL_HORIZONTAL); postDes.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { - if (page.isForProject()) - getCfg().setPostannouncebuildStep(postDes.getText()); - else +// if (page.isForProject()) +// getCfg().setPostannouncebuildStep(postDes.getText()); +// else + if (canModify && tool != null) tool.setAnnouncement(postDes.getText()); }}); } @@ -192,7 +205,8 @@ public class BuildStepsTab extends AbstractCBuildPropertyTab { update(); } - private void update() { + private void update() { + canModify = false; // avoid changing if (page.isForProject()) { preCmd.setText(config.getPrebuildStep()); preDes.setText(config.getPreannouncebuildStep()); @@ -227,6 +241,7 @@ public class BuildStepsTab extends AbstractCBuildPropertyTab { postDes.setText(EMPTY_STR); } } + canModify = true; } private ITool getRcbsTool(IFileInfo rcConfig){ diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildToolSettingUI.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildToolSettingUI.java index edfb277c9b3..8ecf52a04a4 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildToolSettingUI.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildToolSettingUI.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. + * Copyright (c) 2004, 2008 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 @@ -101,7 +101,7 @@ public class BuildToolSettingUI extends AbstractToolSettingUI { private ITool fTool; // Map that holds all user object options and its values - private HashMap userObjsMap; + private HashMap userObjsMap; public BuildToolSettingUI(AbstractCBuildPropertyTab page, IResourceInfo info, ITool _tool) { @@ -111,7 +111,7 @@ public class BuildToolSettingUI extends AbstractToolSettingUI { this.fTool = _tool; buildPropPage = page; stringOptionsMap = new HashMap(); - userObjsMap = new HashMap(); + userObjsMap = new HashMap(); } /* (non-Javadoc) @@ -364,21 +364,18 @@ public class BuildToolSettingUI extends AbstractToolSettingUI { } } // "OBJECTS" type - Set objSet = userObjsMap.keySet(); + Set objSet = userObjsMap.keySet(); for (int s = 0; s < objSet.size(); s++) { - Iterator iterator = objSet.iterator(); - while (iterator.hasNext()) { - Object key = iterator.next(); - String val = (String) userObjsMap.get(key); + for (IOption op : objSet) { + String val = (String) userObjsMap.get(op); ArrayList list = new ArrayList(); - String[] vals = parseString(val); - for (int t = 0; t < vals.length; t++) { - if (alloptions.indexOf(vals[t]) != -1) - list.add(vals[t]); + for (String v : parseString(val)) { + if (alloptions.indexOf(v) != -1) + list.add(v); } String listArr[] = new String[list.size()]; list.toArray(listArr); - setOption(((IOption) key), listArr); + setOption(op, listArr); } } // Now update the preference store with parsed options @@ -418,12 +415,10 @@ public class BuildToolSettingUI extends AbstractToolSettingUI { case IOption.PREPROCESSOR_SYMBOLS : case IOption.LIBRARIES : ArrayList newList = new ArrayList(); - for (int i = 0; i < optionsList.size(); i++) { + for (String s : optionsList) { if (opt.getCommand() != null - && ((String) optionsList.get(i)).startsWith(opt - .getCommand())) { - newList.add(((String) optionsList.get(i)) - .substring(opt.getCommand().length())); + && s.startsWith(opt.getCommand())) { + newList.add(s.substring(opt.getCommand().length())); } } String[] strlist = new String[newList.size()]; diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuilderSettingsTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuilderSettingsTab.java index c1bed12e586..243109ae39b 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuilderSettingsTab.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuilderSettingsTab.java @@ -17,6 +17,7 @@ import org.eclipse.cdt.managedbuilder.core.IConfiguration; import org.eclipse.cdt.managedbuilder.core.IMultiConfiguration; import org.eclipse.cdt.managedbuilder.internal.core.Builder; import org.eclipse.cdt.managedbuilder.internal.core.Configuration; +import org.eclipse.cdt.managedbuilder.internal.core.MultiConfiguration; import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.ui.newui.AbstractCPropertyTab; import org.eclipse.core.runtime.CoreException; @@ -55,6 +56,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab { private IBuilder bldr; private IConfiguration icfg; + private boolean canModify = true; public void createControls(Composite parent) { super.createControls(parent); @@ -79,6 +81,8 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab { t_buildCmd = setupBlock(g1, b_useDefault); t_buildCmd.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { + if (! canModify) + return; String fullCommand = t_buildCmd.getText().trim(); String buildCommand = parseMakeCommand(fullCommand); String buildArgs = fullCommand.substring(buildCommand.length()).trim(); @@ -101,7 +105,8 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab { t_dir = setupText(group_dir, 1, GridData.FILL_HORIZONTAL); t_dir.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { - setBuildPath(t_dir.getText()); + if (canModify) + setBuildPath(t_dir.getText()); }} ); Composite c = new Composite(group_dir, SWT.NONE); setupControl(c, 2, GridData.FILL_HORIZONTAL); @@ -126,6 +131,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab { protected void updateButtons() { bldr = icfg.getEditableBuilder(); + canModify = false; // avoid extra update from modifyListeners int[] extStates = BuildBehaviourTab.calc3states(page, icfg, 0); b_genMakefileAuto.setEnabled(icfg.supportsBuild(true)); @@ -183,6 +189,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab { if (external) { // just set relatet text widget state, checkPressed(b_useDefault, false); // do not update } + canModify = true; } Button setupBottomButton(Composite c, String name) { @@ -384,7 +391,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab { if (icfg instanceof Configuration) return ((Configuration)icfg).isInternalBuilderEnabled(); if (icfg instanceof IMultiConfiguration) - return ((IMultiConfiguration)icfg).isInternalBuilderEnabled(); + return ((MultiConfiguration)icfg).isInternalBuilderEnabled(); return false; } diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/DiscoveryTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/DiscoveryTab.java index fce7ff52b4a..43e0f775dd5 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/DiscoveryTab.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/DiscoveryTab.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007 Intel Corporation and others. + * Copyright (c) 2007, 2008 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 @@ -13,7 +13,6 @@ package org.eclipse.cdt.managedbuilder.ui.properties; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -82,11 +81,11 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf private Group scGroup; private ICfgScannerConfigBuilderInfo2Set cbi; - private Map baseInfoMap; + private Map baseInfoMap; private IScannerConfigBuilderInfo2 buildInfo; private CfgInfoContext iContext; - private List pagesList = null; - private List visibleProfilesList = null; + private List pagesList = null; + private List visibleProfilesList = null; private IPath configPath; private AbstractDiscoveryPage[] realPages; protected SashForm sashForm; @@ -172,7 +171,7 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf profileComboBox.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { int x = profileComboBox.getSelectionIndex(); - String s = (String)visibleProfilesList.get(x); + String s = visibleProfilesList.get(x); buildInfo.setSelectedProfileId(s); handleDiscoveryProfileChanged(); } @@ -188,10 +187,10 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf public void updateData(ICResourceDescription rcfg) { if (page.isMultiCfg()) { - usercomp.setVisible(false); + setAllVisible(false, null); return; } else { - usercomp.setVisible(true); + setAllVisible(true, null); configPath = rcfg.getPath(); IConfiguration cfg = getCfg(rcfg.getConfiguration()); cbi = CfgScannerConfigProfileManager.getCfgScannerConfigBuildInfo(cfg); @@ -210,13 +209,11 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf if (scopeComboBox != null) scopeComboBox.select(cbi.isPerRcTypeDiscovery() ? 0 : 1); - Map m = cbi.getInfoMap(); - Iterator it = m.keySet().iterator(); + Map m = cbi.getInfoMap(); int pos = resTable.getSelectionIndex(); resTable.removeAll(); - while (it.hasNext()) { + for (CfgInfoContext ic : m.keySet()) { String s = null; - CfgInfoContext ic = (CfgInfoContext)it.next(); IResourceInfo rci = ic.getResourceInfo(); if (rci == null) { // per configuration s = ic.getConfiguration().getName(); @@ -276,9 +273,9 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf scProblemReportingEnabledButton.setSelection(buildInfo.isProblemReportingEnabled()); profileComboBox.removeAll(); - List profilesList = buildInfo.getProfileIdList(); + List profilesList = buildInfo.getProfileIdList(); Collections.sort(profilesList, CDTListComparator.getInstance()); - visibleProfilesList = new ArrayList(profilesList.size()); + visibleProfilesList = new ArrayList(profilesList.size()); if (realPages != null && realPages.length > 0) { for (int i=0; i(5); IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint( NAMESPACE, POINT); if (point == null) return; @@ -488,7 +482,7 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf } private void clearChangedDiscoveredInfos(){ - List changedContexts = checkChanges(); + List changedContexts = checkChanges(); IProject project = getProject(); for(int i = 0; i < changedContexts.size(); i++){ CfgInfoContext c = (CfgInfoContext)changedContexts.get(i); @@ -497,14 +491,14 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf } } - private List checkChanges(){ + private List checkChanges(){ if(cbi == null || baseInfoMap == null) - return new ArrayList(0); + return new ArrayList(0); Map cfgInfoMap = cbi.getInfoMap(); HashMap baseCopy = new HashMap(baseInfoMap); List list = new ArrayList(); - for(Map.Entry entry : cfgInfoMap.entrySet()){ + for(Map.Entry entry : cfgInfoMap.entrySet()){ CfgInfoContext cic = (CfgInfoContext)entry.getKey(); InfoContext c = cic.toInfoContext(); if(c == null) @@ -553,7 +547,7 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf return true; } - private boolean listEqual(List l1, List l2) { + private boolean listEqual(List l1, List l2) { if (l1 == null && l2 == null) return true; if (l2 == null || l2 == null) return false; if (l1.size() != l2.size()) return false; @@ -561,9 +555,8 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf // since it's most probable, try it first. if (l1.equals(l2)) return true; // order may differ... - Iterator it = l1.iterator(); - while (it.hasNext()) - if (!l2.contains(it.next())) return false; + for (String s : l1) + if (!l2.contains(s)) return false; return true; } diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolChainEditTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolChainEditTab.java index 5dc8897a750..1509574f0d3 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolChainEditTab.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolChainEditTab.java @@ -171,10 +171,10 @@ public class ToolChainEditTab extends AbstractCBuildPropertyTab { protected void updateData(ICResourceDescription rcfg) { if (page.isMultiCfg()) { - usercomp.setVisible(false); + setAllVisible(false, null); return; } else { - usercomp.setVisible(true); + setAllVisible(true, null); } cfg = getCfg(rcfg.getConfiguration()); ri = cfg.getResourceInfo(rcfg.getPath(), false); diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/AbstractCWizard.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/AbstractCWizard.java index 30090f44e58..f28d18ab0a2 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/AbstractCWizard.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/AbstractCWizard.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007 Intel Corporation and others. + * Copyright (c) 2007, 2008 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 @@ -66,9 +66,9 @@ public abstract class AbstractCWizard extends CNewWizard { // Check for platform compatibility ITargetPlatform tp = tc.getTargetPlatform(); if (tp != null) { - List osList = Arrays.asList(tc.getOSList()); + List osList = Arrays.asList(tc.getOSList()); if (osList.contains(ALL) || osList.contains(os)) { - List archList = Arrays.asList(tc.getArchList()); + List archList = Arrays.asList(tc.getArchList()); if (archList.contains(ALL) || archList.contains(arch)) return true; // OS and ARCH fits } diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/CDTConfigWizardPage.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/CDTConfigWizardPage.java index c86c5f163a2..21020274e51 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/CDTConfigWizardPage.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/CDTConfigWizardPage.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007 Intel Corporation and others. + * Copyright (c) 2007, 2008 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 @@ -82,13 +82,12 @@ public class CDTConfigWizardPage extends WizardPage { if (getDefault || table == null || !isVisited()) its = getDefaultCfgs(handler); else { - ArrayList out = new ArrayList(table.getItemCount()); - TableItem[] tis = table.getItems(); - for (int i=0; i < tis.length; i++) { - if (tis[i].getChecked()) - out.add(tis[i].getData()); + ArrayList out = new ArrayList(table.getItemCount()); + for (TableItem ti : table.getItems()) { + if (ti.getChecked()) + out.add((CfgHolder)ti.getData()); } - its = (CfgHolder[])out.toArray(new CfgHolder[out.size()]); + its = out.toArray(new CfgHolder[out.size()]); } return its; } @@ -189,19 +188,18 @@ public class CDTConfigWizardPage extends WizardPage { * @return */ static public CfgHolder[] getDefaultCfgs(MBSWizardHandler handler) { - IToolChain[] tcs = handler.getSelectedToolChains(); String id = handler.getPropertyId(); IProjectType pt = handler.getProjectType(); - ArrayList out = new ArrayList(tcs.length * 2); - for (int i=0; i < tcs.length; i++) { + ArrayList out = new ArrayList(); + for (IToolChain tc : handler.getSelectedToolChains()){ CfgHolder[] cfgs = null; if (id != null) - cfgs = CfgHolder.cfgs2items(ManagedBuildManager.getExtensionConfigurations(tcs[i], MBSWizardHandler.ARTIFACT, id)); + cfgs = CfgHolder.cfgs2items(ManagedBuildManager.getExtensionConfigurations(tc, MBSWizardHandler.ARTIFACT, id)); else if (pt != null) - cfgs = CfgHolder.cfgs2items(ManagedBuildManager.getExtensionConfigurations(tcs[i], pt)); + cfgs = CfgHolder.cfgs2items(ManagedBuildManager.getExtensionConfigurations(tc, pt)); else { // Create default configuration for StdProject cfgs = new CfgHolder[1]; - cfgs[0] = new CfgHolder(tcs[i], null); + cfgs[0] = new CfgHolder(tc, null); } if (cfgs == null) return null; @@ -210,7 +208,7 @@ public class CDTConfigWizardPage extends WizardPage { out.add(cfgs[j]); } } - return (CfgHolder[])out.toArray(new CfgHolder[out.size()]); + return out.toArray(new CfgHolder[out.size()]); } /** diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/CfgHolder.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/CfgHolder.java index 18c514d5e06..ce195bc31d5 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/CfgHolder.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/CfgHolder.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007 Intel Corporation and others. + * Copyright (c) 2007, 2008 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 @@ -158,7 +158,7 @@ public class CfgHolder { */ public static CfgHolder[] reorder(CfgHolder[] its) { - ArrayList ls = new ArrayList(its.length); + ArrayList ls = new ArrayList(its.length); boolean found = true; while (found) { found = false; @@ -185,7 +185,7 @@ public class CfgHolder { } } } - return (CfgHolder[])ls.toArray(new CfgHolder[ls.size()]); + return ls.toArray(new CfgHolder[ls.size()]); } @@ -193,10 +193,11 @@ public class CfgHolder { * Note that null configurations are ignored ! */ public static IConfiguration[] items2cfgs(CfgHolder[] its) { - ArrayList lst = new ArrayList(its.length); - for (int i=0; i lst = new ArrayList(its.length); + for (CfgHolder h : its) + if (h.cfg != null) + lst.add(h.cfg); + return lst.toArray(new IConfiguration[lst.size()]); } public IConfiguration getTcCfg() { diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSWizardHandler.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSWizardHandler.java index 937052c2849..3ca5cd0af25 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSWizardHandler.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSWizardHandler.java @@ -582,7 +582,7 @@ public class MBSWizardHandler extends CWizardHandler { * @ */ - public void updatePreferred(List prefs) { + public void updatePreferred(List prefs) { int x = table.getItemCount(); for (int i=0; i getSettingEntriesList(int kind); // ICLanguageSettingEntry[] getResolvedSettingEntries(); @@ -39,7 +39,7 @@ public interface ICLanguageSetting extends ICSettingObject { void setSettingEntries(int kind, ICLanguageSettingEntry[] entries); - void setSettingEntries(int kind, List entriesList); + void setSettingEntries(int kind, List entriesList); // void changeEntries(ICLanguageSettingEntryInfo[] added, ICLanguageSettingEntry[] removed); diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/EntryStore.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/EntryStore.java index f07e8a7c5c7..4cf86de2ead 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/EntryStore.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/EntryStore.java @@ -13,7 +13,6 @@ package org.eclipse.cdt.core.settings.model.util; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Set; @@ -24,7 +23,6 @@ import org.eclipse.cdt.core.settings.model.ICLibraryFileEntry; import org.eclipse.cdt.core.settings.model.ICLibraryPathEntry; import org.eclipse.cdt.core.settings.model.ICMacroEntry; import org.eclipse.cdt.core.settings.model.ICMacroFileEntry; -import org.eclipse.cdt.core.settings.model.ICSettingEntry; public class EntryStore { private KindBasedStore fStore = new KindBasedStore(); @@ -39,40 +37,35 @@ public class EntryStore { } public EntryStore(EntryStore base, boolean preserveReadOnly){ - int kinds[] = KindBasedStore.getLanguageEntryKinds(); - int kind; - for(int i = 0; i < kinds.length; i++){ - kind = kinds[i]; - ArrayList list = (ArrayList)fStore.get(kind); + for(int kind : KindBasedStore.getLanguageEntryKinds()){ + ArrayList list = (ArrayList)fStore.get(kind); if(list != null) - fStore.put(kind, (ArrayList)list.clone()); + fStore.put(kind, (ArrayList)list.clone()); } fPreserveReadOnly = preserveReadOnly; } + @SuppressWarnings("unchecked") public ICLanguageSettingEntry[] getEntries(){ - int kinds[] = KindBasedStore.getLanguageEntryKinds(); - List result = new ArrayList(); - List list; - for(int i = 0; i < kinds.length; i++){ - list = (List)fStore.get(kinds[i]); + List result = new ArrayList(); + List list; + for(int k: KindBasedStore.getLanguageEntryKinds()){ + list = (List)fStore.get(k); if(list != null) result.addAll(list); } - - return (ICLanguageSettingEntry[])result.toArray(new ICLanguageSettingEntry[result.size()]); + return result.toArray(new ICLanguageSettingEntry[result.size()]); } public boolean containsEntriesList(int kind){ - List list = getEntriesList(kind, false); + List list = getEntriesList(kind, false); return list != null; } public ICLanguageSettingEntry[] getEntries(int kind){ - List list = getEntriesList(kind); -// if(list != null){ + List list = getEntriesList(kind); if(list == null) - list = new ArrayList(0); + list = new ArrayList(0); switch(kind){ case ICLanguageSettingEntry.INCLUDE_PATH: return (ICLanguageSettingEntry[])list.toArray(new ICIncludePathEntry[list.size()]); @@ -89,25 +82,24 @@ public class EntryStore { default: throw new IllegalArgumentException(); } -// } -// return null; } - public List getEntriesList(int kind){ - List list = getEntriesList(kind, false); + public List getEntriesList(int kind){ + List list = getEntriesList(kind, false); if(list != null) - return new ArrayList(list); - return new ArrayList(0); + return new ArrayList(list); + return new ArrayList(0); } - private void setEntriesList(int kind, List list){ + private void setEntriesList(int kind, List list){ fStore.put(kind, list); } - private List getEntriesList(int kind, boolean create){ - List list = (List)fStore.get(kind); + @SuppressWarnings("unchecked") + private List getEntriesList(int kind, boolean create){ + List list = (List)fStore.get(kind); if(list == null && create){ - fStore.put(kind, list = new ArrayList()); + fStore.put(kind, list = new ArrayList()); } return list; } @@ -117,7 +109,7 @@ public class EntryStore { // } public void addEntry(int pos, ICLanguageSettingEntry entry){ - List list = getEntriesList(entry.getKind(), true); + List list = getEntriesList(entry.getKind(), true); if(pos >= list.size()) list.add(entry); else @@ -131,19 +123,21 @@ public class EntryStore { } public void storeEntries(int kind, ICLanguageSettingEntry[] entries){ - storeEntries(kind, entries != null ? Arrays.asList(entries) : new ArrayList()); + storeEntries(kind, + entries != null ? + Arrays.asList(entries) : + new ArrayList()); } - public void storeEntries(int kind, List list){ - List newList = new ArrayList(list); + public void storeEntries(int kind, List list){ + List newList = new ArrayList(list); // newList.addAll(Arrays.asList(entries)); if(fPreserveReadOnly){ - List oldList = getEntriesList(kind, false); + List oldList = getEntriesList(kind, false); if(oldList != null){ - Set ro = getReadOnlySet(oldList); + Set ro = getReadOnlySet(oldList); ro.removeAll(newList); - for(Iterator iter = oldList.iterator(); iter.hasNext();){ - Object o = iter.next(); + for(ICLanguageSettingEntry o : oldList){ if(ro.contains(o)) newList.add(o); } @@ -152,10 +146,9 @@ public class EntryStore { setEntriesList(kind, newList); } - private Set getReadOnlySet(List entries){ - Set set = new HashSet(); - for(Iterator iter = entries.iterator(); iter.hasNext();){ - ICSettingEntry entry = (ICSettingEntry)iter.next(); + private Set getReadOnlySet(List entries){ + Set set = new HashSet(); + for(ICLanguageSettingEntry entry : entries){ if(entry.isReadOnly()) set.add(entry); } @@ -163,14 +156,16 @@ public class EntryStore { } public void addEntry(ICLanguageSettingEntry entry){ - List list = getEntriesList(entry.getKind(), true); + List list = getEntriesList(entry.getKind(), true); list.add(entry); } + @SuppressWarnings("unchecked") public void trimToSize(){ int kinds[] = KindBasedStore.getLanguageEntryKinds(); for(int i = 0; i < kinds.length; i++){ - ArrayList list = (ArrayList)fStore.get(kinds[i]); + ArrayList list = + (ArrayList)fStore.get(kinds[i]); if(list != null) list.trimToSize(); } diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CLanguageSetting.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CLanguageSetting.java index d343de46e81..8dabb0dddb9 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CLanguageSetting.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CLanguageSetting.java @@ -11,7 +11,6 @@ package org.eclipse.cdt.internal.core.settings.model; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import org.eclipse.cdt.core.settings.model.ICLanguageSetting; @@ -62,11 +61,11 @@ public class CLanguageSetting extends CDataProxy implements return data.getEntries(kind); } - public List getSettingEntriesList(int kind) { + public List getSettingEntriesList(int kind) { CLanguageData data = getCLanguageData(false); ICLanguageSettingEntry entries[] = data.getEntries(kind); int size = entries != null ? entries.length : 0; - List arrayList = new ArrayList(size); + List arrayList = new ArrayList(size); for(int i = 0; i < size; i++){ arrayList.add(entries[i]); } @@ -290,7 +289,7 @@ public class CLanguageSetting extends CDataProxy implements return result; } - public void setSettingEntries(int kind, List list) { + public void setSettingEntries(int kind, List list) { CLanguageData data = getCLanguageData(true); EntryStore store = new EntryStore(); // KindBasedStore nameSetStore = new KindBasedStore(); @@ -298,8 +297,7 @@ public class CLanguageSetting extends CDataProxy implements if(list != null){ if(list.size() != 0){ - for(Iterator iter = list.iterator(); iter.hasNext();){ - ICLanguageSettingEntry entry = (ICLanguageSettingEntry)iter.next(); + for(ICLanguageSettingEntry entry : list){ eKind = entry.getKind(); if((kind & eKind) != 0 && (data.getSupportedEntryKinds() & eKind) != 0){ store.addEntry(entry); @@ -307,9 +305,9 @@ public class CLanguageSetting extends CDataProxy implements } } else { int kinds[] = KindBasedStore.getLanguageEntryKinds(); - for(int i = 0; i < kinds.length; i++){ - if((kinds[i] & kind) != 0){ - store.storeEntries(kinds[i], new ICLanguageSettingEntry[0]); + for(int k : kinds){ + if((k & kind) != 0){ + store.storeEntries(k, new ICLanguageSettingEntry[0]); } } } diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CLanguageSettingCache.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CLanguageSettingCache.java index 58a3dd42c35..2cabeb2f3ee 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CLanguageSettingCache.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CLanguageSettingCache.java @@ -113,7 +113,7 @@ public class CLanguageSettingCache extends CDefaultLanguageData implements return fStore.getEntries(kind); } - public List getSettingEntriesList(int kind) { + public List getSettingEntriesList(int kind) { // int kinds[] = KindBasedStore.getSupportedKinds(); // List list = new ArrayList(); // for(int i = 0; i < kinds.length; i++){ @@ -135,7 +135,7 @@ public class CLanguageSettingCache extends CDefaultLanguageData implements throw ExceptionFactory.createIsReadOnlyException(); } - public void setSettingEntries(int kind, List entriesList) { + public void setSettingEntries(int kind, List entriesList) { throw ExceptionFactory.createIsReadOnlyException(); } diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/MultiLanguageSetting.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/MultiLanguageSetting.java index 619bd86e642..9b5bee5737d 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/MultiLanguageSetting.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/MultiLanguageSetting.java @@ -26,12 +26,12 @@ import org.eclipse.cdt.core.settings.model.MultiItemsHolder; * Normally, they should have the same name. */ public class MultiLanguageSetting extends MultiItemsHolder implements ICLanguageSetting { - private static final Comparator comp = CDTListComparator.getInstance(); + private static final Comparator comp = CDTListComparator.getInstance(); ICLanguageSetting[] items = null; ICConfigurationDescription cfgd = null; - public MultiLanguageSetting(List data, ICConfigurationDescription cf) { + public MultiLanguageSetting(List data, ICConfigurationDescription cf) { items = (ICLanguageSetting[])data.toArray(new ICLanguageSetting[data.size()]); cfgd = cf; } @@ -73,7 +73,7 @@ public class MultiLanguageSetting extends MultiItemsHolder implements ICLanguage /* (non-Javadoc) * @see org.eclipse.cdt.core.settings.model.ICLanguageSetting#getSettingEntriesList(int) */ - public List getSettingEntriesList(int kind) { + public List getSettingEntriesList(int kind) { return Arrays.asList(getSettingEntries(kind)); } @@ -125,7 +125,7 @@ public class MultiLanguageSetting extends MultiItemsHolder implements ICLanguage /* (non-Javadoc) * @see org.eclipse.cdt.core.settings.model.ICLanguageSetting#setSettingEntries(int, java.util.List) */ - public void setSettingEntries(int kind, List entriesList) { + public void setSettingEntries(int kind, List entriesList) { for (int i=0; i