| /******************************************************************************* |
| * Copyright (c) 2004 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Common Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/cpl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.ui.internal.intro; |
| |
| import org.eclipse.core.runtime.CoreException; |
| import org.eclipse.core.runtime.IConfigurationElement; |
| import org.eclipse.core.runtime.IExtensionRegistry; |
| import org.eclipse.ui.PlatformUI; |
| import org.eclipse.ui.internal.IWorkbenchConstants; |
| import org.eclipse.ui.internal.WorkbenchPlugin; |
| import org.eclipse.ui.internal.registry.RegistryReader; |
| |
| /** |
| * Introduction registry reader. |
| * |
| * @since 3.0 |
| */ |
| public class IntroRegistryReader extends RegistryReader { |
| private static final String TAG_INTRO = "intro";//$NON-NLS-1$ |
| private static final String TAG_INTROPRODUCTBINDING = "introProductBinding";//$NON-NLS-1$ |
| private IntroRegistry introRegistry; |
| |
| /** |
| */ |
| public IntroRegistryReader() { |
| super(); |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.ui.internal.registry.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement) |
| */ |
| protected boolean readElement(IConfigurationElement element) { |
| if (element.getName().equals(TAG_INTRO)) { |
| readIntro(element); |
| return true; |
| } |
| else if (element.getName().equals(TAG_INTROPRODUCTBINDING)) { |
| readBinding(element); |
| return true; |
| } |
| return false; |
| } |
| |
| /** |
| * Read binding information. |
| * |
| * @param element the configuration element to be read. |
| */ |
| private void readBinding(IConfigurationElement element) { |
| try { |
| introRegistry.addBinding(element); |
| } |
| catch (CoreException e) { |
| // log an error since its not safe to open a dialog here |
| WorkbenchPlugin.log(IntroMessages.getString("Intro.could_not_create_binding") , e.getStatus());//$NON-NLS-1$ |
| } |
| } |
| |
| /** |
| * Read introduction information. |
| * |
| * @param element the configuration element to read. |
| */ |
| private void readIntro(IConfigurationElement element) { |
| try { |
| IIntroDescriptor descriptor = new IntroDescriptor(element); |
| introRegistry.add(descriptor); |
| } |
| catch (CoreException e) { |
| // log an error since its not safe to open a dialog here |
| WorkbenchPlugin.log(IntroMessages.getString("Intro.could_not_create_descriptor") , e.getStatus());//$NON-NLS-1$ |
| } |
| } |
| |
| /** |
| * Read all introdcution extensions from the registry. |
| * |
| * @param in the registry to read. |
| * @param out the registry to populate. |
| */ |
| public void readIntros(IExtensionRegistry in, IntroRegistry out) { |
| introRegistry = out; |
| readRegistry(in, PlatformUI.PLUGIN_ID, IWorkbenchConstants.PL_INTRO); |
| } |
| } |