diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/BuiltinSpecsDetectorOptionPage.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/BuiltinSpecsDetectorOptionPage.java index b94db388875..651d2f998bc 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/BuiltinSpecsDetectorOptionPage.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/BuiltinSpecsDetectorOptionPage.java @@ -11,12 +11,9 @@ package org.eclipse.cdt.managedbuilder.internal.ui.language.settings.providers; -import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvider; -import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager; -import org.eclipse.cdt.internal.ui.language.settings.providers.AbstractLanguageSettingProviderOptionPage; import org.eclipse.cdt.managedbuilder.language.settings.providers.AbstractBuiltinSpecsDetector; +import org.eclipse.cdt.ui.language.settings.providers.AbstractLanguageSettingProviderOptionPage; import org.eclipse.cdt.utils.ui.controls.ControlFactory; -import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; @@ -65,7 +62,7 @@ public final class BuiltinSpecsDetectorOptionPage extends AbstractLanguageSettin composite.setLayoutData(gd); } - AbstractBuiltinSpecsDetector provider = getRawProvider(); + AbstractBuiltinSpecsDetector provider = (AbstractBuiltinSpecsDetector) getProvider(); // Compiler specs command { @@ -85,11 +82,11 @@ public final class BuiltinSpecsDetectorOptionPage extends AbstractLanguageSettin @Override public void modifyText(ModifyEvent e) { String text = inputCommand.getText(); - AbstractBuiltinSpecsDetector provider = getRawProvider(); + AbstractBuiltinSpecsDetector provider = (AbstractBuiltinSpecsDetector) getProvider(); if (!text.equals(provider.getCommand())) { - AbstractBuiltinSpecsDetector selectedProvider = getWorkingCopy(providerId); + AbstractBuiltinSpecsDetector selectedProvider = (AbstractBuiltinSpecsDetector) getProviderWorkingCopy(); selectedProvider.setCommand(text); - providerTab.refreshItem(selectedProvider); + refreshItem(selectedProvider); } } }); @@ -128,11 +125,11 @@ public final class BuiltinSpecsDetectorOptionPage extends AbstractLanguageSettin @Override public void widgetSelected(SelectionEvent e) { boolean enabled = allocateConsoleCheckBox.getSelection(); - AbstractBuiltinSpecsDetector provider = getRawProvider(); + AbstractBuiltinSpecsDetector provider = (AbstractBuiltinSpecsDetector) getProvider(); if (enabled != provider.isConsoleEnabled()) { - AbstractBuiltinSpecsDetector selectedProvider = getWorkingCopy(providerId); + AbstractBuiltinSpecsDetector selectedProvider = (AbstractBuiltinSpecsDetector) getProviderWorkingCopy(); selectedProvider.setConsoleEnabled(enabled); - providerTab.refreshItem(selectedProvider); + refreshItem(selectedProvider); } } @@ -148,18 +145,6 @@ public final class BuiltinSpecsDetectorOptionPage extends AbstractLanguageSettin setControl(composite); } - private AbstractBuiltinSpecsDetector getRawProvider() { - ILanguageSettingsProvider provider = LanguageSettingsManager.getRawProvider(providerTab.getProvider(providerId)); - Assert.isTrue(provider instanceof AbstractBuiltinSpecsDetector); - return (AbstractBuiltinSpecsDetector) provider; - } - - private AbstractBuiltinSpecsDetector getWorkingCopy(String providerId) { - ILanguageSettingsProvider provider = providerTab.getWorkingCopy(providerId); - Assert.isTrue(provider instanceof AbstractBuiltinSpecsDetector); - return (AbstractBuiltinSpecsDetector) provider; - } - @Override public void performApply(IProgressMonitor monitor) throws CoreException { // handled by LanguageSettingsProviderTab diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/GCCBuildCommandParserOptionPage.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/GCCBuildCommandParserOptionPage.java index ba4972332cd..8b6106784f2 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/GCCBuildCommandParserOptionPage.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/GCCBuildCommandParserOptionPage.java @@ -11,12 +11,9 @@ package org.eclipse.cdt.managedbuilder.internal.ui.language.settings.providers; -import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvider; -import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager; -import org.eclipse.cdt.internal.ui.language.settings.providers.AbstractLanguageSettingProviderOptionPage; import org.eclipse.cdt.managedbuilder.language.settings.providers.AbstractBuildCommandParser; +import org.eclipse.cdt.ui.language.settings.providers.AbstractLanguageSettingProviderOptionPage; import org.eclipse.cdt.utils.ui.controls.ControlFactory; -import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.dialogs.Dialog; @@ -69,7 +66,7 @@ public final class GCCBuildCommandParserOptionPage extends AbstractLanguageSetti composite.setLayoutData(gd); } - AbstractBuildCommandParser provider = getRawProvider(); + AbstractBuildCommandParser provider = (AbstractBuildCommandParser) getProvider(); // Compiler specs command { @@ -96,11 +93,11 @@ public final class GCCBuildCommandParserOptionPage extends AbstractLanguageSetti @Override public void modifyText(ModifyEvent e) { String text = inputCommand.getText(); - AbstractBuildCommandParser provider = getRawProvider(); + AbstractBuildCommandParser provider = (AbstractBuildCommandParser) getProvider(); if (!text.equals(provider.getCompilerPattern())) { - AbstractBuildCommandParser selectedProvider = getWorkingCopy(providerId); + AbstractBuildCommandParser selectedProvider = (AbstractBuildCommandParser) getProviderWorkingCopy(); selectedProvider.setCompilerPattern(text); - providerTab.refreshItem(selectedProvider); + refreshItem(selectedProvider); } } }); @@ -119,11 +116,11 @@ public final class GCCBuildCommandParserOptionPage extends AbstractLanguageSetti @Override public void widgetSelected(SelectionEvent e) { boolean enabled = expandRelativePathCheckBox.getSelection(); - AbstractBuildCommandParser provider = getRawProvider(); + AbstractBuildCommandParser provider = (AbstractBuildCommandParser) getProvider(); if (enabled != provider.isResolvingPaths()) { - AbstractBuildCommandParser selectedProvider = getWorkingCopy(providerId); + AbstractBuildCommandParser selectedProvider = (AbstractBuildCommandParser) getProviderWorkingCopy(); selectedProvider.setResolvingPaths(enabled); - providerTab.refreshItem(selectedProvider); + refreshItem(selectedProvider); } } @@ -161,11 +158,11 @@ public final class GCCBuildCommandParserOptionPage extends AbstractLanguageSetti @Override public void widgetSelected(SelectionEvent e) { boolean enabled = scopeFileRadioButton.getSelection(); - AbstractBuildCommandParser provider = getRawProvider(); + AbstractBuildCommandParser provider = (AbstractBuildCommandParser) getProvider(); if (enabled != (provider.getResourceScope() == AbstractBuildCommandParser.ResourceScope.FILE)) { - AbstractBuildCommandParser selectedProvider = getWorkingCopy(providerId); + AbstractBuildCommandParser selectedProvider = (AbstractBuildCommandParser) getProviderWorkingCopy(); selectedProvider.setResourceScope(AbstractBuildCommandParser.ResourceScope.FILE); - providerTab.refreshItem(selectedProvider); + refreshItem(selectedProvider); } } @@ -192,11 +189,11 @@ public final class GCCBuildCommandParserOptionPage extends AbstractLanguageSetti @Override public void widgetSelected(SelectionEvent e) { boolean enabled = scopeFolderRadioButton.getSelection(); - AbstractBuildCommandParser provider = getRawProvider(); + AbstractBuildCommandParser provider = (AbstractBuildCommandParser) getProvider(); if (enabled != (provider.getResourceScope() == AbstractBuildCommandParser.ResourceScope.FOLDER)) { - AbstractBuildCommandParser selectedProvider = getWorkingCopy(providerId); + AbstractBuildCommandParser selectedProvider = (AbstractBuildCommandParser) getProviderWorkingCopy(); selectedProvider.setResourceScope(AbstractBuildCommandParser.ResourceScope.FOLDER); - providerTab.refreshItem(selectedProvider); + refreshItem(selectedProvider); } } @@ -223,11 +220,11 @@ public final class GCCBuildCommandParserOptionPage extends AbstractLanguageSetti @Override public void widgetSelected(SelectionEvent e) { boolean enabled = scopeProjectRadioButton.getSelection(); - AbstractBuildCommandParser provider = getRawProvider(); + AbstractBuildCommandParser provider = (AbstractBuildCommandParser) getProvider(); if (enabled != (provider.getResourceScope() == AbstractBuildCommandParser.ResourceScope.PROJECT)) { - AbstractBuildCommandParser selectedProvider = getWorkingCopy(providerId); + AbstractBuildCommandParser selectedProvider = (AbstractBuildCommandParser) getProviderWorkingCopy(); selectedProvider.setResourceScope(AbstractBuildCommandParser.ResourceScope.PROJECT); - providerTab.refreshItem(selectedProvider); + refreshItem(selectedProvider); } } @@ -243,18 +240,6 @@ public final class GCCBuildCommandParserOptionPage extends AbstractLanguageSetti setControl(composite); } - private AbstractBuildCommandParser getRawProvider() { - ILanguageSettingsProvider provider = LanguageSettingsManager.getRawProvider(providerTab.getProvider(providerId)); - Assert.isTrue(provider instanceof AbstractBuildCommandParser); - return (AbstractBuildCommandParser) provider; - } - - private AbstractBuildCommandParser getWorkingCopy(String providerId) { - ILanguageSettingsProvider provider = providerTab.getWorkingCopy(providerId); - Assert.isTrue(provider instanceof AbstractBuildCommandParser); - return (AbstractBuildCommandParser) provider; - } - @Override public void performApply(IProgressMonitor monitor) throws CoreException { // handled by LanguageSettingsProviderTab diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/ScannerDiscoveryConsole.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/ScannerDiscoveryConsole.java index c31b18f9a01..f211fcb1b1c 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/ScannerDiscoveryConsole.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/ScannerDiscoveryConsole.java @@ -14,7 +14,7 @@ package org.eclipse.cdt.managedbuilder.internal.ui.language.settings.providers; import java.net.URL; import org.eclipse.cdt.internal.ui.buildconsole.CBuildConsole; -import org.eclipse.cdt.internal.ui.language.settings.providers.LanguageSettingsProviderAssociationManager; +import org.eclipse.cdt.ui.language.settings.providers.LanguageSettingsProvidersImages; public class ScannerDiscoveryConsole extends CBuildConsole { @@ -23,15 +23,15 @@ public class ScannerDiscoveryConsole extends CBuildConsole { * @param consoleId - a console ID is expected here which then is used as menu context ID. * @param defaultIconUrl - if {@code LanguageSettingsProviderAssociation} extension point * defines URL by provider id, {@code defaultIconUrl} will be ignored and the URL from the extension - * point will be used. If not, supplied {@code defaultIconUrl} will be used. + * point will be used. If not, supplied {@code defaultIconUrl} will be used. */ @Override public void init(String consoleId, String name, URL defaultIconUrl) { - URL iconUrl = LanguageSettingsProviderAssociationManager.getImageUrl(consoleId); + URL iconUrl = LanguageSettingsProvidersImages.getImageUrl(consoleId); if (iconUrl==null) { iconUrl = defaultIconUrl; } - + super.init(consoleId, name, iconUrl); } diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/ScannerDiscoveryGlobalConsole.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/ScannerDiscoveryGlobalConsole.java index e8ad5a4b935..a82e5061800 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/ScannerDiscoveryGlobalConsole.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/ScannerDiscoveryGlobalConsole.java @@ -16,8 +16,8 @@ import java.net.URL; import org.eclipse.cdt.core.ConsoleOutputStream; import org.eclipse.cdt.internal.core.ICConsole; -import org.eclipse.cdt.internal.ui.language.settings.providers.LanguageSettingsProviderAssociationManager; import org.eclipse.cdt.ui.CDTSharedImages; +import org.eclipse.cdt.ui.language.settings.providers.LanguageSettingsProvidersImages; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.CoreException; @@ -102,7 +102,7 @@ public class ScannerDiscoveryGlobalConsole implements ICConsole { } if (console==null) { - URL iconUrl = LanguageSettingsProviderAssociationManager.getImageUrl(consoleId); + URL iconUrl = LanguageSettingsProvidersImages.getImageUrl(consoleId); if (iconUrl == null) { iconUrl = defaultIconUrl; } diff --git a/core/org.eclipse.cdt.ui/META-INF/MANIFEST.MF b/core/org.eclipse.cdt.ui/META-INF/MANIFEST.MF index 9455849653f..14f73d7938a 100644 --- a/core/org.eclipse.cdt.ui/META-INF/MANIFEST.MF +++ b/core/org.eclipse.cdt.ui/META-INF/MANIFEST.MF @@ -76,6 +76,7 @@ Export-Package: org.eclipse.cdt.internal.corext;x-internal:=true, org.eclipse.cdt.ui.browser.typeinfo, org.eclipse.cdt.ui.dialogs, org.eclipse.cdt.ui.internal.templateengine.wizard;x-internal:=true, + org.eclipse.cdt.ui.language.settings.providers, org.eclipse.cdt.ui.newui, org.eclipse.cdt.ui.refactoring, org.eclipse.cdt.ui.refactoring.actions, diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/AbstractLanguageSettingProviderOptionPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/AbstractLanguageSettingProviderOptionPage.java deleted file mode 100644 index 61f3f6ee184..00000000000 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/AbstractLanguageSettingProviderOptionPage.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2012 Andrew Gvozdev 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 - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Andrew Gvozdev - Initial API and implementation - *******************************************************************************/ -package org.eclipse.cdt.internal.ui.language.settings.providers; - -import org.eclipse.cdt.ui.dialogs.AbstractCOptionPage; - -/** - * Abstract class to implement language settings providers Options page. - */ -public abstract class AbstractLanguageSettingProviderOptionPage extends AbstractCOptionPage { - protected LanguageSettingsProviderTab providerTab; - protected String providerId; - - /** - * Initialize the options page with the owning tab and provider ID. - * - * @param providerTab - provider tab which owns the options page. - * @param providerId - ID of the provider the options page is for. - */ - protected void init(LanguageSettingsProviderTab providerTab, String providerId) { - this.providerTab = providerTab; - this.providerId = providerId; - } -} diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java index 4644fd21c3d..d0dcb689f9d 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java @@ -57,6 +57,7 @@ import org.eclipse.cdt.core.settings.model.ICResourceDescription; import org.eclipse.cdt.ui.CDTSharedImages; import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.ui.dialogs.ICOptionPage; +import org.eclipse.cdt.ui.language.settings.providers.AbstractLanguageSettingProviderOptionPage; import org.eclipse.cdt.ui.newui.AbstractCPropertyTab; import org.eclipse.cdt.ui.newui.CDTPrefUtil; import org.eclipse.cdt.utils.ui.controls.TabFolderLayout; diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/language/settings/providers/AbstractLanguageSettingProviderOptionPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/language/settings/providers/AbstractLanguageSettingProviderOptionPage.java new file mode 100644 index 00000000000..e29fb30086a --- /dev/null +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/language/settings/providers/AbstractLanguageSettingProviderOptionPage.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * Copyright (c) 2010, 2012 Andrew Gvozdev 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 + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Andrew Gvozdev - Initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.ui.language.settings.providers; + +import org.eclipse.core.runtime.Assert; + +import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvider; +import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager; +import org.eclipse.cdt.ui.dialogs.AbstractCOptionPage; +import org.eclipse.cdt.ui.newui.AbstractCPropertyTab; + +import org.eclipse.cdt.internal.ui.language.settings.providers.LanguageSettingsProviderTab; + +/** + * Abstract class to implement language settings providers Options page. + * + * @since 5.4 + */ +public abstract class AbstractLanguageSettingProviderOptionPage extends AbstractCOptionPage { + private LanguageSettingsProviderTab providerTab; + private String providerId; + + /** + * Initialize the options page with the owning tab and provider ID. + * + * @param providerTab - provider tab which owns the options page. + * @param providerId - ID of the provider the options page is for. + */ + public void init(AbstractCPropertyTab providerTab, String providerId) { + Assert.isTrue(providerTab instanceof LanguageSettingsProviderTab); + this.providerTab = (LanguageSettingsProviderTab) providerTab; + this.providerId = providerId; + } + + /** + * Get provider being displayed on this Options Page. + * @return provider. + */ + public ILanguageSettingsProvider getProvider() { + return LanguageSettingsManager.getRawProvider(providerTab.getProvider(providerId)); + } + + /** + * Get working copy of the provider to allow its options to be modified. + * @return working copy of the provider. + */ + public ILanguageSettingsProvider getProviderWorkingCopy() { + return providerTab.getWorkingCopy(providerId); + } + + /** + * Refresh provider item in the table and update buttons. + * This method is intended for use by an Options Page of the provider. + * + * @param provider - provider item in the table to refresh. + */ + public void refreshItem(ILanguageSettingsProvider provider) { + providerTab.refreshItem(provider); + } + +} diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/language/settings/providers/LanguageSettingsProvidersImages.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/language/settings/providers/LanguageSettingsProvidersImages.java new file mode 100644 index 00000000000..7317e6e8c4c --- /dev/null +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/language/settings/providers/LanguageSettingsProvidersImages.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * Copyright (c) 2012, 2012 Andrew Gvozdev 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 + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Andrew Gvozdev - Initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.ui.language.settings.providers; + +import java.net.URL; + +import org.eclipse.cdt.internal.ui.language.settings.providers.LanguageSettingsProviderAssociationManager; + +/** + * Utility class to provide API for language settings providers images. + * + * @since 5.4 + */ +public class LanguageSettingsProvidersImages { + /** + * Get image URL for language settings provider with the given ID. + * + * @param providerId - ID of language settings provider. + * @return image URL or {@code null}. + */ + public static URL getImageUrl(String providerId) { + return LanguageSettingsProviderAssociationManager.getImageUrl(providerId); + } + +}