diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/AbstractLangsListTab.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/AbstractLangsListTab.java index 354891faf92..dc5365bbd7b 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/AbstractLangsListTab.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/AbstractLangsListTab.java @@ -291,7 +291,7 @@ public abstract class AbstractLangsListTab extends AbstractCPropertyTab { ICLanguageSetting langSetting = (ICLanguageSetting) items[0].getData(); if (langSetting != null) { lang = langSetting; - selectedLanguageId = lang.getLanguageId(); + selectedLanguageId = getLanguageId(lang); update(); } } @@ -380,20 +380,11 @@ public abstract class AbstractLangsListTab extends AbstractCPropertyTab { for (ICLanguageSetting langSetting : ls) { if ((langSetting.getSupportedEntryKinds() & getKind()) != 0) { TreeItem t = new TreeItem(langTree, SWT.NONE); - String langId = langSetting.getLanguageId(); - if (langId != null && !langId.equals(EMPTY_STR)) { - // Bug #178033: get language name via LangManager. - ILanguageDescriptor langDes = LanguageManager.getInstance().getLanguageDescriptor(langId); - if (langDes == null) - langId = null; - else - langId = langDes.getName(); - } - if (langId == null || langId.equals(EMPTY_STR)) - langId = langSetting.getName(); + String langId = getLanguageId(langSetting); t.setText(0, langId); t.setData(langSetting); - if (selectedItem == null || langSetting.getLanguageId().equals(selectedLanguageId)) { + if (selectedItem == null + || (selectedLanguageId != null && selectedLanguageId.equals(langId))) { selectedItem = t; lang = langSetting; } @@ -407,6 +398,21 @@ public abstract class AbstractLangsListTab extends AbstractCPropertyTab { update(); } + private String getLanguageId(ICLanguageSetting langSetting) { + String langId = langSetting.getLanguageId(); + if (langId != null && !langId.equals(EMPTY_STR)) { + // Bug #178033: get language name via LangManager. + ILanguageDescriptor langDes = LanguageManager.getInstance().getLanguageDescriptor(langId); + if (langDes == null) + langId = null; + else + langId = langDes.getName(); + } + if (langId == null || langId.equals(EMPTY_STR)) + langId = langSetting.getName(); + return langId; + } + private void updateExport() { exported = new ArrayList(); ICExternalSetting[] extSettings = getResDesc().getConfiguration().getExternalSettings();