diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/CPropertyVarsTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/CPropertyVarsTab.java index cf74ff5b755..ef2d7ae1aa3 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/CPropertyVarsTab.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/CPropertyVarsTab.java @@ -243,7 +243,7 @@ public class CPropertyVarsTab extends AbstractCPropertyTab { public void buttonPressed(int index){ switch(index){ case 0:{ - NewVarDialog dlg = new NewVarDialog(usercomp.getShell(), null, cfgd); + NewVarDialog dlg = new NewVarDialog(usercomp.getShell(), null, cfgd, mgr.getVariables(cfgd)); if(dlg.open() == Dialog.OK){ ICdtVariable macro = dlg.getDefinedMacro(); if(canCreate(macro)) { @@ -265,7 +265,7 @@ public class CPropertyVarsTab extends AbstractCPropertyTab { case 1:{ ICdtVariable _vars[] = getSelectedUserMacros(); if(_vars != null && _vars.length == 1){ - NewVarDialog dlg = new NewVarDialog(usercomp.getShell() ,_vars[0], cfgd); + NewVarDialog dlg = new NewVarDialog(usercomp.getShell() ,_vars[0], cfgd, mgr.getVariables(cfgd)); if(dlg.open() == Dialog.OK){ ICdtVariable macro = dlg.getDefinedMacro(); if(canCreate(macro)) { diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/NewVarDialog.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/NewVarDialog.java index 913dfc489b9..5fc01146752 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/NewVarDialog.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/NewVarDialog.java @@ -93,10 +93,10 @@ public class NewVarDialog extends Dialog { private Composite fListEditorContainier; private FileListControl fListEditor; - ICConfigurationDescription cfgd; - + private ICConfigurationDescription cfgd; + private ICdtVariable[] vars; - public NewVarDialog(Shell parentShell, ICdtVariable editedMacro, ICConfigurationDescription _cfgd) { + public NewVarDialog(Shell parentShell, ICdtVariable editedMacro, ICConfigurationDescription _cfgd, ICdtVariable[] _vars) { super(parentShell); cfgd = _cfgd; if(editedMacro != null) @@ -104,6 +104,7 @@ public class NewVarDialog extends Dialog { else fTitle = UIMessages.getString(TITLE_NEW); fEditedMacro = editedMacro; + vars = _vars; } /* (non-Javadoc) @@ -239,10 +240,9 @@ public class NewVarDialog extends Dialog { // fListEditor.setContext(fMacrosBlock.getContextInfo()); if(fEditedMacro != null){ - loadMacroSettings(fEditedMacro,true); + loadVar(fEditedMacro); fMacroNameEdit.setEnabled(false); } - return comp; } @@ -250,18 +250,13 @@ public class NewVarDialog extends Dialog { * get the names to be displayed in the var Name combo. */ private String[] getMacroNames(){ - IBuildMacro macros[] = null; - //TODO: - //fMacrosBlock.getSystemMacros(true); String names[] = null; - if(macros == null || macros.length == 0) + if(vars == null || vars.length == 0) names = new String[0]; else{ - names = new String[macros.length]; - for(int i = 0; i < macros.length; i++){ - names[i] = macros[i].getName(); - } - + names = new String[vars.length]; + for(int i = 0; i < vars.length; i++) + names[i] = vars[i].getName(); final Collator collator = Collator.getInstance(); Arrays.sort(names, new Comparator() { public int compare(final Object a, final Object b) { @@ -271,7 +266,6 @@ public class NewVarDialog extends Dialog { } }); } - return names; } @@ -319,55 +313,48 @@ public class NewVarDialog extends Dialog { */ private void handleMacroNameSelection(){ int index = fMacroNameEdit.getSelectionIndex(); - if(index == -1) - loadMacroSettings(null); - else - loadMacroSettings(fMacroNameEdit.getItem(index)); + if (index != -1) + loadVarSettings(fMacroNameEdit.getItem(index)); } - private void loadMacroSettings(String name){ - IBuildMacro macro = null; - // TODO: - // fMacrosBlock.getSystemMacro(name,true); - if(macro != null) - loadMacroSettings(macro,false); + private void loadVarSettings(String name) { + ICdtVariable v = null; + for (int i=0; i