[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
[platform-ui-dev] Deleting Code
 | 
While addressing another bug, it became apparent that some internal code in 
the workbench is not being used.  This also falls in line with previous 
emails from John Arthorne.
I wish to apply the following patches.  But, it would be helpful if Platform 
UI committers could review these patches and make sure none of these classes 
stand out.  I don't want to delete something that has some secret 
purpose ....
These patches delete about 30 classes.
cheers,
d.
Index: src/org/eclipse/ui/internal/ide/model/WorkbenchStatusList.java
===================================================================
RCS file: src/org/eclipse/ui/internal/ide/model/WorkbenchStatusList.java
diff -N src/org/eclipse/ui/internal/ide/model/WorkbenchStatusList.java
--- src/org/eclipse/ui/internal/ide/model/WorkbenchStatusList.java	25 Feb 2005 20:41:18 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 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.ide.model;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.model.WorkbenchAdapter;
-
-public class WorkbenchStatusList extends WorkbenchAdapter implements IAdaptable {
-    private ArrayList statii = new ArrayList(10);
-
-    public void add(IStatus status) {
-        statii.add(new WorkbenchStatus(status));
-    }
-
-    public void clear() {
-        statii.clear();
-    }
-
-    /**
-     * Returns an object which is an instance of the given class
-     * associated with this object. Returns <code>null</code> if
-     * no such object can be found.
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter == IWorkbenchAdapter.class)
-            return this;
-        return null;
-    }
-
-    /**
-     * Returns the children of this element.
-     */
-    public Object[] getChildren(Object o) {
-        return statii.toArray();
-    }
-
-    public void remove(WorkbenchStatus status) {
-        statii.remove(status);
-    }
-}
Index: src/org/eclipse/ui/internal/wizards/datatransfer/Base64Encoder.java
===================================================================
RCS file: src/org/eclipse/ui/internal/wizards/datatransfer/Base64Encoder.java
diff -N src/org/eclipse/ui/internal/wizards/datatransfer/Base64Encoder.java
--- src/org/eclipse/ui/internal/wizards/datatransfer/Base64Encoder.java	25 Feb 2005 20:41:16 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 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.wizards.datatransfer;
-
-/**
- *	This utility class converts a passed byte array into a Base 64 encoded
- *	String according to the specification in RFC1521 section 5.2
- */
-public class Base64Encoder {
-    private static final String mappings = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";//$NON-NLS-1$
-
-    private static final String filler = "=";//$NON-NLS-1$
-
-    /**
-     *	Answer a string representing the Base 64 encoded form of the passed
-     *	byte array
-     *
-     *	@return java.lang.String
-     *	@param contents byte[]
-     */
-    public static String encode(byte[] contents) {
-        StringBuffer result = new StringBuffer();
-
-        for (int i = 0; i < contents.length; i = i + 3) {
-            if (result.length() == 76)
-                result.append("\n\r");//$NON-NLS-1$
-
-            // output character 1
-            result.append(mappings.charAt((contents[i] & 0xFC) >> 2));
-
-            // output character 2
-            int c2 = (contents[i] & 0x03) << 4;
-            if (i + 1 >= contents.length) {
-                result.append(mappings.charAt(c2));
-                result.append(filler);
-                result.append(filler);
-                return result.toString();
-            }
-
-            c2 |= ((contents[i + 1] & 0xF0) >> 4);
-            result.append(mappings.charAt(c2));
-
-            // output character 3
-            int c3 = (contents[i + 1] & 0x0F) << 2;
-            if (i + 2 >= contents.length) {
-                result.append(mappings.charAt(c3));
-                result.append(filler);
-                return result.toString();
-            }
-
-            c3 |= ((contents[i + 2] & 0xC0) >> 6);
-            result.append(mappings.charAt(c3));
-
-            // output character 4
-            result.append(mappings.charAt(contents[i + 2] & 0x3F));
-        }
-
-        return result.toString();
-    }
-}
Index: Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/KeywordTests.java
===================================================================
RCS file: /home/eclipse/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/KeywordTests.java,v
retrieving revision 1.2
diff -u -r1.2 KeywordTests.java
--- Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/KeywordTests.java	25 Feb 2005 20:51:37 -0000	1.2
+++ Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/KeywordTests.java	13 Apr 2005 18:29:38 -0000
@@ -11,7 +11,7 @@
 package org.eclipse.ui.tests.dynamicplugins;
 
 import org.eclipse.ui.internal.IWorkbenchConstants;
-import org.eclipse.ui.internal.keywords.KeywordRegistry;
+import org.eclipse.ui.internal.registry.KeywordRegistry;
 
 /**
  * @since 3.1
Index: Eclipse UI/org/eclipse/ui/internal/BooleanModel.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/BooleanModel.java
diff -N Eclipse UI/org/eclipse/ui/internal/BooleanModel.java
--- Eclipse UI/org/eclipse/ui/internal/BooleanModel.java	25 Feb 2005 20:52:13 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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;
-
-/**
- * Represents a boolean value that can be monitored for state changes.
- * The getState() method inherited from Model will always return a non-null
- * Boolean object.
- * 
- * @since 3.0
- */
-public class BooleanModel extends Model {
-
-    /**
-     * Creates a new BooleanModel with the given initial state
-     * 
-     * @param initialState initial value of the model
-     */
-    public BooleanModel(boolean initialState) {
-        super(new Boolean(initialState));
-    }
-
-    /**
-     * Sets the value and notifies all change listeners
-     * 
-     * @param newValue new 
-     */
-    public void set(boolean newValue) {
-        set(newValue, null);
-    }
-
-    /**
-     * Sets the value and notifies all change listeners except
-     * the listener that caused the change.
-     * 
-     * @param newValue new boolean value
-     * @param origin change listener that caused the change, or null if
-     * the change was not caused by a change listener.
-     *  
-     */
-    public void set(boolean newValue, IChangeListener origin) {
-        super.setState(new Boolean(newValue), origin);
-    }
-
-    /**
-     * Returns the current value as a boolean
-     * 
-     * @return the current value
-     */
-    public boolean get() {
-        return ((Boolean) getState()).booleanValue();
-    }
-}
Index: Eclipse UI/org/eclipse/ui/internal/EditorView.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/EditorView.java
diff -N Eclipse UI/org/eclipse/ui/internal/EditorView.java
--- Eclipse UI/org/eclipse/ui/internal/EditorView.java	25 Feb 2005 20:52:12 -0000	1.6
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 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;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.part.ViewPart;
-
-public class EditorView extends ViewPart {
-    private EditorList editorList;
-
-    /**
-     * Constructs a new editorList view.
-     */
-    public EditorView() {
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPart.
-     */
-    public void createPartControl(Composite parent) {
-        IWorkbenchWindow window = getSite().getPage().getWorkbenchWindow();
-        editorList = new EditorList(window, null);
-        editorList.createControl(parent);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPart.
-     */
-    public void dispose() {
-        editorList.dispose();
-        editorList = null;
-        super.dispose();
-    }
-
-    /**
-     * @see IWorkbenchPart#setFocus()
-     */
-    public void setFocus() {
-        editorList.getControl().setFocus();
-    }
-}
Index: Eclipse UI/org/eclipse/ui/internal/ICoolItemGroup.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/ICoolItemGroup.java
diff -N Eclipse UI/org/eclipse/ui/internal/ICoolItemGroup.java
--- Eclipse UI/org/eclipse/ui/internal/ICoolItemGroup.java	25 Feb 2005 20:52:13 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 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;
-
-public interface ICoolItemGroup {
-    public String getContributingId(); // id of the action set that contributed the group
-
-    public String getId(); // id of the contribution
-}
Index: Eclipse UI/org/eclipse/ui/internal/LabelDecoratorAction.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/LabelDecoratorAction.java
diff -N Eclipse UI/org/eclipse/ui/internal/LabelDecoratorAction.java
--- Eclipse UI/org/eclipse/ui/internal/LabelDecoratorAction.java	25 Feb 2005 20:52:13 -0000	1.7
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 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;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.internal.decorators.DecoratorDefinition;
-
-/**
- * The LabelDecoratorAction is an action that toggles the 
- * enabled state of a decorator.
- * 
- * @since 2.0
- * @deprecated this action is no longer in use
- */
-public class LabelDecoratorAction extends Action {
-
-    private DecoratorDefinition decorator;
-
-    /**
-     * Constructor for LabelDecoratorAction.
-     * @param text
-     */
-    public LabelDecoratorAction(DecoratorDefinition definition) {
-        super(definition.getName());
-        decorator = definition;
-        setChecked(decorator.isEnabled());
-    }
-
-    /*
-     * see @Action.run()
-     */
-    public void run() {
-    }
-
-}
Index: Eclipse UI/org/eclipse/ui/internal/Messages.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/Messages.java
diff -N Eclipse UI/org/eclipse/ui/internal/Messages.java
--- Eclipse UI/org/eclipse/ui/internal/Messages.java	25 Feb 2005 20:52:13 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 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;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * @since 3.1
- */
-public class Messages {
-    private static final String BUNDLE_NAME = "org.eclipse.ui.internal.messages";//$NON-NLS-1$
-
-    private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
-            .getBundle(BUNDLE_NAME);
-
-    private Messages() {
-    }
-
-    public static String getString(String key) {
-        // TODO Auto-generated method stub
-        try {
-            return RESOURCE_BUNDLE.getString(key);
-        } catch (MissingResourceException e) {
-            return '!' + key + '!';
-        }
-    }
-}
Index: Eclipse UI/org/eclipse/ui/internal/OpenedPerspectivesMenu.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/OpenedPerspectivesMenu.java
diff -N Eclipse UI/org/eclipse/ui/internal/OpenedPerspectivesMenu.java
--- Eclipse UI/org/eclipse/ui/internal/OpenedPerspectivesMenu.java	25 Feb 2005 20:52:13 -0000	1.8
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 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;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-
-/**
- * A dynamic contribution item which shows all opened perspectives
- * in the window's active page.
- */
-public class OpenedPerspectivesMenu extends ContributionItem {
-    private IWorkbenchWindow window;
-
-    private boolean showSeparator;
-
-    private static final int MAX_TEXT_LENGTH = 40;
-
-    /**
-     * Create a new instance.
-     */
-    public OpenedPerspectivesMenu(IWorkbenchWindow window, String id,
-            boolean showSeparator) {
-        super(id);
-        this.window = window;
-        this.showSeparator = showSeparator;
-    }
-
-    /**
-     * Returns the text for a perspective. This may be truncated to fit
-     * within the MAX_TEXT_LENGTH.
-     */
-    private String calcText(int number, IPerspectiveDescriptor persp) {
-        StringBuffer sb = new StringBuffer();
-        if (number < 10)
-            sb.append('&');
-        sb.append(number);
-        sb.append(' ');
-        String suffix = persp.getLabel();
-        if (suffix.length() <= MAX_TEXT_LENGTH) {
-            sb.append(suffix);
-        } else {
-            sb.append(suffix.substring(0, MAX_TEXT_LENGTH / 2));
-            sb.append("..."); //$NON-NLS-1$
-            sb.append(suffix.substring(suffix.length() - MAX_TEXT_LENGTH / 2));
-        }
-        return sb.toString();
-    }
-
-    /**
-     * Fills the given menu with menu items for all opened perspectives.
-     */
-    public void fill(Menu menu, int index) {
-        final IWorkbenchPage page = window.getActivePage();
-        if (page == null)
-            return;
-
-        // Add separator.
-        if (showSeparator) {
-            new MenuItem(menu, SWT.SEPARATOR, index);
-            ++index;
-        }
-
-        // Add one item for each opened perspective.
-        IPerspectiveDescriptor activePersp = page.getPerspective();
-        IPerspectiveDescriptor descriptors[] = page.getOpenPerspectives();
-        int count = 1;
-        for (int i = 0; i < descriptors.length; i++) {
-            final IPerspectiveDescriptor desc = (IPerspectiveDescriptor) descriptors[i];
-            MenuItem mi = new MenuItem(menu, SWT.RADIO, index);
-            mi.setSelection(desc == activePersp);
-            mi.setText(calcText(count, desc));
-            // avoid hanging onto page or perspective directly in menu
-            mi.addSelectionListener(new SelectionAdapter() {
-                public void widgetSelected(SelectionEvent e) {
-                    IWorkbenchPage page = window.getActivePage();
-                    if (page != null) {
-                        page.setPerspective(desc);
-                    }
-                }
-            });
-
-            index++;
-            count++;
-        }
-    }
-
-    /**
-     * Overridden to always return true and force dynamic menu building.
-     */
-    public boolean isDynamic() {
-        return true;
-    }
-}
Index: Eclipse UI/org/eclipse/ui/internal/PartDropTarget.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/PartDropTarget.java
diff -N Eclipse UI/org/eclipse/ui/internal/PartDropTarget.java
--- Eclipse UI/org/eclipse/ui/internal/PartDropTarget.java	25 Feb 2005 20:52:12 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 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;
-
-class PartDropTarget {
-    LayoutPart part;
-
-    PartDropTarget(LayoutPart part) {
-        this.part = part;
-    }
-}
Index: Eclipse UI/org/eclipse/ui/internal/PerspectiveHistory.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/PerspectiveHistory.java
diff -N Eclipse UI/org/eclipse/ui/internal/PerspectiveHistory.java
--- Eclipse UI/org/eclipse/ui/internal/PerspectiveHistory.java	25 Feb 2005 20:52:11 -0000	1.8
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 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;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.util.ListenerList;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveRegistry;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This is used to store the most recently used (MRU) list
- * of perspectives for the entire workbench.
- */
-public class PerspectiveHistory {
-
-    private static final int DEFAULT_DEPTH = 50;
-
-    private ArrayList shortcuts;
-
-    private IPerspectiveRegistry reg;
-
-    private ListenerList listeners = new ListenerList();
-
-    public PerspectiveHistory(IPerspectiveRegistry reg) {
-        this.shortcuts = new ArrayList(DEFAULT_DEPTH);
-        this.reg = reg;
-    }
-
-    public void addListener(IPropertyListener l) {
-        listeners.add(l);
-    }
-
-    public void removeListener(IPropertyListener l) {
-        listeners.remove(l);
-    }
-
-    private void fireChange() {
-        Object[] array = listeners.getListeners();
-        for (int i = 0; i < array.length; i++) {
-            IPropertyListener element = (IPropertyListener) array[i];
-            element.propertyChanged(this, 0);
-        }
-    }
-
-    public IStatus restoreState(IMemento memento) {
-        IMemento[] children = memento.getChildren("desc"); //$NON-NLS-1$
-        for (int i = 0; i < children.length && i < DEFAULT_DEPTH; i++) {
-            IPerspectiveDescriptor desc = reg.findPerspectiveWithId(children[i]
-                    .getID());
-            if (desc != null)
-                shortcuts.add(desc);
-        }
-        return new Status(IStatus.OK, PlatformUI.PLUGIN_ID, 0, "", null); //$NON-NLS-1$
-    }
-
-    public IStatus saveState(IMemento memento) {
-        Iterator iter = shortcuts.iterator();
-        while (iter.hasNext()) {
-            IPerspectiveDescriptor desc = (IPerspectiveDescriptor) iter.next();
-            memento.createChild("desc", desc.getId()); //$NON-NLS-1$
-        }
-        return new Status(IStatus.OK, PlatformUI.PLUGIN_ID, 0, "", null); //$NON-NLS-1$
-    }
-
-    public void add(String id) {
-        IPerspectiveDescriptor desc = reg.findPerspectiveWithId(id);
-        if (desc != null)
-            add(desc);
-    }
-
-    public void add(IPerspectiveDescriptor desc) {
-        // Avoid duplicates
-        if (shortcuts.contains(desc))
-            return;
-
-        // If the shortcut list will be too long, remove oldest ones			
-        int size = shortcuts.size();
-        int preferredSize = DEFAULT_DEPTH;
-        while (size >= preferredSize) {
-            size--;
-            shortcuts.remove(size);
-        }
-
-        // Insert at top as most recent
-        shortcuts.add(0, desc);
-        fireChange();
-    }
-
-    public void refreshFromRegistry() {
-        boolean change = false;
-
-        Iterator iter = shortcuts.iterator();
-        while (iter.hasNext()) {
-            IPerspectiveDescriptor desc = (IPerspectiveDescriptor) iter.next();
-            if (reg.findPerspectiveWithId(desc.getId()) == null) {
-                iter.remove();
-                change = true;
-            }
-        }
-
-        if (change)
-            fireChange();
-    }
-
-    /**
-     * Copy the requested number of items from the history into
-     * the destination list at the given index.
-     * 
-     * @param dest destination list to contain the items
-     * @param destStart index in destination list to start copying items at
-     * @param count number of items to copy from history
-     * @return the number of items actually copied
-     */
-    public int copyItems(List dest, int destStart, int count) {
-        int itemCount = count;
-        if (itemCount > shortcuts.size())
-            itemCount = shortcuts.size();
-
-        for (int i = 0; i < itemCount; i++)
-            dest.add(destStart + i, shortcuts.get(i));
-
-        return itemCount;
-    }
-
-    //for dynamic UI 
-    public void removeItem(Object item) {
-        for (int i = 0; i < shortcuts.size(); i++)
-            if (shortcuts.get(i) == item) {
-                shortcuts.remove(i);
-                break;
-            }
-    }
-}
-
Index: Eclipse UI/org/eclipse/ui/internal/Workbench.java
===================================================================
RCS file: /home/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/Workbench.java,v
retrieving revision 1.322
diff -u -r1.322 Workbench.java
--- Eclipse UI/org/eclipse/ui/internal/Workbench.java	29 Mar 2005 01:02:52 -0000	1.322
+++ Eclipse UI/org/eclipse/ui/internal/Workbench.java	13 Apr 2005 18:29:47 -0000
@@ -98,9 +98,9 @@
 import org.eclipse.ui.internal.activities.ws.WorkbenchActivitySupport;
 import org.eclipse.ui.internal.browser.WorkbenchBrowserSupport;
 import org.eclipse.ui.internal.commands.CommandService;
-import org.eclipse.ui.internal.commands.ws.WorkbenchCommandSupport;
+import org.eclipse.ui.internal.commands.WorkbenchCommandSupport;
 import org.eclipse.ui.internal.contexts.ContextService;
-import org.eclipse.ui.internal.contexts.ws.WorkbenchContextSupport;
+import org.eclipse.ui.internal.contexts.WorkbenchContextSupport;
 import org.eclipse.ui.internal.dialogs.PropertyPageContributorManager;
 import org.eclipse.ui.internal.handlers.HandlerService;
 import org.eclipse.ui.internal.help.WorkbenchHelpSystem;
Index: Eclipse UI/org/eclipse/ui/internal/about/ConfigurationLogErrorLogSection.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/about/ConfigurationLogErrorLogSection.java
diff -N Eclipse UI/org/eclipse/ui/internal/about/ConfigurationLogErrorLogSection.java
--- Eclipse UI/org/eclipse/ui/internal/about/ConfigurationLogErrorLogSection.java	25 Feb 2005 20:52:37 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 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.about;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.io.Reader;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.about.ISystemSummarySection;
-
-/**
- * This class puts the content of the platform's error log into the system
- * summary dialog.
- * 
- * @since 3.0
- */
-public class ConfigurationLogErrorLogSection implements ISystemSummarySection {
-
-    /**
-     * Appends the contents of the .log file
-     * 
-     * @see org.eclipse.ui.about.ISystemSummarySection#write(java.io.PrintWriter)
-     */
-    public void write(PrintWriter writer) {
-        File log = new File(Platform.getLogFileLocation().toOSString());
-        if (log.exists()) {
-            Reader reader = null;
-            try {
-                reader = new InputStreamReader(new FileInputStream(log),
-                        "UTF-8"); //$NON-NLS-1$
-                char[] chars = new char[8192];
-                while (true) {
-                    int read = reader.read(chars);
-                    if (read <= 0)
-                        break;
-                    writer.write(chars, 0, read);
-                }
-            } catch (IOException e) {
-                writer.println("Error reading .log file"); //$NON-NLS-1$
-            } finally {
-                try {
-                    reader.close();
-                } catch (IOException e) {
-                    // do nothing
-                }
-            }
-        }
-    }
-}
Index: Eclipse UI/org/eclipse/ui/internal/commands/ws/WorkbenchCommandSupport.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/commands/ws/WorkbenchCommandSupport.java
diff -N Eclipse UI/org/eclipse/ui/internal/commands/ws/WorkbenchCommandSupport.java
--- Eclipse UI/org/eclipse/ui/internal/commands/ws/WorkbenchCommandSupport.java	22 Mar 2005 20:02:00 -0000	1.61
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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.commands.ws;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.commands.CommandManager;
-import org.eclipse.core.commands.contexts.ContextManager;
-import org.eclipse.jface.bindings.BindingManager;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.LegacyHandlerSubmissionExpression;
-import org.eclipse.ui.commands.HandlerSubmission;
-import org.eclipse.ui.commands.ICommandManager;
-import org.eclipse.ui.commands.IWorkbenchCommandSupport;
-import org.eclipse.ui.commands.Priority;
-import org.eclipse.ui.handlers.IHandlerActivation;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.internal.commands.CommandManagerFactory;
-import org.eclipse.ui.internal.commands.CommandManagerWrapper;
-import org.eclipse.ui.internal.handlers.LegacyHandlerWrapper;
-
-/**
- * Provides command support in terms of the workbench.
- * 
- * @since 3.0
- */
-public class WorkbenchCommandSupport implements IWorkbenchCommandSupport {
-
-	/**
-	 * The map of activations that have been given to the handler service (<code>IHandlerActivation</code>),
-	 * indexed by the submissions (<code>HandlerSubmission</code>). This map
-	 * should be <code>null</code> if there are no such activations.
-	 */
-	private Map activationsBySubmission = null;
-
-	/**
-	 * The mutable command manager that should be notified of changes to the
-	 * list of active handlers. This value is never <code>null</code>.
-	 */
-	private final CommandManagerWrapper commandManagerWrapper;
-
-	/**
-	 * The handler service for the workbench. This value is never
-	 * <code>null</code>.
-	 */
-	private final IHandlerService handlerService;
-
-	/**
-	 * Constructs a new instance of <code>WorkbenchCommandSupport</code>
-	 * 
-	 * @param bindingManager
-	 *            The binding manager providing support for the command manager;
-	 *            must not be <code>null</code>.
-	 * @param commandManager
-	 *            The command manager for the workbench; must not be
-	 *            <code>null</code>.
-	 * @param contextManager
-	 *            The context manager providing support for the command manager
-	 *            and binding manager; must not be <code>null</code>.
-	 * @param handlerService
-	 *            The handler service for the workbench; must not be
-	 *            <code>null</code>.
-	 */
-	public WorkbenchCommandSupport(final BindingManager bindingManager,
-			final CommandManager commandManager,
-			final ContextManager contextManager,
-			final IHandlerService handlerService) {
-		if (handlerService == null) {
-			throw new NullPointerException("The handler service cannot be null"); //$NON-NLS-1$
-		}
-
-		this.handlerService = handlerService;
-
-		commandManagerWrapper = CommandManagerFactory.getCommandManagerWrapper(
-				bindingManager, commandManager, contextManager);
-
-		// Initialize the old key formatter settings.
-		org.eclipse.ui.keys.KeyFormatterFactory
-				.setDefault(org.eclipse.ui.keys.SWTKeySupport
-						.getKeyFormatterForPlatform());
-	}
-
-	public final void addHandlerSubmission(
-			final HandlerSubmission handlerSubmission) {
-		/*
-		 * Create the source priorities based on the conditions mentioned in the
-		 * submission.
-		 */
-		int sourcePriorities = 0;
-		if (handlerSubmission.getActivePartId() != null) {
-			sourcePriorities |= ISources.ACTIVE_PART;
-		}
-		if (handlerSubmission.getActiveShell() != null) {
-			sourcePriorities |= (ISources.ACTIVE_SHELL | ISources.ACTIVE_WORKBENCH_WINDOW);
-		}
-		if (handlerSubmission.getActiveWorkbenchPartSite() != null) {
-			sourcePriorities |= ISources.ACTIVE_SITE;
-		}
-		if (handlerSubmission.getPriority() == Priority.LEGACY) {
-			sourcePriorities |= ISources.LEGACY_LEGACY;
-		} else if (handlerSubmission.getPriority() == Priority.LOW) {
-			sourcePriorities |= ISources.LEGACY_LOW;
-		} else if (handlerSubmission.getPriority() == Priority.MEDIUM) {
-			sourcePriorities |= ISources.LEGACY_MEDIUM;
-		}
-
-		final IHandlerActivation activation = handlerService.activateHandler(
-				handlerSubmission.getCommandId(), new LegacyHandlerWrapper(
-						handlerSubmission.getHandler()),
-				new LegacyHandlerSubmissionExpression(handlerSubmission
-						.getActivePartId(), handlerSubmission.getActiveShell(),
-						handlerSubmission.getActiveWorkbenchPartSite()),
-				sourcePriorities);
-		if (activationsBySubmission == null) {
-			activationsBySubmission = new HashMap();
-		}
-		activationsBySubmission.put(handlerSubmission, activation);
-	}
-
-	public final void addHandlerSubmissions(final Collection handlerSubmissions) {
-		final Iterator submissionItr = handlerSubmissions.iterator();
-		while (submissionItr.hasNext()) {
-			addHandlerSubmission((HandlerSubmission) submissionItr.next());
-		}
-	}
-
-	public ICommandManager getCommandManager() {
-		return commandManagerWrapper;
-	}
-
-	public final void removeHandlerSubmission(
-			final HandlerSubmission handlerSubmission) {
-		if (activationsBySubmission == null) {
-			return;
-		}
-
-		final Object value = activationsBySubmission.remove(handlerSubmission);
-		if (value instanceof IHandlerActivation) {
-			final IHandlerActivation activation = (IHandlerActivation) value;
-			handlerService.deactivateHandler(activation);
-		}
-	}
-
-	public final void removeHandlerSubmissions(
-			final Collection handlerSubmissions) {
-		final Iterator submissionItr = handlerSubmissions.iterator();
-		while (submissionItr.hasNext()) {
-			removeHandlerSubmission((HandlerSubmission) submissionItr.next());
-		}
-	}
-}
Index: Eclipse UI/org/eclipse/ui/internal/contexts/ws/WorkbenchContextSupport.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/contexts/ws/WorkbenchContextSupport.java
diff -N Eclipse UI/org/eclipse/ui/internal/contexts/ws/WorkbenchContextSupport.java
--- Eclipse UI/org/eclipse/ui/internal/contexts/ws/WorkbenchContextSupport.java	22 Mar 2005 21:04:50 -0000	1.51
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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.contexts.ws;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.commands.contexts.ContextManager;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.LegacyHandlerSubmissionExpression;
-import org.eclipse.ui.contexts.EnabledSubmission;
-import org.eclipse.ui.contexts.IContextActivation;
-import org.eclipse.ui.contexts.IContextManager;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.contexts.IWorkbenchContextSupport;
-import org.eclipse.ui.internal.Workbench;
-import org.eclipse.ui.internal.contexts.ContextManagerFactory;
-import org.eclipse.ui.internal.contexts.ContextManagerWrapper;
-import org.eclipse.ui.keys.IBindingService;
-
-/**
- * Provides support for contexts within the workbench -- including key bindings,
- * and some default contexts for shell types.
- * 
- * @since 3.0
- */
-public class WorkbenchContextSupport implements IWorkbenchContextSupport {
-
-	/**
-	 * The map of activations that have been given to the handler service (<code>IHandlerActivation</code>),
-	 * indexed by the submissions (<code>HandlerSubmission</code>). This map
-	 * should be <code>null</code> if there are no such activations.
-	 */
-	private Map activationsBySubmission = null;
-
-	/**
-	 * The binding service for the workbench. This value is never
-	 * <code>null</code>.
-	 */
-	private IBindingService bindingService;
-
-	/**
-	 * The context service for the workbench. This value is never
-	 * <code>null</code>.
-	 */
-	private IContextService contextService;
-
-	/**
-	 * The legacy context manager supported by this application.
-	 */
-	private ContextManagerWrapper contextManagerWrapper;
-
-	/**
-	 * The workbench for which context support is being provided. This value
-	 * must not be <code>null</code>.
-	 */
-	private final Workbench workbench;
-
-	/**
-	 * Constructs a new instance of <code>WorkbenchCommandSupport</code>.
-	 * This attaches the key binding support, and adds a global shell activation
-	 * filter.
-	 * 
-	 * @param workbenchToSupport
-	 *            The workbench that needs to be supported by this instance;
-	 *            must not be <code>null</code>.
-	 * @param contextManager
-	 *            The context manager to be wrappered; must not be
-	 *            <code>null</code>.
-	 */
-	public WorkbenchContextSupport(final Workbench workbenchToSupport,
-			final ContextManager contextManager) {
-		workbench = workbenchToSupport;
-		contextService = (IContextService) workbench
-				.getAdapter(IContextService.class);
-		bindingService = (IBindingService) workbench
-				.getAdapter(IBindingService.class);
-		contextManagerWrapper = ContextManagerFactory
-				.getContextManagerWrapper(contextManager);
-	}
-
-	public final void addEnabledSubmission(
-			final EnabledSubmission enabledSubmission) {
-		/*
-		 * Create the source priorities based on the conditions mentioned in the
-		 * submission.
-		 */
-		int sourcePriorities = 0;
-		if (enabledSubmission.getActivePartId() != null) {
-			sourcePriorities |= ISources.ACTIVE_PART;
-		}
-		if (enabledSubmission.getActiveShell() != null) {
-			sourcePriorities |= (ISources.ACTIVE_SHELL | ISources.ACTIVE_WORKBENCH_WINDOW);
-		}
-		if (enabledSubmission.getActiveWorkbenchPartSite() != null) {
-			sourcePriorities |= ISources.ACTIVE_SITE;
-		}
-
-		final IContextActivation activation = contextService.activateContext(
-				enabledSubmission.getContextId(),
-				new LegacyHandlerSubmissionExpression(enabledSubmission
-						.getActivePartId(), enabledSubmission.getActiveShell(),
-						enabledSubmission.getActiveWorkbenchPartSite()),
-				sourcePriorities);
-		if (activationsBySubmission == null) {
-			activationsBySubmission = new HashMap();
-		}
-		activationsBySubmission.put(enabledSubmission, activation);
-	}
-
-	public final void addEnabledSubmissions(final Collection enabledSubmissions) {
-		final Iterator submissionItr = enabledSubmissions.iterator();
-		while (submissionItr.hasNext()) {
-			addEnabledSubmission((EnabledSubmission) submissionItr.next());
-		}
-	}
-
-	public final IContextManager getContextManager() {
-		return contextManagerWrapper;
-	}
-
-	public final int getShellType(Shell shell) {
-		return contextService.getShellType(shell);
-	}
-
-	public final boolean isKeyFilterEnabled() {
-		return bindingService.isKeyFilterEnabled();
-	}
-
-	public final void openKeyAssistDialog() {
-		bindingService.openKeyAssistDialog();
-	}
-
-	public final boolean registerShell(final Shell shell, final int type) {
-		return contextService.registerShell(shell, type);
-	}
-
-	public final void removeEnabledSubmission(
-			final EnabledSubmission enabledSubmission) {
-		if (activationsBySubmission == null) {
-			return;
-		}
-
-		final Object value = activationsBySubmission.remove(enabledSubmission);
-		if (value instanceof IContextActivation) {
-			final IContextActivation activation = (IContextActivation) value;
-			contextService.deactivateContext(activation);
-		}
-	}
-
-	public final void removeEnabledSubmissions(
-			final Collection enabledSubmissions) {
-		final Iterator submissionItr = enabledSubmissions.iterator();
-		while (submissionItr.hasNext()) {
-			removeEnabledSubmission((EnabledSubmission) submissionItr.next());
-		}
-	}
-
-	public final void setKeyFilterEnabled(final boolean enabled) {
-		bindingService.setKeyFilterEnabled(enabled);
-	}
-
-	public final boolean unregisterShell(final Shell shell) {
-		return contextService.unregisterShell(shell);
-	}
-}
Index: Eclipse UI/org/eclipse/ui/internal/dialogs/ColorThemeDemo.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/dialogs/ColorThemeDemo.java
diff -N Eclipse UI/org/eclipse/ui/internal/dialogs/ColorThemeDemo.java
--- Eclipse UI/org/eclipse/ui/internal/dialogs/ColorThemeDemo.java	25 Feb 2005 20:52:32 -0000	1.10
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.dialogs;
-
-/**
- * Class to encapsulate the set of widgets that will be used to indicate 
- * the current color theme of the workbench and give feedback on 
- * changes made.
- */
-public class ColorThemeDemo {
-
-    //	Composite sampleComposite;
-    //	CTabFolder sampleTabFolder; 
-    //
-    //	/**
-    //	 * Creates an instance of the <code>ColorThemeDemo</code> class.  
-    //	 * 
-    //	 * @param Composite parent   The parent containing the ColorThemeDemo widgets
-    //	 */
-    //	public ColorThemeDemo(Composite parent) {
-    //		createControl(parent);		
-    //	}
-    //	
-    //	/**
-    //	 * Create the set of widgets to display in the receiver.
-    //	 * 
-    //	 * @param Composite parent   The parent containing the ColorThemeDemo widgets
-    //	 */
-    //	private void createControl(Composite parent) {
-    //		Composite marginComposite = new Composite(parent, SWT.NONE);
-    //		GridLayout gl = new GridLayout();
-    //		gl.marginHeight = 1;
-    //		gl.marginWidth = 1;
-    //		
-    //		marginComposite.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_BLACK));
-    //		marginComposite.setLayout(gl);
-    //		GridData gd = new GridData();
-    //		gd.horizontalSpan = 2;
-    //		marginComposite.setLayoutData(gd);
-    //		
-    //		sampleComposite = new Composite(marginComposite, SWT.H_SCROLL | SWT.V_SCROLL);
-    //		sampleComposite.setLayout(new GridLayout());
-    //		GridData gridData = new GridData(GridData.FILL_BOTH);
-    //		sampleComposite.setData(gridData);
-    //			
-    //		sampleTabFolder = new CTabFolder(sampleComposite, SWT.BORDER);
-    //		sampleTabFolder.setSimpleTab(WorkbenchPlugin.getDefault().getPreferenceStore().getBoolean(IPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS));
-    //		sampleTabFolder.setData(new GridData(GridData.FILL_BOTH));
-    //		CTabItem temp = new CTabItem(sampleTabFolder, SWT.NONE);
-    //		temp.setText("Console");
-    //		Text text = new Text(sampleTabFolder, SWT.MULTI);
-    //		text.setText("Lorem ipsum dolor sit amet\n"); //$NON-NLS-1$
-    //		temp.setControl(text);
-    //		sampleTabFolder.setSelection(0);
-    //		temp = new CTabItem(sampleTabFolder, SWT.NONE);
-    //		temp.setText("Search");
-    //		
-    //		resetColors();
-    //	}
-    //
-    //	/**
-    //	 * Reset the colors in the receiver.
-    //	 */
-    //	public void resetColors() {
-    //		ColorSchemeService.setTabColors(sampleTabFolder);
-    //	}
-    //
-    //	/**
-    //	 * Redraw the receiver.
-    //	 */
-    //	void redraw() {
-    //		sampleTabFolder.redraw();
-    //	}
-    //	
-    //	/**
-    //	 * Set the Selected Tab background 
-    //	 * @param color
-    //	 */
-    //	public void setTabSelectionBGColor(Color color) {
-    //		sampleTabFolder.setSelectionBackground(WorkbenchColors.createGradientArray(sampleTabFolder.getDisplay(), color), WorkbenchColors.getActiveViewGradientPercents(), true); 
-    //	}
-    //	
-    //	/**
-    //	 * Set the Selected Tab foreground 
-    //	 * @param color
-    //	 */
-    //	public void setTabSelectionFGColor(Color color) {
-    //		sampleTabFolder.setSelectionForeground(color);
-    //	}
-    //	
-    //	/**
-    //	 * Set the Tab background 
-    //	 * @param color
-    //	 */
-    //	public void setTabBGColor(Color color) {
-    //		sampleTabFolder.setBackground(WorkbenchColors.createGradientArray(sampleTabFolder.getDisplay(), color), WorkbenchColors.getActiveViewGradientPercents(), true);	
-    //	}
-    //
-    //	/**
-    //	 * Set the Selected Tab foreground 
-    //	 * @param color
-    //	 */
-    //	public void setTabFGColor(Color color) {
-    //		sampleTabFolder.setForeground(color);	
-    //	}
-    //	
-    //
-}
Index: Eclipse UI/org/eclipse/ui/internal/dialogs/PreferencesContentProvider.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/dialogs/PreferencesContentProvider.java
diff -N Eclipse UI/org/eclipse/ui/internal/dialogs/PreferencesContentProvider.java
--- Eclipse UI/org/eclipse/ui/internal/dialogs/PreferencesContentProvider.java	25 Feb 2005 20:52:32 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.dialogs;
-
-import java.util.*;
-import org.eclipse.core.runtime.preferences.*;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * The PreferencesContentProvider is the content provider for the
- * preferences export tree.
- */
-public class PreferencesContentProvider implements ITreeContentProvider {
-
-	private static Set scopes = new HashSet();
-
-	static {
-		scopes.add(InstanceScope.SCOPE);
-		scopes.add(ConfigurationScope.SCOPE);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-	 *      java.lang.Object, java.lang.Object)
-	 */
-	public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-		// do nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object parent) {
-		Object[] children = getChildren(parent);
-		IEclipsePreferences[] preferences = new IEclipsePreferences[children.length];
-		System.arraycopy(children, 0, preferences, 0, children.length);
-		return preferences;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-		// do nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-	 */
-	public Object getParent(Object child) {
-		if (child instanceof IEclipsePreferences)
-			return ((IEclipsePreferences) child).parent();
-		return null;
-	}
-
-	private boolean hasKeys(Preferences node) throws BackingStoreException {
-		if (node.keys().length > 0)
-			return true;
-		String[] children = node.childrenNames();
-		for (int i = 0; i < children.length; i++) {
-			String child = children[i];
-			if (hasKeys(node.node(child)))
-				return true;
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-	 */
-	public Object[] getChildren(Object parent) {
-		ArrayList result = new ArrayList();
-		if (parent instanceof IEclipsePreferences) {
-			IEclipsePreferences node = (IEclipsePreferences) parent;
-
-			try {
-				if (node.parent() == null) {
-					// handle the case where we are given the root of the tree
-					String[] childrenNames = node.childrenNames();
-					for (int i = 0; childrenNames != null && i < childrenNames.length; i++) {
-						String child = childrenNames[i];
-						if (!scopes.contains(child))
-							continue;
-						Preferences preferences = node.node(child);
-						if (hasKeys(preferences))
-							result.add(preferences);
-					}
-				} else if (node.parent().parent() == null) {
-					// if we are on a second level
-					String[] childrenNames = node.childrenNames();
-					for (int i = 0; childrenNames != null && i < childrenNames.length; i++) {
-						String child = childrenNames[i];
-						Preferences preferences = node.node(child);
-						if (hasKeys(preferences))
-							result.add(preferences);
-					}
-				}
-
-			} catch (BackingStoreException e) {
-				e.printStackTrace();
-			}
-		}
-		return result.toArray(new Object[result.size()]);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-	 */
-	public boolean hasChildren(Object parent) {
-		IEclipsePreferences node = (IEclipsePreferences) parent;
-		try {
-			if (node.parent() == null && hasKeys(node))
-				return true;
-			if (node.parent().parent() == null && hasKeys(node))
-				return true;
-		} catch (BackingStoreException e) {
-			// do nothing
-		}
-		return false;
-	}
-}
Index: Eclipse UI/org/eclipse/ui/internal/keys/GnomeKeyFormatter.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/keys/GnomeKeyFormatter.java
diff -N Eclipse UI/org/eclipse/ui/internal/keys/GnomeKeyFormatter.java
--- Eclipse UI/org/eclipse/ui/internal/keys/GnomeKeyFormatter.java	25 Feb 2005 20:52:20 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 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.keys;
-
-import java.util.Comparator;
-import java.util.ResourceBundle;
-
-import org.eclipse.ui.internal.util.Util;
-import org.eclipse.ui.keys.KeySequence;
-import org.eclipse.ui.keys.KeyStroke;
-import org.eclipse.ui.keys.ModifierKey;
-
-public final class GnomeKeyFormatter extends AbstractKeyFormatter {
-
-    private final static class GnomeModifierKeyComparator extends
-            AbstractModifierKeyComparator {
-
-        protected int rank(ModifierKey modifierKey) {
-            if (ModifierKey.SHIFT.equals(modifierKey)) {
-                return 0;
-            }
-
-            if (ModifierKey.CTRL.equals(modifierKey)) {
-                return 1;
-            }
-
-            if (ModifierKey.ALT.equals(modifierKey)) {
-                return 2;
-            }
-
-            return Integer.MAX_VALUE;
-        }
-    }
-
-    private final static Comparator MODIFIER_KEY_COMPARATOR = new GnomeModifierKeyComparator();
-
-    private final static ResourceBundle RESOURCE_BUNDLE = ResourceBundle
-            .getBundle(GnomeKeyFormatter.class.getName());
-
-    protected String getKeyDelimiter() {
-        return Util.translateString(RESOURCE_BUNDLE, KEY_DELIMITER_KEY,
-                KeyStroke.KEY_DELIMITER, false, false);
-    }
-
-    protected String getKeyStrokeDelimiter() {
-        return Util.translateString(RESOURCE_BUNDLE, KEY_STROKE_DELIMITER_KEY,
-                KeySequence.KEY_STROKE_DELIMITER, false, false);
-    }
-
-    protected Comparator getModifierKeyComparator() {
-        return MODIFIER_KEY_COMPARATOR;
-    }
-}
Index: Eclipse UI/org/eclipse/ui/internal/keys/WindowsKeyFormatter.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/keys/WindowsKeyFormatter.java
diff -N Eclipse UI/org/eclipse/ui/internal/keys/WindowsKeyFormatter.java
--- Eclipse UI/org/eclipse/ui/internal/keys/WindowsKeyFormatter.java	25 Feb 2005 20:52:20 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 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.keys;
-
-import java.util.Comparator;
-import java.util.ResourceBundle;
-
-import org.eclipse.ui.internal.util.Util;
-import org.eclipse.ui.keys.KeySequence;
-import org.eclipse.ui.keys.KeyStroke;
-import org.eclipse.ui.keys.ModifierKey;
-
-public final class WindowsKeyFormatter extends AbstractKeyFormatter {
-
-    private final static class WindowsModifierKeyComparator extends
-            AbstractModifierKeyComparator {
-
-        protected int rank(ModifierKey modifierKey) {
-            if (ModifierKey.CTRL.equals(modifierKey)) {
-                return 0;
-            }
-
-            if (ModifierKey.ALT.equals(modifierKey)) {
-                return 1;
-            }
-
-            if (ModifierKey.SHIFT.equals(modifierKey)) {
-                return 2;
-            }
-
-            return Integer.MAX_VALUE;
-        }
-    }
-
-    private final static Comparator MODIFIER_KEY_COMPARATOR = new WindowsModifierKeyComparator();
-
-    private final static ResourceBundle RESOURCE_BUNDLE = ResourceBundle
-            .getBundle(WindowsKeyFormatter.class.getName());
-
-    protected String getKeyDelimiter() {
-        return Util.translateString(RESOURCE_BUNDLE, KEY_DELIMITER_KEY,
-                KeyStroke.KEY_DELIMITER, false, false);
-    }
-
-    protected String getKeyStrokeDelimiter() {
-        return Util.translateString(RESOURCE_BUNDLE, KEY_STROKE_DELIMITER_KEY,
-                KeySequence.KEY_STROKE_DELIMITER, false, false);
-    }
-
-    protected Comparator getModifierKeyComparator() {
-        return MODIFIER_KEY_COMPARATOR;
-    }
-}
Index: Eclipse UI/org/eclipse/ui/internal/keywords/KeywordRegistry.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/keywords/KeywordRegistry.java
diff -N Eclipse UI/org/eclipse/ui/internal/keywords/KeywordRegistry.java
--- Eclipse UI/org/eclipse/ui/internal/keywords/KeywordRegistry.java	28 Mar 2005 21:26:56 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 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.keywords;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.dynamichelpers.ExtensionTracker;
-import org.eclipse.core.runtime.dynamichelpers.IExtensionChangeHandler;
-import org.eclipse.core.runtime.dynamichelpers.IExtensionTracker;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.IWorkbenchConstants;
-
-/**
- * Contains extensions defined on the <code>keywords</code> extension point.
- * 
- * @since 3.1
- */
-public final class KeywordRegistry implements IExtensionChangeHandler {
-
-	private static final String ATT_ID = "id"; //$NON-NLS-1$
-
-	private static final String ATT_LABEL = "label"; //$NON-NLS-1$
-
-	private static KeywordRegistry instance;
-
-	private static final String TAG_KEYWORD = "keyword"; //$NON-NLS-1$
-
-	/**
-	 * Return the singleton instance of the <code>KeywordRegistry</code>.
-	 * 
-	 * @return the singleton registry
-	 */
-	public static KeywordRegistry getInstance() {
-		if (instance == null) {
-			instance = new KeywordRegistry();
-		}
-
-		return instance;
-	}
-
-	/**
-	 * Map of id->labels.
-	 */
-	private Map internalKeywordMap = new HashMap();
-	
-	/**
-	 * Private constructor.
-	 */
-	private KeywordRegistry() {
-		IExtensionTracker tracker = PlatformUI.getWorkbench().getExtensionTracker();
-        tracker.registerHandler(this, ExtensionTracker.createExtensionPointFilter(getExtensionPointFilter()));
-		IExtension[] extensions = getExtensionPointFilter().getExtensions();
-		for (int i = 0; i < extensions.length; i++) {
-			addExtension(PlatformUI.getWorkbench().getExtensionTracker(),
-					extensions[i]);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.dynamicHelpers.IExtensionChangeHandler#addExtension(org.eclipse.core.runtime.dynamicHelpers.IExtensionTracker, org.eclipse.core.runtime.IExtension)
-	 */
-	public void addExtension(IExtensionTracker tracker, IExtension extension) {
-		IConfigurationElement[] elements = extension.getConfigurationElements();
-		for (int i = 0; i < elements.length; i++) {
-			if (elements[i].getName().equals(TAG_KEYWORD)) {
-				String name = elements[i].getAttribute(ATT_LABEL);
-				String id = elements[i].getAttribute(ATT_ID);
-				internalKeywordMap.put(id, name);
-				PlatformUI.getWorkbench().getExtensionTracker().registerObject(
-						extension, id, IExtensionTracker.REF_WEAK);
-			}
-		}
-	}
-
-	private IExtensionPoint getExtensionPointFilter() {
-		return Platform.getExtensionRegistry().getExtensionPoint(
-				PlatformUI.PLUGIN_ID, IWorkbenchConstants.PL_KEYWORDS);
-	}
-	
-	/**
-	 * Return the label associated with the given keyword.
-	 * 
-	 * @param id the keyword id
-	 * @return the label or <code>null</code>
-	 */
-	public String getKeywordLabel(String id) {
-		return (String) internalKeywordMap.get(id);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.dynamicHelpers.IExtensionChangeHandler#removeExtension(org.eclipse.core.runtime.IExtension, java.lang.Object[])
-	 */
-	public void removeExtension(IExtension extension, Object[] objects) {
-		for (int i = 0; i < objects.length; i++) {
-			if (objects[i] instanceof String) {
-				internalKeywordMap.remove(objects[i]);
-			}
-		}
-	}
-}
Index: Eclipse UI/org/eclipse/ui/internal/preferences/DelegatingPropertyMap.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/preferences/DelegatingPropertyMap.java
diff -N Eclipse UI/org/eclipse/ui/internal/preferences/DelegatingPropertyMap.java
--- Eclipse UI/org/eclipse/ui/internal/preferences/DelegatingPropertyMap.java	25 Feb 2005 20:52:22 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.preferences;
-
-import java.util.Set;
-
-/**
- * Creates a wrapper around another given map. All methods delegate to the given
- * map, however this object maintains its own localized listener list. This can
- * be used to protect global property maps from listener leaks. For example, assume
- * that some client object needs access to some global property map. Instead of
- * giving the client object direct access to the global map, wrap the global map
- * in a DelegatingPropertyMap and give the client code access to the wrapper instead.
- * When it comes time to destroy the client object, dispose the wrapper. This will
- * remove all listeners which may have been attached by the client code.
- * 
- * @since 3.1
- */
-public class DelegatingPropertyMap extends PropertyMapAdapter {
-
-    private IDynamicPropertyMap realMap;
-    
-    private IPropertyMapListener listener = new IPropertyMapListener() {
-        public void propertyChanged(String[] preferenceIds) {
-            firePropertyChange(preferenceIds);
-        }
-
-        public void listenerAttached() {
-        }
-    };
-    
-    public DelegatingPropertyMap(IDynamicPropertyMap originalMap) {
-        this.realMap = originalMap;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.PropertyMapAdapter#attachListener()
-     */
-    protected void attachListener() {
-        realMap.addListener(listener);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.PropertyMapAdapter#detachListener()
-     */
-    protected void detachListener() {
-        realMap.removeListener(listener);    
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#keySet()
-     */
-    public Set keySet() {
-        return realMap.keySet();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#getValue(java.lang.String, java.lang.Class)
-     */
-    public Object getValue(String propertyId, Class propertyType) {
-        return realMap.getValue(propertyId, propertyType);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#propertyExists(java.lang.String)
-     */
-    public boolean propertyExists(String propertyId) {
-        return realMap.propertyExists(propertyId);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#setValue(java.lang.String, java.lang.Object)
-     */
-    public void setValue(String propertyId, Object newValue) {
-        realMap.setValue(propertyId, newValue);
-    }
-
-}
Index: Eclipse UI/org/eclipse/ui/internal/preferences/PreferenceStoreDefaultAdapter.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/preferences/PreferenceStoreDefaultAdapter.java
diff -N Eclipse UI/org/eclipse/ui/internal/preferences/PreferenceStoreDefaultAdapter.java
--- Eclipse UI/org/eclipse/ui/internal/preferences/PreferenceStoreDefaultAdapter.java	25 Feb 2005 20:52:22 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.preferences;
-
-import java.util.Set;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-
-
-/**
- * @since 3.1
- */
-public final class PreferenceStoreDefaultAdapter implements IPropertyMap {
-    
-    private IPreferenceStore store;
-    
-    public PreferenceStoreDefaultAdapter(IPreferenceStore toConvert) {
-        this.store = toConvert;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#getValue(java.lang.String, java.lang.Class)
-     */
-    public Object getValue(String propertyId, Class propertyType) {
-        if (propertyType.isAssignableFrom(String.class)) {
-            return store.getDefaultString(propertyId);
-        }
-        
-        if (propertyType == Boolean.class) {
-            return new Boolean(store.getDefaultBoolean(propertyId));
-        }
-        
-        if (propertyType == Double.class) {
-            return new Double(store.getDefaultDouble(propertyId));
-        }
-        
-        if (propertyType == Float.class) {
-            return new Float(store.getDefaultFloat(propertyId));
-        }
-        
-        if (propertyType == Integer.class) {
-            return new Integer(store.getDefaultInt(propertyId));
-        }
-        
-        if (propertyType == Long.class) {
-            return new Long(store.getDefaultLong(propertyId));
-        }
-        
-        return null;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#isCommonProperty(java.lang.String)
-     */
-    public boolean isCommonProperty(String propertyId) {
-        return true;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#keySet()
-     */
-    public Set keySet() {
-        throw new UnsupportedOperationException();
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#propertyExists(java.lang.String)
-     */
-    public boolean propertyExists(String propertyId) {
-        return true;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#setValue(java.lang.String, java.lang.Object)
-     */
-    public void setValue(String propertyId, Object newValue) {
-        if (newValue instanceof String) {
-            store.setDefault(propertyId, (String)newValue);
-        } else if (newValue instanceof Integer) {
-            store.setDefault(propertyId, ((Integer)newValue).intValue());
-        } else if (newValue instanceof Boolean) {
-            store.setDefault(propertyId, ((Boolean)newValue).booleanValue());
-        } else if (newValue instanceof Double) {
-            store.setDefault(propertyId, ((Double)newValue).doubleValue());
-        } else if (newValue instanceof Float) {
-            store.setDefault(propertyId, ((Float)newValue).floatValue());
-        } else if (newValue instanceof Integer) {
-            store.setDefault(propertyId, ((Integer)newValue).intValue());
-        } else if (newValue instanceof Long) {
-            store.setDefault(propertyId, ((Long)newValue).longValue());
-        }
-    }
-}
Index: Eclipse UI/org/eclipse/ui/internal/preferences/PreferencesDefaultAdapter.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/preferences/PreferencesDefaultAdapter.java
diff -N Eclipse UI/org/eclipse/ui/internal/preferences/PreferencesDefaultAdapter.java
--- Eclipse UI/org/eclipse/ui/internal/preferences/PreferencesDefaultAdapter.java	25 Feb 2005 20:52:22 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.preferences;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Preferences;
-
-/**
- * @since 3.1
- */
-public final class PreferencesDefaultAdapter implements IPropertyMap {
-    
-    private Preferences store;
-    
-    public PreferencesDefaultAdapter(Preferences toConvert) {
-        this.store = toConvert;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#getValue(java.lang.String, java.lang.Class)
-     */
-    public Object getValue(String propertyId, Class propertyType) {
-        if (propertyType.isAssignableFrom(String.class)) {
-            return store.getDefaultString(propertyId);
-        }
-        
-        if (propertyType == Boolean.class) {
-            return new Boolean(store.getDefaultBoolean(propertyId));
-        }
-        
-        if (propertyType == Double.class) {
-            return new Double(store.getDefaultDouble(propertyId));
-        }
-        
-        if (propertyType == Float.class) {
-            return new Float(store.getDefaultFloat(propertyId));
-        }
-        
-        if (propertyType == Integer.class) {
-            return new Integer(store.getDefaultInt(propertyId));
-        }
-        
-        if (propertyType == Long.class) {
-            return new Long(store.getDefaultLong(propertyId));
-        }
-        
-        return null;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#isCommonProperty(java.lang.String)
-     */
-    public boolean isCommonProperty(String propertyId) {
-        return true;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#keySet()
-     */
-    public Set keySet() {
-        Set result = new HashSet();
-        
-        String[] names = store.propertyNames();
-        
-        for (int i = 0; i < names.length; i++) {
-            String string = names[i];
-            
-            result.add(string);
-        }
-        
-        return result;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#propertyExists(java.lang.String)
-     */
-    public boolean propertyExists(String propertyId) {
-        return true;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#setValue(java.lang.String, java.lang.Object)
-     */
-    public void setValue(String propertyId, Object newValue) {
-        if (newValue instanceof String) {
-            store.setDefault(propertyId, (String)newValue);
-        } else if (newValue instanceof Integer) {
-            store.setDefault(propertyId, ((Integer)newValue).intValue());
-        } else if (newValue instanceof Boolean) {
-            store.setDefault(propertyId, ((Boolean)newValue).booleanValue());
-        } else if (newValue instanceof Double) {
-            store.setDefault(propertyId, ((Double)newValue).doubleValue());
-        } else if (newValue instanceof Float) {
-            store.setDefault(propertyId, ((Float)newValue).floatValue());
-        } else if (newValue instanceof Integer) {
-            store.setDefault(propertyId, ((Integer)newValue).intValue());
-        } else if (newValue instanceof Long) {
-            store.setDefault(propertyId, ((Long)newValue).longValue());
-        }
-    }
-}
Index: Eclipse UI/org/eclipse/ui/internal/preferences/PropertyMap.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/preferences/PropertyMap.java
diff -N Eclipse UI/org/eclipse/ui/internal/preferences/PropertyMap.java
--- Eclipse UI/org/eclipse/ui/internal/preferences/PropertyMap.java	25 Feb 2005 20:52:22 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.preferences;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * @since 3.1
- */
-public final class PropertyMap implements IPropertyMap {
-
-    private Map map;
-    
-    public PropertyMap() {
-        this(new HashMap());
-    }
-    
-    public PropertyMap(Map underlyingMap) {
-        map = underlyingMap;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#keySet()
-     */
-    public Set keySet() {
-        return map.keySet();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#getValue(java.lang.String, java.lang.Class)
-     */
-    public Object getValue(String propertyId, Class propertyType) {
-        Object result = map.get(propertyId);
-        
-        if (propertyType.isInstance(result)) {
-            return result;
-        }
-        
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#isCommonProperty(java.lang.String)
-     */
-    public boolean isCommonProperty(String propertyId) {
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#propertyExists(java.lang.String)
-     */
-    public boolean propertyExists(String propertyId) {
-        return map.containsKey(propertyId);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.IPropertyMap#setValue(java.lang.String, java.lang.Object)
-     */
-    public void setValue(String propertyId, Object newValue) {
-        map.put(propertyId, newValue);
-    }
-    
-    public void removeValue(String propertyId) {
-        map.remove(propertyId);
-    }
-    
-    public boolean equals(Object toCompare) {
-        return toCompare instanceof IPropertyMap && PropertyUtil.isEqual(this, (IPropertyMap)toCompare);
-    }
-}
Index: Eclipse UI/org/eclipse/ui/internal/preferences/WorkbenchPreferenceExtensionNode.java
===================================================================
RCS file: /home/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/preferences/WorkbenchPreferenceExtensionNode.java,v
retrieving revision 1.5
diff -u -r1.5 WorkbenchPreferenceExtensionNode.java
--- Eclipse UI/org/eclipse/ui/internal/preferences/WorkbenchPreferenceExtensionNode.java	18 Mar 2005 14:05:26 -0000	1.5
+++ Eclipse UI/org/eclipse/ui/internal/preferences/WorkbenchPreferenceExtensionNode.java	13 Apr 2005 18:29:48 -0000
@@ -22,8 +22,8 @@
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.internal.keywords.KeywordRegistry;
 import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
+import org.eclipse.ui.internal.registry.KeywordRegistry;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 
 /**
Index: Eclipse UI/org/eclipse/ui/internal/presentations/defaultpresentation/DefaultPropertyListener.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/presentations/defaultpresentation/DefaultPropertyListener.java
diff -N Eclipse UI/org/eclipse/ui/internal/presentations/defaultpresentation/DefaultPropertyListener.java
--- Eclipse UI/org/eclipse/ui/internal/presentations/defaultpresentation/DefaultPropertyListener.java	25 Feb 2005 20:52:32 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.presentations.defaultpresentation;
-
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.internal.preferences.AbstractPropertyListener;
-import org.eclipse.ui.internal.preferences.IDynamicPropertyMap;
-import org.eclipse.ui.internal.preferences.PropertyUtil;
-
-/**
- * @since 3.1
- */
-public class DefaultPropertyListener extends AbstractPropertyListener {
-
-    public DefaultTabFolder tabFolder;
-    public IDynamicPropertyMap preferences;
-    
-    public DefaultPropertyListener(DefaultTabFolder folder, IDynamicPropertyMap prefs) {
-        this.tabFolder = folder;
-        this.preferences = prefs;
-        
-        prefs.addListener(new String[]{IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS}, this);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.AbstractPropertyListener#update()
-     */
-    public void update() {
-        tabFolder.setSimpleTabs(PropertyUtil.get(preferences, 
-                IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS, true));
-    }
-
-}
Index: Eclipse UI/org/eclipse/ui/internal/presentations/defaultpresentation/TabPositionListener.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/presentations/defaultpresentation/TabPositionListener.java
diff -N Eclipse UI/org/eclipse/ui/internal/presentations/defaultpresentation/TabPositionListener.java
--- Eclipse UI/org/eclipse/ui/internal/presentations/defaultpresentation/TabPositionListener.java	25 Feb 2005 20:52:32 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.presentations.defaultpresentation;
-
-import org.eclipse.ui.internal.preferences.AbstractPropertyListener;
-
-/**
- * @since 3.1
- */
-public class TabPositionListener extends AbstractPropertyListener {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.preferences.AbstractPropertyListener#update()
-     */
-    public void update() {
-
-    }
-
-}
Index: Eclipse UI/org/eclipse/ui/internal/presentations/newapi/ITabPositionListener.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/presentations/newapi/ITabPositionListener.java
diff -N Eclipse UI/org/eclipse/ui/internal/presentations/newapi/ITabPositionListener.java
--- Eclipse UI/org/eclipse/ui/internal/presentations/newapi/ITabPositionListener.java	25 Feb 2005 20:52:27 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.presentations.newapi;
-
-/**
- * @since 3.1
- */
-public interface ITabPositionListener {
-
-}
Index: Eclipse UI/org/eclipse/ui/internal/progress/AwaitingFeedbackInfo.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/progress/AwaitingFeedbackInfo.java
diff -N Eclipse UI/org/eclipse/ui/internal/progress/AwaitingFeedbackInfo.java
--- Eclipse UI/org/eclipse/ui/internal/progress/AwaitingFeedbackInfo.java	25 Feb 2005 20:52:21 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 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.progress;
-
-import org.eclipse.ui.progress.UIJob;
-
-/**
- * An AwaitingFeedbackInfo is a simple structure for keeping
- * track of a message and UIJob to run.
- */
-public class AwaitingFeedbackInfo {
-
-    private String message;
-
-    private UIJob job;
-
-    public AwaitingFeedbackInfo(String infoMessage, UIJob infoJob) {
-        this.message = infoMessage;
-        this.job = infoJob;
-    }
-
-    /**
-     * Return the job for the receiver.
-     * @return
-     */
-    public UIJob getJob() {
-        return this.job;
-    }
-
-    /**
-     * Return the message for the receiver.
-     * @return
-     */
-    public String getMessage() {
-        return this.message;
-    }
-
-}
Index: Eclipse UI/org/eclipse/ui/internal/progress/FullProgressViewer.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/progress/FullProgressViewer.java
diff -N Eclipse UI/org/eclipse/ui/internal/progress/FullProgressViewer.java
--- Eclipse UI/org/eclipse/ui/internal/progress/FullProgressViewer.java	25 Feb 2005 20:52:21 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 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.progress;
-
-import java.util.List;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * The FullProgressViewer is the viewer that displays jobs with full progress.
- * 
- */
-public class FullProgressViewer extends AbstractProgressViewer {
-
-	Composite control;
-
-	/**
-	 * Creates a table viewer on a newly-created table control under the given
-	 * parent. The table control is created using the given style bits. The
-	 * viewer has no input, no content provider, a default label provider, no
-	 * sorter, and no filters. The table has no columns.
-	 * 
-	 * @param parent
-	 *            the parent control
-	 * @param style
-	 *            SWT style bits
-	 */
-	public FullProgressViewer(Composite parent, int style) {
-		control = new Composite(parent, style);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.StructuredViewer#doFindInputItem(java.lang.Object)
-	 */
-	protected Widget doFindInputItem(Object element) {
-		if (element == ProgressManager.getInstance())
-			return control;
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.StructuredViewer#doFindItem(java.lang.Object)
-	 */
-	protected Widget doFindItem(Object element) {
-		Control[] children = control.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			ProgressItem control = (ProgressItem) children[i];
-			if(control.getElement().equals(element))
-				return control;
-		}
-		return null;
-	}
-
-	protected void doUpdateItem(Widget item, Object element, boolean fullMap) {
-		// TODO Auto-generated method stub
-
-	}
-
-	protected List getSelectionFromWidget() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	protected void internalRefresh(Object element) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void reveal(Object element) {
-		// TODO Auto-generated method stub
-
-	}
-
-	protected void setSelectionToWidget(List l, boolean reveal) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public Control getControl() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-}
Index: Eclipse UI/org/eclipse/ui/internal/progress/ProgressItem.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/progress/ProgressItem.java
diff -N Eclipse UI/org/eclipse/ui/internal/progress/ProgressItem.java
--- Eclipse UI/org/eclipse/ui/internal/progress/ProgressItem.java	25 Feb 2005 20:52:21 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 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.progress;
-
-import org.eclipse.swt.widgets.Composite;
-
-
-/**
- * The ProgressItem is the element that is represented in the 
- * FullProgressViewer.
- *
- */
-public class ProgressItem extends Composite{
-	
-	
-	private JobTreeElement element;
-	
-	/**
-	 * Create a new instance of the receiver with the 
-	 * parent and style specified.
-	 * @param parent
-	 * @param style
-	 */
-	public ProgressItem(Composite parent, int style) {
-		super(parent, style);
-	}
-
-	/**
-	 * Get the element we are representing.
-	 * @return JobTreeElement
-	 */
-	public JobTreeElement getElement() {
-		return element;
-	}
-	
-	/**
-	 * Set the element to represent.
-	 * @param element
-	 */
-	public void setElement(JobTreeElement element) {
-		this.element = element;
-	}
-	
-
-}
Index: Eclipse UI/org/eclipse/ui/internal/progress/WorkbenchMonitorProvider.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/progress/WorkbenchMonitorProvider.java
diff -N Eclipse UI/org/eclipse/ui/internal/progress/WorkbenchMonitorProvider.java
--- Eclipse UI/org/eclipse/ui/internal/progress/WorkbenchMonitorProvider.java	25 Feb 2005 20:52:21 -0000	1.19
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 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.progress;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.progress.UIJob;
-
-/**
- * The WorkbenchProgressListener is a class that listens to progress on the
- * workbench and reports accordingly.
- */
-class WorkbenchMonitorProvider {
-    /**
-     * Get the progress monitor for a job. If it is a UIJob get the main
-     * monitor from the status line. Otherwise return no monitor.
-     * 
-     * @return IProgressMonitor
-     */
-    IProgressMonitor getMonitor(Job job) {
-        if (job instanceof UIJob)
-            return getUIProgressMonitor(job.getName());
-        else
-            return new NullProgressMonitor();
-    }
-
-    /**
-     * Return the status line manager if there is one. 
-     * 
-     * @return IStatusLineWithProgressManager
-     */
-    private IStatusLineManager getStatusLineManager() {
-        if (PlatformUI.isWorkbenchRunning()) {
-            IWorkbenchWindow window = PlatformUI.getWorkbench()
-                    .getActiveWorkbenchWindow();
-            if (window != null && window instanceof WorkbenchWindow) {
-                return ((WorkbenchWindow) window).getStatusLineManager();
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Get a progress monitor for use with UIThreads. This monitor will use the
-     * status line directly if possible.
-     * 
-     * @param jobName.
-     *           Used if the task name is null.
-     * @return IProgressMonitor
-     */
-    private IProgressMonitor getUIProgressMonitor(final String jobName) {
-        return new IProgressMonitor() {
-            IProgressMonitor internalMonitor;
-
-            /*
-             * (non-Javadoc) @see org.eclipse.core.runtime.IProgressMonitor#beginTask(java.lang.String,
-             * int)
-             */
-            public void beginTask(String name, int totalWork) {
-                if (name == null || name.length() == 0)
-                    getInternalMonitor().beginTask(jobName, totalWork);
-                else
-                    getInternalMonitor().beginTask(name, totalWork);
-            }
-
-            /*
-             * (non-Javadoc) @see org.eclipse.core.runtime.IProgressMonitor#done()
-             */
-            public void done() {
-                getInternalMonitor().done();
-            }
-
-            /*
-             * (non-Javadoc) @see org.eclipse.core.runtime.IProgressMonitor#internalWorked(double)
-             */
-            public void internalWorked(double work) {
-                getInternalMonitor().internalWorked(work);
-            }
-
-            /*
-             * (non-Javadoc) @see org.eclipse.core.runtime.IProgressMonitor#isCanceled()
-             */
-            public boolean isCanceled() {
-                return getInternalMonitor().isCanceled();
-            }
-
-            /*
-             * (non-Javadoc) @see org.eclipse.core.runtime.IProgressMonitor#setCanceled(boolean)
-             */
-            public void setCanceled(boolean value) {
-                getInternalMonitor().setCanceled(value);
-            }
-
-            /*
-             * (non-Javadoc) @see org.eclipse.core.runtime.IProgressMonitor#setTaskName(java.lang.String)
-             */
-            public void setTaskName(String name) {
-                getInternalMonitor().setTaskName(name);
-            }
-
-            /*
-             * (non-Javadoc) @see org.eclipse.core.runtime.IProgressMonitor#subTask(java.lang.String)
-             */
-            public void subTask(String name) {
-                getInternalMonitor().subTask(name);
-            }
-
-            /*
-             * (non-Javadoc) @see org.eclipse.core.runtime.IProgressMonitor#worked(int)
-             */
-            public void worked(int work) {
-                getInternalMonitor().worked(work);
-            }
-
-            /**
-             * Get the monitor that is being wrapped. This is called lazily as
-             * we will not be able to get the monitor for the workbench outside
-             * of the UI Thread and so we will have to wait until the monitor
-             * is accessed.
-             * 
-             * Return a NullProgressMonitor if the one from the workbench
-             * cannot be found.
-             * 
-             * @return IProgressMonitor
-             */
-            private IProgressMonitor getInternalMonitor() {
-                if (internalMonitor == null) {
-                    IStatusLineManager manager = getStatusLineManager();
-                    if (manager == null)
-                        internalMonitor = new NullProgressMonitor();
-                    else
-                        internalMonitor = manager.getProgressMonitor();
-                }
-                return internalMonitor;
-            }
-        };
-    }
-}
Index: Eclipse UI/org/eclipse/ui/internal/registry/InstanceTracker.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/registry/InstanceTracker.java
diff -N Eclipse UI/org/eclipse/ui/internal/registry/InstanceTracker.java
--- Eclipse UI/org/eclipse/ui/internal/registry/InstanceTracker.java	25 Feb 2005 20:52:20 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 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.internal.runtime.InternalPlatform;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.osgi.framework.BundleEvent;
-import org.osgi.framework.BundleListener;
-
-/**
- * This will be defined in core, I've put it into ui for now to keep it all together.
- * EXPERIMENTAL
- * @since 3.1
- */
-public class InstanceTracker {
-	private IConfigurationElement configElt; //A reference to the configuration element
-	private Object instance; //The instance created by calling createExecutableExtension
-	private Runnable onDispose; //The code being run when the configuration element is being disposed.
-
-	//Need to deal with the synchronization issues
-	final BundleListener listener = new BundleListener() {
-		public void bundleChanged(BundleEvent event) {
-			if (configElt == null)
-				return;
-			
-			if (event.getType() != BundleEvent.UNINSTALLED && event.getType() != BundleEvent.UNRESOLVED && event.getType() != BundleEvent.UPDATED)
-					return;
-			
-			if(! configElt.getDeclaringExtension().getNamespace().equals(event.getBundle().getSymbolicName())) 
-				return;
-
-			try {
-				onDispose.run();
-			} catch (Exception e) {
-				System.out.println(e); //TODO log
-			} finally {
-			    close();
-			}
-		}
-
-	};
-
-	public InstanceTracker(IConfigurationElement config, Runnable onDispose) {
-		configElt = config;
-		this.onDispose = onDispose;
-	}
-
-	public Object getExecutableExtension(String property) throws CoreException {
-		if (instance != null)
-			return instance;
-
-		if (configElt == null)
-			return null;
-
-		instance = configElt.createExecutableExtension(property);
-
-		if (instance != null && onDispose != null)
-			track();
-
-		return instance;
-	}
-
-	private void track() {
-		InternalPlatform.getDefault().getBundleContext().addBundleListener(listener);
-	}
-
-	public void close() {
-		InternalPlatform.getDefault().getBundleContext().removeBundleListener(listener);
-		instance = null;
-		configElt = null;
-		onDispose = null;
-	}
-
-	public IConfigurationElement getConfigurationElement() {
-		return configElt;
-	}
-
-	/**
-	 * 
-	 */
-	public void releaseExecutableExtension() {
-		instance = null;
-	}
-}
Index: Eclipse UI/org/eclipse/ui/internal/util/OldConfigurationElementMemento.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/util/OldConfigurationElementMemento.java
diff -N Eclipse UI/org/eclipse/ui/internal/util/OldConfigurationElementMemento.java
--- Eclipse UI/org/eclipse/ui/internal/util/OldConfigurationElementMemento.java	25 Feb 2005 20:52:23 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 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.util;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.ui.IMemento;
-
-public final class OldConfigurationElementMemento implements IMemento {
-
-    private IConfigurationElement configurationElement;
-
-    public OldConfigurationElementMemento(
-            IConfigurationElement configurationElement) {
-        if (configurationElement == null)
-            throw new NullPointerException();
-
-        this.configurationElement = configurationElement;
-    }
-
-    public IMemento createChild(String type) {
-        return null;
-    }
-
-    public IMemento createChild(String type, String id) {
-        return null;
-    }
-
-    public IMemento getChild(String type) {
-        IConfigurationElement[] configurationElements = configurationElement
-                .getChildren(type);
-
-        if (configurationElements != null && configurationElements.length >= 1)
-            return new OldConfigurationElementMemento(configurationElements[0]);
-
-        return null;
-    }
-
-    public IMemento[] getChildren(String type) {
-        IConfigurationElement[] configurationElements = configurationElement
-                .getChildren(type);
-
-        if (configurationElements != null && configurationElements.length >= 1) {
-            IMemento mementos[] = new OldConfigurationElementMemento[configurationElements.length];
-
-            for (int i = 0; i < configurationElements.length; i++)
-                mementos[i] = new OldConfigurationElementMemento(
-                        configurationElements[i]);
-
-            return mementos;
-        }
-
-        return new IMemento[0];
-    }
-
-    public Float getFloat(String key) {
-        String string = configurationElement.getAttribute(key);
-
-        if (string != null)
-            try {
-                return new Float(string);
-            } catch (NumberFormatException eNumberFormat) {
-            }
-
-        return null;
-    }
-
-    public String getID() {
-        return configurationElement.getAttribute(TAG_ID);
-    }
-
-    public Integer getInteger(String key) {
-        String string = configurationElement.getAttribute(key);
-
-        if (string != null)
-            try {
-                return new Integer(string);
-            } catch (NumberFormatException eNumberFormat) {
-            }
-
-        return null;
-    }
-
-    public String getString(String key) {
-        return configurationElement.getAttribute(key);
-    }
-
-    public String getTextData() {
-        return configurationElement.getValue();
-    }
-
-    public void putFloat(String key, float value) {
-    }
-
-    public void putInteger(String key, int value) {
-    }
-
-    public void putMemento(IMemento memento) {
-    }
-
-    public void putString(String key, String value) {
-    }
-
-    public void putTextData(String data) {
-    }
-}
Index: META-INF/MANIFEST.MF
===================================================================
RCS file: /home/eclipse/org.eclipse.ui.workbench/META-INF/MANIFEST.MF,v
retrieving revision 1.3
diff -u -r1.3 MANIFEST.MF
--- META-INF/MANIFEST.MF	6 Apr 2005 20:19:36 -0000	1.3
+++ META-INF/MANIFEST.MF	13 Apr 2005 18:29:48 -0000
@@ -28,9 +28,7 @@
  org.eclipse.ui.internal.application;x-internal:=true,
  org.eclipse.ui.internal.browser;x-internal:=true,
  org.eclipse.ui.internal.commands;x-internal:=true,
- org.eclipse.ui.internal.commands.ws;x-internal:=true,
  org.eclipse.ui.internal.contexts;x-internal:=true,
- org.eclipse.ui.internal.contexts.ws;x-internal:=true,
  org.eclipse.ui.internal.decorators;x-internal:=true,
  org.eclipse.ui.internal.dialogs;x-internal:=true,
  org.eclipse.ui.internal.dnd;x-internal:=true,
@@ -39,7 +37,6 @@
  org.eclipse.ui.internal.help;x-internal:=true,
  org.eclipse.ui.internal.intro;x-internal:=true,
  org.eclipse.ui.internal.keys;x-internal:=true,
- org.eclipse.ui.internal.keywords;x-internal:=true,
  org.eclipse.ui.internal.layout;x-internal:=true,
  org.eclipse.ui.internal.misc;x-internal:=true,
  org.eclipse.ui.internal.part;x-internal:=true,
Index: Eclipse UI/org/eclipse/ui/internal/commands/WorkbenchCommandSupport.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/commands/WorkbenchCommandSupport.java
diff -N Eclipse UI/org/eclipse/ui/internal/commands/WorkbenchCommandSupport.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Eclipse UI/org/eclipse/ui/internal/commands/WorkbenchCommandSupport.java	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,160 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2005 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.commands;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.commands.CommandManager;
+import org.eclipse.core.commands.contexts.ContextManager;
+import org.eclipse.jface.bindings.BindingManager;
+import org.eclipse.ui.ISources;
+import org.eclipse.ui.LegacyHandlerSubmissionExpression;
+import org.eclipse.ui.commands.HandlerSubmission;
+import org.eclipse.ui.commands.ICommandManager;
+import org.eclipse.ui.commands.IWorkbenchCommandSupport;
+import org.eclipse.ui.commands.Priority;
+import org.eclipse.ui.handlers.IHandlerActivation;
+import org.eclipse.ui.handlers.IHandlerService;
+import org.eclipse.ui.internal.handlers.LegacyHandlerWrapper;
+
+/**
+ * Provides command support in terms of the workbench.
+ * 
+ * @since 3.0
+ */
+public class WorkbenchCommandSupport implements IWorkbenchCommandSupport {
+
+	/**
+	 * The map of activations that have been given to the handler service (<code>IHandlerActivation</code>),
+	 * indexed by the submissions (<code>HandlerSubmission</code>). This map
+	 * should be <code>null</code> if there are no such activations.
+	 */
+	private Map activationsBySubmission = null;
+
+	/**
+	 * The mutable command manager that should be notified of changes to the
+	 * list of active handlers. This value is never <code>null</code>.
+	 */
+	private final CommandManagerWrapper commandManagerWrapper;
+
+	/**
+	 * The handler service for the workbench. This value is never
+	 * <code>null</code>.
+	 */
+	private final IHandlerService handlerService;
+
+	/**
+	 * Constructs a new instance of <code>WorkbenchCommandSupport</code>
+	 * 
+	 * @param bindingManager
+	 *            The binding manager providing support for the command manager;
+	 *            must not be <code>null</code>.
+	 * @param commandManager
+	 *            The command manager for the workbench; must not be
+	 *            <code>null</code>.
+	 * @param contextManager
+	 *            The context manager providing support for the command manager
+	 *            and binding manager; must not be <code>null</code>.
+	 * @param handlerService
+	 *            The handler service for the workbench; must not be
+	 *            <code>null</code>.
+	 */
+	public WorkbenchCommandSupport(final BindingManager bindingManager,
+			final CommandManager commandManager,
+			final ContextManager contextManager,
+			final IHandlerService handlerService) {
+		if (handlerService == null) {
+			throw new NullPointerException("The handler service cannot be null"); //$NON-NLS-1$
+		}
+
+		this.handlerService = handlerService;
+
+		commandManagerWrapper = CommandManagerFactory.getCommandManagerWrapper(
+				bindingManager, commandManager, contextManager);
+
+		// Initialize the old key formatter settings.
+		org.eclipse.ui.keys.KeyFormatterFactory
+				.setDefault(org.eclipse.ui.keys.SWTKeySupport
+						.getKeyFormatterForPlatform());
+	}
+
+	public final void addHandlerSubmission(
+			final HandlerSubmission handlerSubmission) {
+		/*
+		 * Create the source priorities based on the conditions mentioned in the
+		 * submission.
+		 */
+		int sourcePriorities = 0;
+		if (handlerSubmission.getActivePartId() != null) {
+			sourcePriorities |= ISources.ACTIVE_PART;
+		}
+		if (handlerSubmission.getActiveShell() != null) {
+			sourcePriorities |= (ISources.ACTIVE_SHELL | ISources.ACTIVE_WORKBENCH_WINDOW);
+		}
+		if (handlerSubmission.getActiveWorkbenchPartSite() != null) {
+			sourcePriorities |= ISources.ACTIVE_SITE;
+		}
+		if (handlerSubmission.getPriority() == Priority.LEGACY) {
+			sourcePriorities |= ISources.LEGACY_LEGACY;
+		} else if (handlerSubmission.getPriority() == Priority.LOW) {
+			sourcePriorities |= ISources.LEGACY_LOW;
+		} else if (handlerSubmission.getPriority() == Priority.MEDIUM) {
+			sourcePriorities |= ISources.LEGACY_MEDIUM;
+		}
+
+		final IHandlerActivation activation = handlerService.activateHandler(
+				handlerSubmission.getCommandId(), new LegacyHandlerWrapper(
+						handlerSubmission.getHandler()),
+				new LegacyHandlerSubmissionExpression(handlerSubmission
+						.getActivePartId(), handlerSubmission.getActiveShell(),
+						handlerSubmission.getActiveWorkbenchPartSite()),
+				sourcePriorities);
+		if (activationsBySubmission == null) {
+			activationsBySubmission = new HashMap();
+		}
+		activationsBySubmission.put(handlerSubmission, activation);
+	}
+
+	public final void addHandlerSubmissions(final Collection handlerSubmissions) {
+		final Iterator submissionItr = handlerSubmissions.iterator();
+		while (submissionItr.hasNext()) {
+			addHandlerSubmission((HandlerSubmission) submissionItr.next());
+		}
+	}
+
+	public ICommandManager getCommandManager() {
+		return commandManagerWrapper;
+	}
+
+	public final void removeHandlerSubmission(
+			final HandlerSubmission handlerSubmission) {
+		if (activationsBySubmission == null) {
+			return;
+		}
+
+		final Object value = activationsBySubmission.remove(handlerSubmission);
+		if (value instanceof IHandlerActivation) {
+			final IHandlerActivation activation = (IHandlerActivation) value;
+			handlerService.deactivateHandler(activation);
+		}
+	}
+
+	public final void removeHandlerSubmissions(
+			final Collection handlerSubmissions) {
+		final Iterator submissionItr = handlerSubmissions.iterator();
+		while (submissionItr.hasNext()) {
+			removeHandlerSubmission((HandlerSubmission) submissionItr.next());
+		}
+	}
+}
Index: Eclipse UI/org/eclipse/ui/internal/contexts/WorkbenchContextSupport.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/contexts/WorkbenchContextSupport.java
diff -N Eclipse UI/org/eclipse/ui/internal/contexts/WorkbenchContextSupport.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Eclipse UI/org/eclipse/ui/internal/contexts/WorkbenchContextSupport.java	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,175 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2005 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.contexts;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.commands.contexts.ContextManager;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.ISources;
+import org.eclipse.ui.LegacyHandlerSubmissionExpression;
+import org.eclipse.ui.contexts.EnabledSubmission;
+import org.eclipse.ui.contexts.IContextActivation;
+import org.eclipse.ui.contexts.IContextManager;
+import org.eclipse.ui.contexts.IContextService;
+import org.eclipse.ui.contexts.IWorkbenchContextSupport;
+import org.eclipse.ui.internal.Workbench;
+import org.eclipse.ui.keys.IBindingService;
+
+/**
+ * Provides support for contexts within the workbench -- including key bindings,
+ * and some default contexts for shell types.
+ * 
+ * @since 3.0
+ */
+public class WorkbenchContextSupport implements IWorkbenchContextSupport {
+
+	/**
+	 * The map of activations that have been given to the handler service (<code>IHandlerActivation</code>),
+	 * indexed by the submissions (<code>HandlerSubmission</code>). This map
+	 * should be <code>null</code> if there are no such activations.
+	 */
+	private Map activationsBySubmission = null;
+
+	/**
+	 * The binding service for the workbench. This value is never
+	 * <code>null</code>.
+	 */
+	private IBindingService bindingService;
+
+	/**
+	 * The context service for the workbench. This value is never
+	 * <code>null</code>.
+	 */
+	private IContextService contextService;
+
+	/**
+	 * The legacy context manager supported by this application.
+	 */
+	private ContextManagerWrapper contextManagerWrapper;
+
+	/**
+	 * The workbench for which context support is being provided. This value
+	 * must not be <code>null</code>.
+	 */
+	private final Workbench workbench;
+
+	/**
+	 * Constructs a new instance of <code>WorkbenchCommandSupport</code>.
+	 * This attaches the key binding support, and adds a global shell activation
+	 * filter.
+	 * 
+	 * @param workbenchToSupport
+	 *            The workbench that needs to be supported by this instance;
+	 *            must not be <code>null</code>.
+	 * @param contextManager
+	 *            The context manager to be wrappered; must not be
+	 *            <code>null</code>.
+	 */
+	public WorkbenchContextSupport(final Workbench workbenchToSupport,
+			final ContextManager contextManager) {
+		workbench = workbenchToSupport;
+		contextService = (IContextService) workbench
+				.getAdapter(IContextService.class);
+		bindingService = (IBindingService) workbench
+				.getAdapter(IBindingService.class);
+		contextManagerWrapper = ContextManagerFactory
+				.getContextManagerWrapper(contextManager);
+	}
+
+	public final void addEnabledSubmission(
+			final EnabledSubmission enabledSubmission) {
+		/*
+		 * Create the source priorities based on the conditions mentioned in the
+		 * submission.
+		 */
+		int sourcePriorities = 0;
+		if (enabledSubmission.getActivePartId() != null) {
+			sourcePriorities |= ISources.ACTIVE_PART;
+		}
+		if (enabledSubmission.getActiveShell() != null) {
+			sourcePriorities |= (ISources.ACTIVE_SHELL | ISources.ACTIVE_WORKBENCH_WINDOW);
+		}
+		if (enabledSubmission.getActiveWorkbenchPartSite() != null) {
+			sourcePriorities |= ISources.ACTIVE_SITE;
+		}
+
+		final IContextActivation activation = contextService.activateContext(
+				enabledSubmission.getContextId(),
+				new LegacyHandlerSubmissionExpression(enabledSubmission
+						.getActivePartId(), enabledSubmission.getActiveShell(),
+						enabledSubmission.getActiveWorkbenchPartSite()),
+				sourcePriorities);
+		if (activationsBySubmission == null) {
+			activationsBySubmission = new HashMap();
+		}
+		activationsBySubmission.put(enabledSubmission, activation);
+	}
+
+	public final void addEnabledSubmissions(final Collection enabledSubmissions) {
+		final Iterator submissionItr = enabledSubmissions.iterator();
+		while (submissionItr.hasNext()) {
+			addEnabledSubmission((EnabledSubmission) submissionItr.next());
+		}
+	}
+
+	public final IContextManager getContextManager() {
+		return contextManagerWrapper;
+	}
+
+	public final int getShellType(Shell shell) {
+		return contextService.getShellType(shell);
+	}
+
+	public final boolean isKeyFilterEnabled() {
+		return bindingService.isKeyFilterEnabled();
+	}
+
+	public final void openKeyAssistDialog() {
+		bindingService.openKeyAssistDialog();
+	}
+
+	public final boolean registerShell(final Shell shell, final int type) {
+		return contextService.registerShell(shell, type);
+	}
+
+	public final void removeEnabledSubmission(
+			final EnabledSubmission enabledSubmission) {
+		if (activationsBySubmission == null) {
+			return;
+		}
+
+		final Object value = activationsBySubmission.remove(enabledSubmission);
+		if (value instanceof IContextActivation) {
+			final IContextActivation activation = (IContextActivation) value;
+			contextService.deactivateContext(activation);
+		}
+	}
+
+	public final void removeEnabledSubmissions(
+			final Collection enabledSubmissions) {
+		final Iterator submissionItr = enabledSubmissions.iterator();
+		while (submissionItr.hasNext()) {
+			removeEnabledSubmission((EnabledSubmission) submissionItr.next());
+		}
+	}
+
+	public final void setKeyFilterEnabled(final boolean enabled) {
+		bindingService.setKeyFilterEnabled(enabled);
+	}
+
+	public final boolean unregisterShell(final Shell shell) {
+		return contextService.unregisterShell(shell);
+	}
+}
Index: Eclipse UI/org/eclipse/ui/internal/registry/KeywordRegistry.java
===================================================================
RCS file: Eclipse UI/org/eclipse/ui/internal/registry/KeywordRegistry.java
diff -N Eclipse UI/org/eclipse/ui/internal/registry/KeywordRegistry.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Eclipse UI/org/eclipse/ui/internal/registry/KeywordRegistry.java	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 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 java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.dynamichelpers.ExtensionTracker;
+import org.eclipse.core.runtime.dynamichelpers.IExtensionChangeHandler;
+import org.eclipse.core.runtime.dynamichelpers.IExtensionTracker;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.internal.IWorkbenchConstants;
+
+/**
+ * Contains extensions defined on the <code>keywords</code> extension point.
+ * 
+ * @since 3.1
+ */
+public final class KeywordRegistry implements IExtensionChangeHandler {
+
+	private static final String ATT_ID = "id"; //$NON-NLS-1$
+
+	private static final String ATT_LABEL = "label"; //$NON-NLS-1$
+
+	private static KeywordRegistry instance;
+
+	private static final String TAG_KEYWORD = "keyword"; //$NON-NLS-1$
+
+	/**
+	 * Return the singleton instance of the <code>KeywordRegistry</code>.
+	 * 
+	 * @return the singleton registry
+	 */
+	public static KeywordRegistry getInstance() {
+		if (instance == null) {
+			instance = new KeywordRegistry();
+		}
+
+		return instance;
+	}
+
+	/**
+	 * Map of id->labels.
+	 */
+	private Map internalKeywordMap = new HashMap();
+	
+	/**
+	 * Private constructor.
+	 */
+	private KeywordRegistry() {
+		IExtensionTracker tracker = PlatformUI.getWorkbench().getExtensionTracker();
+        tracker.registerHandler(this, ExtensionTracker.createExtensionPointFilter(getExtensionPointFilter()));
+		IExtension[] extensions = getExtensionPointFilter().getExtensions();
+		for (int i = 0; i < extensions.length; i++) {
+			addExtension(PlatformUI.getWorkbench().getExtensionTracker(),
+					extensions[i]);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.dynamicHelpers.IExtensionChangeHandler#addExtension(org.eclipse.core.runtime.dynamicHelpers.IExtensionTracker, org.eclipse.core.runtime.IExtension)
+	 */
+	public void addExtension(IExtensionTracker tracker, IExtension extension) {
+		IConfigurationElement[] elements = extension.getConfigurationElements();
+		for (int i = 0; i < elements.length; i++) {
+			if (elements[i].getName().equals(TAG_KEYWORD)) {
+				String name = elements[i].getAttribute(ATT_LABEL);
+				String id = elements[i].getAttribute(ATT_ID);
+				internalKeywordMap.put(id, name);
+				PlatformUI.getWorkbench().getExtensionTracker().registerObject(
+						extension, id, IExtensionTracker.REF_WEAK);
+			}
+		}
+	}
+
+	private IExtensionPoint getExtensionPointFilter() {
+		return Platform.getExtensionRegistry().getExtensionPoint(
+				PlatformUI.PLUGIN_ID, IWorkbenchConstants.PL_KEYWORDS);
+	}
+	
+	/**
+	 * Return the label associated with the given keyword.
+	 * 
+	 * @param id the keyword id
+	 * @return the label or <code>null</code>
+	 */
+	public String getKeywordLabel(String id) {
+		return (String) internalKeywordMap.get(id);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.dynamicHelpers.IExtensionChangeHandler#removeExtension(org.eclipse.core.runtime.IExtension, java.lang.Object[])
+	 */
+	public void removeExtension(IExtension extension, Object[] objects) {
+		for (int i = 0; i < objects.length; i++) {
+			if (objects[i] instanceof String) {
+				internalKeywordMap.remove(objects[i]);
+			}
+		}
+	}
+}