mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
tidy up - using language id to keep track of current language rather
than ICLanguageSetting
This commit is contained in:
parent
d2a59fe2f3
commit
d192508e91
2 changed files with 34 additions and 64 deletions
|
@ -88,7 +88,7 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
|
||||||
private Tree treeLanguages;
|
private Tree treeLanguages;
|
||||||
private Tree treeEntries;
|
private Tree treeEntries;
|
||||||
private TreeViewer treeEntriesViewer;
|
private TreeViewer treeEntriesViewer;
|
||||||
private ICLanguageSetting currentLanguageSetting = null;
|
private String currentLanguageId = null;
|
||||||
private ICLanguageSetting[] allLanguages;
|
private ICLanguageSetting[] allLanguages;
|
||||||
|
|
||||||
private Button builtInCheckBox;
|
private Button builtInCheckBox;
|
||||||
|
@ -125,7 +125,7 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
|
||||||
// if (LanguageSettingsManager.isWorkspaceProvider(provider))
|
// if (LanguageSettingsManager.isWorkspaceProvider(provider))
|
||||||
// provider = LanguageSettingsManager.getRawWorkspaceProvider(provider.getId());
|
// provider = LanguageSettingsManager.getRawWorkspaceProvider(provider.getId());
|
||||||
//
|
//
|
||||||
if (currentLanguageSetting != null) {
|
if (currentLanguageId != null) {
|
||||||
IResource rc = getResource();
|
IResource rc = getResource();
|
||||||
List<ICLanguageSettingEntry> entries = getSettingEntries(provider);
|
List<ICLanguageSettingEntry> entries = getSettingEntries(provider);
|
||||||
if (entries == null && !(rc instanceof IProject)) {
|
if (entries == null && !(rc instanceof IProject)) {
|
||||||
|
@ -136,8 +136,7 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
|
||||||
} else if (provider instanceof ILanguageSettingsEditableProvider && (page.isForFile() || page.isForFolder())) {
|
} else if (provider instanceof ILanguageSettingsEditableProvider && (page.isForFile() || page.isForFolder())) {
|
||||||
// Assuming that the default entries for a resource are always null.
|
// Assuming that the default entries for a resource are always null.
|
||||||
// Using that for performance reasons. See note in PerformDefaults().
|
// Using that for performance reasons. See note in PerformDefaults().
|
||||||
String languageId = currentLanguageSetting.getLanguageId();
|
List<ICLanguageSettingEntry> entriesParent = provider.getSettingEntries(null, null, currentLanguageId);
|
||||||
List<ICLanguageSettingEntry> entriesParent = provider.getSettingEntries(null, null, languageId);
|
|
||||||
if (entries!=null && !entries.equals(entriesParent)) {
|
if (entries!=null && !entries.equals(entriesParent)) {
|
||||||
overlayKeys[IDecoration.TOP_RIGHT] = CDTSharedImages.IMG_OVR_SETTING;
|
overlayKeys[IDecoration.TOP_RIGHT] = CDTSharedImages.IMG_OVR_SETTING;
|
||||||
}
|
}
|
||||||
|
@ -289,16 +288,12 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
|
||||||
* @return list of setting entries for the current context.
|
* @return list of setting entries for the current context.
|
||||||
*/
|
*/
|
||||||
private List<ICLanguageSettingEntry> getSettingEntriesUpResourceTree(ILanguageSettingsProvider provider) {
|
private List<ICLanguageSettingEntry> getSettingEntriesUpResourceTree(ILanguageSettingsProvider provider) {
|
||||||
if (currentLanguageSetting==null)
|
if (currentLanguageId==null)
|
||||||
return null;
|
|
||||||
|
|
||||||
String languageId = currentLanguageSetting.getLanguageId();
|
|
||||||
if (languageId==null)
|
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||||
IResource rc = getResource();
|
IResource rc = getResource();
|
||||||
List<ICLanguageSettingEntry> entries = LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, cfgDescription, rc, languageId);
|
List<ICLanguageSettingEntry> entries = LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, cfgDescription, rc, currentLanguageId);
|
||||||
return entries;
|
return entries;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -307,13 +302,12 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
|
||||||
* @return list of setting entries for the current context.
|
* @return list of setting entries for the current context.
|
||||||
*/
|
*/
|
||||||
private List<ICLanguageSettingEntry> getSettingEntries(ILanguageSettingsProvider provider) {
|
private List<ICLanguageSettingEntry> getSettingEntries(ILanguageSettingsProvider provider) {
|
||||||
String languageId = currentLanguageSetting.getLanguageId();
|
if (currentLanguageId==null)
|
||||||
if (languageId==null)
|
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||||
IResource rc = getResource();
|
IResource rc = getResource();
|
||||||
return provider.getSettingEntries(cfgDescription, rc, languageId);
|
return provider.getSettingEntries(cfgDescription, rc, currentLanguageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addTreeForLanguages(Composite comp) {
|
private void addTreeForLanguages(Composite comp) {
|
||||||
|
@ -328,7 +322,7 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
|
||||||
if (items.length > 0) {
|
if (items.length > 0) {
|
||||||
ICLanguageSetting langSetting = (ICLanguageSetting) items[0].getData();
|
ICLanguageSetting langSetting = (ICLanguageSetting) items[0].getData();
|
||||||
if (langSetting != null) {
|
if (langSetting != null) {
|
||||||
currentLanguageSetting = langSetting;
|
currentLanguageId = langSetting.getLanguageId();
|
||||||
updateTreeEntries();
|
updateTreeEntries();
|
||||||
updateButtons();
|
updateButtons();
|
||||||
}
|
}
|
||||||
|
@ -689,33 +683,29 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveEntries(ILanguageSettingsProvider provider, List<ICLanguageSettingEntry> entries) {
|
private void saveEntries(ILanguageSettingsProvider provider, List<ICLanguageSettingEntry> entries) {
|
||||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
|
||||||
IResource rc = getResource();
|
|
||||||
String languageId = currentLanguageSetting.getLanguageId();
|
|
||||||
|
|
||||||
if (provider instanceof LanguageSettingsSerializable) {
|
if (provider instanceof LanguageSettingsSerializable) {
|
||||||
|
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||||
|
IResource rc = getResource();
|
||||||
if (entries!=null && rc!=null) {
|
if (entries!=null && rc!=null) {
|
||||||
List<ICLanguageSettingEntry> parentEntries = null;
|
List<ICLanguageSettingEntry> parentEntries = null;
|
||||||
if (rc instanceof IProject) {
|
if (rc instanceof IProject) {
|
||||||
parentEntries = new ArrayList<ICLanguageSettingEntry>();
|
parentEntries = new ArrayList<ICLanguageSettingEntry>();
|
||||||
} else {
|
} else {
|
||||||
parentEntries = LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, cfgDescription, rc.getParent(), languageId);
|
parentEntries = LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, cfgDescription, rc.getParent(), currentLanguageId);
|
||||||
}
|
}
|
||||||
if (entries.equals(parentEntries)) {
|
if (entries.equals(parentEntries)) {
|
||||||
// to use parent entries instead
|
// to use parent entries instead
|
||||||
entries = null;
|
entries = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
((LanguageSettingsSerializable)provider).setSettingEntries(cfgDescription, rc, languageId, entries);
|
((LanguageSettingsSerializable)provider).setSettingEntries(cfgDescription, rc, currentLanguageId, entries);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<ICLanguageSettingEntry> getWritableEntries(ILanguageSettingsProvider provider) {
|
private List<ICLanguageSettingEntry> getWritableEntries(ILanguageSettingsProvider provider) {
|
||||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||||
IResource rc = getResource();
|
IResource rc = getResource();
|
||||||
String languageId = currentLanguageSetting.getLanguageId();
|
List<ICLanguageSettingEntry> entries = provider.getSettingEntries(cfgDescription, rc, currentLanguageId);
|
||||||
|
|
||||||
List<ICLanguageSettingEntry> entries = provider.getSettingEntries(cfgDescription, rc, languageId);
|
|
||||||
if (entries==null) {
|
if (entries==null) {
|
||||||
entries = getSettingEntriesUpResourceTree(provider);
|
entries = getSettingEntriesUpResourceTree(provider);
|
||||||
}
|
}
|
||||||
|
@ -864,26 +854,23 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
|
||||||
/**
|
/**
|
||||||
* Get list of providers to display in the settings entry tree.
|
* Get list of providers to display in the settings entry tree.
|
||||||
*/
|
*/
|
||||||
private List<ILanguageSettingsProvider> getProviders(ICLanguageSetting languageSetting) {
|
private List<ILanguageSettingsProvider> getProviders(String languageSettingId) {
|
||||||
List<ILanguageSettingsProvider> itemsList = new LinkedList<ILanguageSettingsProvider>();
|
List<ILanguageSettingsProvider> itemsList = new LinkedList<ILanguageSettingsProvider>();
|
||||||
if (languageSetting!=null) {
|
if (currentLanguageId!=null) {
|
||||||
String langId = languageSetting.getLanguageId();
|
IResource rc = getResource();
|
||||||
if (langId != null) {
|
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||||
IResource rc = getResource();
|
if (rc!=null && cfgDescription!=null) {
|
||||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
List<ILanguageSettingsProvider> cfgProviders = cfgDescription.getLanguageSettingProviders();
|
||||||
if (rc!=null && cfgDescription!=null) {
|
for (ILanguageSettingsProvider cfgProvider : cfgProviders) {
|
||||||
List<ILanguageSettingsProvider> cfgProviders = cfgDescription.getLanguageSettingProviders();
|
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(cfgProvider);
|
||||||
for (ILanguageSettingsProvider cfgProvider : cfgProviders) {
|
if (rawProvider instanceof LanguageSettingsBaseProvider) {
|
||||||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(cfgProvider);
|
// filter out providers incapable of providing entries for this language
|
||||||
if (rawProvider instanceof LanguageSettingsBaseProvider) {
|
List<String> languageIds = ((LanguageSettingsBaseProvider)rawProvider).getLanguageScope();
|
||||||
// filter out providers incapable of providing entries for this language
|
if (languageIds!=null && !languageIds.contains(currentLanguageId)) {
|
||||||
List<String> languageIds = ((LanguageSettingsBaseProvider)rawProvider).getLanguageScope();
|
continue;
|
||||||
if (languageIds!=null && !languageIds.contains(langId)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
itemsList.add(cfgProvider);
|
|
||||||
}
|
}
|
||||||
|
itemsList.add(cfgProvider);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -894,7 +881,7 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
|
||||||
* Refreshes the entries tree in "Show Entries" mode.
|
* Refreshes the entries tree in "Show Entries" mode.
|
||||||
*/
|
*/
|
||||||
public void updateTreeEntries() {
|
public void updateTreeEntries() {
|
||||||
List<ILanguageSettingsProvider> tableItems = getProviders(currentLanguageSetting);
|
List<ILanguageSettingsProvider> tableItems = getProviders(currentLanguageId);
|
||||||
treeEntriesViewer.setInput(tableItems.toArray(new Object[tableItems.size()]));
|
treeEntriesViewer.setInput(tableItems.toArray(new Object[tableItems.size()]));
|
||||||
updateStatusLine();
|
updateStatusLine();
|
||||||
updateButtons();
|
updateButtons();
|
||||||
|
@ -938,14 +925,13 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
|
||||||
t.setText(0, langId);
|
t.setText(0, langId);
|
||||||
t.setData(langSetting);
|
t.setData(langSetting);
|
||||||
if (selectedLanguageItem == null) {
|
if (selectedLanguageItem == null) {
|
||||||
if (currentLanguageSetting!=null) {
|
if (currentLanguageId!=null) {
|
||||||
if (currentLanguageSetting.getLanguageId().equals(langSetting.getLanguageId())) {
|
if (currentLanguageId.equals(langSetting.getLanguageId())) {
|
||||||
selectedLanguageItem = t;
|
selectedLanguageItem = t;
|
||||||
currentLanguageSetting = langSetting;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
selectedLanguageItem = t;
|
selectedLanguageItem = t;
|
||||||
currentLanguageSetting = langSetting;
|
currentLanguageId = langSetting.getLanguageId();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1034,7 +1020,7 @@ providers: for (ILanguageSettingsProvider provider : providers) {
|
||||||
cfgDescription.setLanguageSettingProviders(writableProviders);
|
cfgDescription.setLanguageSettingProviders(writableProviders);
|
||||||
// updateTreeEntries();
|
// updateTreeEntries();
|
||||||
// updateData(getResDesc());
|
// updateData(getResDesc());
|
||||||
List<ILanguageSettingsProvider> tableItems = getProviders(currentLanguageSetting);
|
List<ILanguageSettingsProvider> tableItems = getProviders(currentLanguageId);
|
||||||
treeEntriesViewer.setInput(tableItems.toArray(new Object[tableItems.size()]));
|
treeEntriesViewer.setInput(tableItems.toArray(new Object[tableItems.size()]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1117,9 +1103,8 @@ providers: for (ILanguageSettingsProvider provider : providers) {
|
||||||
private void setSettingEntries(ILanguageSettingsEditableProvider provider, List<ICLanguageSettingEntry> entries) {
|
private void setSettingEntries(ILanguageSettingsEditableProvider provider, List<ICLanguageSettingEntry> entries) {
|
||||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||||
IResource rc = getResource();
|
IResource rc = getResource();
|
||||||
String languageId = currentLanguageSetting.getLanguageId();
|
if (currentLanguageId!=null)
|
||||||
if (languageId!=null)
|
provider.setSettingEntries(cfgDescription, rc, currentLanguageId, entries);
|
||||||
provider.setSettingEntries(cfgDescription, rc, languageId, entries);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -824,21 +824,6 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
updateButtons();
|
updateButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
private ICLanguageSetting[] getLangSettings(ICResourceDescription rcDes) {
|
|
||||||
switch (rcDes.getType()) {
|
|
||||||
case ICSettingBase.SETTING_PROJECT:
|
|
||||||
case ICSettingBase.SETTING_CONFIGURATION:
|
|
||||||
case ICSettingBase.SETTING_FOLDER:
|
|
||||||
ICFolderDescription foDes = (ICFolderDescription) rcDes;
|
|
||||||
return foDes.getLanguageSettings();
|
|
||||||
case ICSettingBase.SETTING_FILE:
|
|
||||||
ICFileDescription fiDes = (ICFileDescription) rcDes;
|
|
||||||
ICLanguageSetting langSetting = fiDes.getLanguageSetting();
|
|
||||||
return (langSetting != null) ? new ICLanguageSetting[] { langSetting } : null;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when configuration changed
|
* Called when configuration changed
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Reference in a new issue