Bug 251517 [Preferences] Increase visibility for the ListEditor fields or methods
Build ID: M20080911-1700 Steps To Reproduce: I am trying to create a specialized org.eclipse.jface.preference.ListEditor. I want to specialize the 'remove' button so that I can disable it in a case where it we shouldn't allow them to remove the entry. However, currently all methods and fields that provide access to the buttons or event handling are all private, and thus can not be overridden by subclasses. Expected result is that protected access is provided for dealing with selection changes, button presses, and protected access is provided for access to the buttons so we can enable/disable them as needed. More information:
bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ListEditor.java
Control control = getLabelControl();
        ((GridData) control.getLayoutData()).horizontalSpan = numColumns;
        ((GridData) list.getLayoutData()).horizontalSpan = numColumns - 1;
    }
    /**
     * Creates the Add, Remove, Up, and Down button in the given button box.
     *
     * @param box the box for the buttons
     */
    private void createButtons(Composite box) {
        addButton = createPushButton(box, "ListEditor.add");
        removeButton = createPushButton(box, "ListEditor.remove");
        upButton = createPushButton(box, "ListEditor.up");
        downButton = createPushButton(box, "ListEditor.down");
    }
    /**
     * Combines the given list of items into a single string.
     * This method is the converse of <code>parseString</code>. 
     * <p>
     * Subclasses must implement this method.
     * </p>
     *
     * @param items the list of items
     * @return the combined string
     * @see #parseString
     */
    protected abstract String createList(String[] items);
    /**
     * Helper method to create a push button.
     *