| package org.eclipse.ui.internal.registry; |
| |
| /* |
| * (c) Copyright IBM Corp. 2000, 2001. |
| * All Rights Reserved. |
| */ |
| import org.eclipse.core.runtime.IConfigurationElement; |
| import org.eclipse.core.runtime.IPluginRegistry; |
| import org.eclipse.ui.PlatformUI; |
| import org.eclipse.ui.internal.IWorkbenchConstants; |
| import org.eclipse.ui.internal.WorkbenchPlugin; |
| |
| /** |
| * A strategy to read action set part association extension from the registry. |
| */ |
| public class ActionSetPartAssociationsReader extends RegistryReader { |
| private ActionSetRegistry registry; |
| private static final String TAG_EXTENSION="actionSetPartAssociation";//$NON-NLS-1$ |
| private static final String TAG_PART="part";//$NON-NLS-1$ |
| private static final String ATT_ID="id";//$NON-NLS-1$ |
| private static final String ATT_TARGET_ID="targetID";//$NON-NLS-1$ |
| |
| /** |
| * Creates a new reader. |
| */ |
| public ActionSetPartAssociationsReader() { |
| super(); |
| } |
| |
| /** |
| * Process an extension. |
| */ |
| private boolean processExtension(IConfigurationElement element) { |
| String actionSetId = element.getAttribute(ATT_TARGET_ID); |
| IConfigurationElement [] children = element.getChildren(); |
| for (int i = 0; i < children.length; i++) { |
| IConfigurationElement child = children[i]; |
| String type = child.getName(); |
| if (type.equals(TAG_PART)) { |
| String partId = child.getAttribute(ATT_ID); |
| if (partId != null) |
| registry.addAssociation(actionSetId, partId); |
| } else { |
| WorkbenchPlugin.log("Unable to process element: " +//$NON-NLS-1$ |
| type + |
| " in action set part associations extension: " +//$NON-NLS-1$ |
| element.getDeclaringExtension().getUniqueIdentifier()); |
| } |
| } |
| return true; |
| } |
| |
| /** |
| * Reads the given element. |
| */ |
| protected boolean readElement(IConfigurationElement element) { |
| String type = element.getName(); |
| if (type.equals(TAG_EXTENSION)) { |
| return processExtension(element); |
| } |
| return false; |
| } |
| |
| /** |
| * Read the association extensions within a registry. |
| */ |
| public void readRegistry(IPluginRegistry in, ActionSetRegistry out) |
| { |
| registry = out; |
| readRegistry(in, PlatformUI.PLUGIN_ID, IWorkbenchConstants.PL_ACTION_SET_PART_ASSOCIATIONS); |
| } |
| } |