diff options
Diffstat (limited to 'bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/registry/TeamContentProviderDescriptor.java')
-rw-r--r-- | bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/registry/TeamContentProviderDescriptor.java | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/registry/TeamContentProviderDescriptor.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/registry/TeamContentProviderDescriptor.java deleted file mode 100644 index d973a3997..000000000 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/registry/TeamContentProviderDescriptor.java +++ /dev/null @@ -1,223 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2008 IBM Corporation 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: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.team.internal.ui.registry; - -import org.eclipse.core.runtime.*; -import org.eclipse.jface.preference.IPreferencePage; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.osgi.util.NLS; -import org.eclipse.team.internal.ui.TeamUIMessages; -import org.eclipse.team.internal.ui.TeamUIPlugin; -import org.eclipse.team.ui.mapping.ITeamContentProviderDescriptor; -import org.osgi.service.prefs.BackingStoreException; -import org.osgi.service.prefs.Preferences; - -/** - * A team content provider descriptor associates a model provider with a - * navigator content extension - */ -public class TeamContentProviderDescriptor implements ITeamContentProviderDescriptor { - - private static final String TAG_TEAM_CONTENT_PROVIDER = "teamContentProvider"; //$NON-NLS-1$ - - private static final String ATT_MODEL_PROVIDER_ID = "modelProviderId"; //$NON-NLS-1$ - private static final String ATT_CONTENT_EXTENSION_ID = "contentExtensionId"; //$NON-NLS-1$ - private static final String ATT_ICON = "icon"; //$NON-NLS-1$ - private static final String ATT_PREFERENCE_PAGE = "preferencePage"; //$NON-NLS-1$ - private static final String ATT_SUPPORTS_FLAT_LAYOUT = "supportsFlatLayout"; //$NON-NLS-1$ - - private static final String PREF_TEAM_CONTENT_DESCRIPTORS = "teamContentDescriptors"; //$NON-NLS-1$ - private static final String PREF_ENABLED = "enabled"; //$NON-NLS-1$ - - private String modelProviderId; - private String contentExtensionId; - private String contentProviderName; - - private ImageDescriptor imageDescriptor; - - private IConfigurationElement configElement; - - private boolean supportsFlatLayout; - - public TeamContentProviderDescriptor(IExtension extension) throws CoreException { - readExtension(extension); - } - - /** - * Initialize this descriptor based on the provided extension point. - */ - protected void readExtension(IExtension extension) throws CoreException { - // read the extension - String id = extension.getUniqueIdentifier(); // id not required - IConfigurationElement[] elements = extension.getConfigurationElements(); - - // there has to be exactly one team content provider element - // in the provided extension (see teamContentProviders.exsd) - if (elements.length == 1) { - IConfigurationElement element = elements[0]; - String name = element.getName(); - if (name.equalsIgnoreCase(TAG_TEAM_CONTENT_PROVIDER)) { - configElement = element; - modelProviderId = element.getAttribute(ATT_MODEL_PROVIDER_ID); - contentExtensionId = element - .getAttribute(ATT_CONTENT_EXTENSION_ID); - String supportsFlatLayoutString = element - .getAttribute(ATT_SUPPORTS_FLAT_LAYOUT); - if (supportsFlatLayoutString != null) { - supportsFlatLayout = Boolean.valueOf( - supportsFlatLayoutString).booleanValue(); - } - contentProviderName = extension.getLabel(); - } - } else { - fail(NLS.bind(TeamUIMessages.TeamContentProviderDescriptor_2, - new String[] { TAG_TEAM_CONTENT_PROVIDER, - id == null ? "" : id })); //$NON-NLS-1$ - } - if (modelProviderId == null) - fail(NLS.bind(TeamUIMessages.TeamContentProviderDescriptor_1, - new String[] { ATT_MODEL_PROVIDER_ID, - TAG_TEAM_CONTENT_PROVIDER, id == null ? "" : id })); //$NON-NLS-1$ - if (contentExtensionId == null) - fail(NLS.bind(TeamUIMessages.TeamContentProviderDescriptor_1, - new String[] { ATT_CONTENT_EXTENSION_ID, - TAG_TEAM_CONTENT_PROVIDER, id == null ? "" : id })); //$NON-NLS-1$ - } - - protected void fail(String reason) throws CoreException { - throw new CoreException(new Status(IStatus.ERROR, TeamUIPlugin.ID, 0, reason, null)); - } - - /* (non-Javadoc) - * @see org.eclipse.team.internal.ui.registry.ITeamContentProviderDescriptor#getContentExtensionId() - */ - public String getContentExtensionId() { - return contentExtensionId; - } - - /* (non-Javadoc) - * @see org.eclipse.team.internal.ui.registry.ITeamContentProviderDescriptor#getModelProviderId() - */ - public String getModelProviderId() { - return modelProviderId; - } - - /* (non-Javadoc) - * @see org.eclipse.team.internal.ui.registry.ITeamContentProviderDescriptor#getImageDescriptor() - */ - public ImageDescriptor getImageDescriptor() { - if (imageDescriptor != null) - return imageDescriptor; - String iconName = configElement.getAttribute(ATT_ICON); - if (iconName == null) - return null; - imageDescriptor = TeamUIPlugin.getImageDescriptorFromExtension(configElement.getDeclaringExtension(), iconName); - return imageDescriptor; - } - - /* (non-Javadoc) - * @see org.eclipse.team.internal.ui.registry.ITeamContentProviderDescriptor#createPreferencePage() - */ - public IPreferencePage createPreferencePage() throws CoreException { - if (configElement.getAttribute(ATT_PREFERENCE_PAGE) == null) - return null; - Object obj = RegistryReader.createExtension(configElement, ATT_PREFERENCE_PAGE); - return (IPreferencePage) obj; - } - - /* (non-Javadoc) - * @see org.eclipse.team.ui.mapping.ITeamContentProviderDescriptor#isEnabled() - */ - public boolean isEnabled() { - if (!hasPreferences()) { - return true; - } - return getPreferences().getBoolean(PREF_ENABLED, true); - } - - public void setEnabled(boolean enable) { - if (isEnabled() != enable) { - getPreferences().putBoolean(PREF_ENABLED, enable); - flushPreferences(); - } - } - - public Preferences getParentPreferences() { - return TeamUIPlugin.getPlugin().getInstancePreferences().node(PREF_TEAM_CONTENT_DESCRIPTORS); - } - /* - * Return the preferences node for this repository - */ - public Preferences getPreferences() { - if (!hasPreferences()) { - ensurePreferencesStored(); - } - return internalGetPreferences(); - } - - private Preferences internalGetPreferences() { - return getParentPreferences().node(getPreferenceName()); - } - - private boolean hasPreferences() { - try { - return getParentPreferences().nodeExists(getPreferenceName()); - } catch (BackingStoreException e) { - TeamUIPlugin.log(IStatus.ERROR, NLS.bind("Error accessing team content preference store for {0}", new String[] { getModelProviderId() }), e); //$NON-NLS-1$ - return false; - } - } - - /** - * Return a unique name that identifies this location but - * does not contain any slashes (/). Also, do not use ':'. - * Although a valid path character, the initial core implementation - * didn't handle it well. - */ - private String getPreferenceName() { - return getModelProviderId(); - } - - public void storePreferences() { - Preferences prefs = internalGetPreferences(); - // Must store at least one preference in the node - prefs.putBoolean(PREF_ENABLED, true); - flushPreferences(); - } - - private void flushPreferences() { - try { - internalGetPreferences().flush(); - } catch (BackingStoreException e) { - TeamUIPlugin.log(IStatus.ERROR, NLS.bind("Error flushing team content preference store for {0}", new String[] { getModelProviderId() }), e); //$NON-NLS-1$ - } - } - - private void ensurePreferencesStored() { - if (!hasPreferences()) { - storePreferences(); - } - } - - public String getName() { - if (contentProviderName != null) - return contentProviderName; - - return null; - } - - /* (non-Javadoc) - * @see org.eclipse.team.ui.mapping.ITeamContentProviderDescriptor#isFlatLayoutSupported() - */ - public boolean isFlatLayoutSupported() { - return supportsFlatLayout; - } -} |