/******************************************************************************* * Copyright (c) 2000, 2007 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.ui.internal.registry; import org.eclipse.core.runtime.*; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.internal.WorkbenchPlugin; /** * A strategy to read view extensions from the registry. */ public class ViewRegistryReader extends RegistryReader { /** * General view category id */ public static String GENERAL_VIEW_ID = "org.eclipse.ui"; //$NON-NLS-1$ private ViewRegistry viewRegistry; /** * RegistryViewReader constructor comment. */ public ViewRegistryReader() { super(); } /** * Reads the category element. */ protected void readCategory(IConfigurationElement element) { try { viewRegistry.add(new Category(element)); } catch (CoreException e) { // log an error since its not safe to show a dialog here WorkbenchPlugin.log( "Unable to create view category.", e.getStatus());//$NON-NLS-1$ } } /** * readElement method comment. */ protected boolean readElement(IConfigurationElement element) { if (element.getName().equals(IWorkbenchRegistryConstants.TAG_VIEW)) { readView(element); return true; } if (element.getName().equals(IWorkbenchRegistryConstants.TAG_CATEGORY)) { readCategory(element); readElementChildren(element); return true; } // if (element.getName().equals(IWorkbenchRegistryConstants.TAG_STICKYVIEW)) { // readSticky(element); // return true; // } return false; } /** * Reads the sticky view element. */ // protected void readSticky(IConfigurationElement element) { // try { // viewRegistry.add(new StickyViewDescriptor(element)); // } catch (CoreException e) { // // log an error since its not safe to open a dialog here // WorkbenchPlugin.log( // "Unable to create sticky view descriptor.", e.getStatus());//$NON-NLS-1$ // // } // } /** * Reads the view element. */ protected void readView(IConfigurationElement element) { try { viewRegistry.add(new ViewDescriptor(element)); } catch (CoreException e) { // log an error since its not safe to open a dialog here WorkbenchPlugin.log( "Unable to create view descriptor.", e.getStatus());//$NON-NLS-1$ } } /** * Read the view extensions within a registry. * @param in the extension registry * @param out the view registry */ public void readViews(IExtensionRegistry in, ViewRegistry out) { // this does not seem to really ever be throwing an the exception viewRegistry = out; // readRegistry(in, PlatformUI.PLUGIN_ID, IWorkbenchRegistryConstants.PL_VIEWS); readRegistry(in, PlatformUI.PLUGIN_EXTENSION_NAME_SPACE, IWorkbenchRegistryConstants.PL_VIEWS); } }