1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-28 19:35:36 +02:00

Disallow clearing and editing entries for specific providers in UI

This commit is contained in:
Andrew Gvozdev 2011-12-08 15:22:51 -05:00
parent c9b2608713
commit 54b1cda61e
5 changed files with 29 additions and 19 deletions

View file

@ -546,13 +546,17 @@
class="org.eclipse.cdt.make.core.scannerconfig.AbstractBuildCommandParser" class="org.eclipse.cdt.make.core.scannerconfig.AbstractBuildCommandParser"
icon="icons/obj16/log_obj.gif" icon="icons/obj16/log_obj.gif"
page="org.eclipse.cdt.make.internal.ui.preferences.GCCBuildCommandParserOptionPage" page="org.eclipse.cdt.make.internal.ui.preferences.GCCBuildCommandParserOptionPage"
shared="false"> shared="false"
ui-clear-entries="true"
ui-edit-entries="false">
</class-association> </class-association>
<class-association <class-association
class="org.eclipse.cdt.make.core.scannerconfig.AbstractBuiltinSpecsDetector" class="org.eclipse.cdt.make.core.scannerconfig.AbstractBuiltinSpecsDetector"
icon="icons/obj16/inspect_system.gif" icon="icons/obj16/inspect_system.gif"
page="org.eclipse.cdt.make.internal.ui.scannerconfig.BuiltinSpecsDetectorOptionPage" page="org.eclipse.cdt.make.internal.ui.scannerconfig.BuiltinSpecsDetectorOptionPage"
shared="true"> shared="true"
ui-clear-entries="true"
ui-edit-entries="false">
</class-association> </class-association>
</extension> </extension>
<extension <extension

View file

@ -653,7 +653,9 @@
<id-association <id-association
id="org.eclipse.cdt.managedbuilder.core.LanguageSettingsProvider" id="org.eclipse.cdt.managedbuilder.core.LanguageSettingsProvider"
icon="icons/obj16/mbs.gif" icon="icons/obj16/mbs.gif"
shared="true"> shared="true"
ui-clear-entries="false"
ui-edit-entries="false">
</id-association> </id-association>
</extension> </extension>

View file

@ -3806,7 +3806,9 @@
<id-association <id-association
id="org.eclipse.cdt.ui.user.LanguageSettingsProvider" id="org.eclipse.cdt.ui.user.LanguageSettingsProvider"
icon="icons/obj16/person-me.gif" icon="icons/obj16/person-me.gif"
shared="false"> shared="false"
ui-clear-entries="true"
ui-edit-entries="true">
</id-association> </id-association>
</extension> </extension>
<extension point="org.eclipse.cdt.ui.cPropertyTab"> <extension point="org.eclipse.cdt.ui.cPropertyTab">

View file

@ -511,17 +511,20 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
boolean isEntrySelected = entry!=null; boolean isEntrySelected = entry!=null;
boolean isProviderSelected = !isEntrySelected && (provider!=null); boolean isProviderSelected = !isEntrySelected && (provider!=null);
boolean isProviderEditable = provider instanceof ILanguageSettingsEditableProvider; boolean isAllowedEditing = provider instanceof ILanguageSettingsEditableProvider
// boolean isUserProvider = provider instanceof UserLanguageSettingsProvider; && LanguageSettingsProviderAssociationManager.isToEditEntries(provider);
boolean canAdd = isProviderEditable; boolean isAllowedClearing = provider instanceof ILanguageSettingsEditableProvider
boolean canEdit = isProviderEditable && isEntrySelected; && LanguageSettingsProviderAssociationManager.isToClear(provider);
boolean canDelete = isProviderEditable && isEntrySelected;
boolean canClear = isProviderEditable && isProviderSelected && entries!=null && entries.size()>0; boolean canAdd = isAllowedEditing;
boolean canEdit = isAllowedEditing && isEntrySelected;
boolean canDelete = isAllowedEditing && isEntrySelected;
boolean canClear = isAllowedClearing && isProviderSelected && entries!=null && entries.size()>0;
boolean canMoveUp = false; boolean canMoveUp = false;
boolean canMoveDown = false; boolean canMoveDown = false;
if (isProviderEditable && isEntrySelected && entries!=null) { if (isAllowedEditing && isEntrySelected && entries!=null) {
int last = entries.size()-1; int last = entries.size()-1;
int pos = getExactIndex(entries, entry); int pos = getExactIndex(entries, entry);
@ -552,7 +555,9 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
} }
if (status==null || status==Status.OK_STATUS) { if (status==null || status==Status.OK_STATUS) {
ILanguageSettingsProvider provider = getSelectedProvider(); ILanguageSettingsProvider provider = getSelectedProvider();
if (provider!=null && !(provider instanceof ILanguageSettingsBroadcastingProvider)) { boolean isAllowedEditing = provider instanceof ILanguageSettingsEditableProvider
&& LanguageSettingsProviderAssociationManager.isToEditEntries(provider);
if (!isAllowedEditing) {
String msg = "Setting entries for this provider are supplied by system and are not editable."; String msg = "Setting entries for this provider are supplied by system and are not editable.";
status = new Status(IStatus.INFO, CUIPlugin.PLUGIN_ID, msg); status = new Status(IStatus.INFO, CUIPlugin.PLUGIN_ID, msg);
} }

View file

@ -652,13 +652,10 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
boolean isRangeOk = pos >= 0 && pos <= last; boolean isRangeOk = pos >= 0 && pos <= last;
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(provider); ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(provider);
boolean canClear = false; boolean isAllowedClearing = rawProvider instanceof ILanguageSettingsEditableProvider
if (rawProvider instanceof ILanguageSettingsEditableProvider) { && LanguageSettingsProviderAssociationManager.isToClear(rawProvider);
// TODO - commented out because we need the means to restart failed Spec Detectors
// if (!((ILanguageSettingsEditableProvider) rawProvider).isEmpty()) { boolean canClear = isAllowedClearing && (canForWorkspace || canForProject);
canClear = canForWorkspace || canForProject;
// }
}
boolean canReset = false; boolean canReset = false;
if (rawProvider!=null && (canForWorkspace || canForProject)) { if (rawProvider!=null && (canForWorkspace || canForProject)) {