Bug 125632 [Commands] request: enhance command to show preferences dialog with parameter identifying which page to show
I'm going to attach a patch that enhances the command org.eclipse.ui.window.preferences as described in the summary. The id of the parameter is "preferencePageId". It is optional. If omitted the pref page just shows as it was the last time. I wanted to have an IParameterValues class for this parameter to enumerate the meaningful values (like the showView and showPerspective commands). This led me into the wierd case of several preference pages with the same name ("Appearance" and "Editor"), so I constructed qualified names like "General > Appearance" and "Java > Appearance". That led me to add a new API method to the jface PreferenceManager class. I hope that's not a controversial change.... Another thing to look at. I removed this line from OpenPreferencesAction to allow my handler to run: setActionDefinitionId("org.eclipse.ui.window.preferences"); //$NON-NLS-1$ If that's not right can you give me more direction on what the right thing to do is?
bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceManager.java
public static final int POST_ORDER = 1;
    /**
     * The root node.
     * Note that the root node is a special internal node
     * that is used to collect together all the nodes that
     * have no parent; it is not given out to clients.
     */
    PreferenceNode root = new PreferenceNode("");
    /**
     * The path separator character.
     */
    String separator;
    /**
     * Creates a new preference manager.
     */
    public PreferenceManager() {
        this('.');
    }
    /**
     * Creates a new preference manager with the given
     * the path separator.
     *
     * @param separatorChar the separator character
     */
    public PreferenceManager(char separatorChar) {
        separator = new String(new char[] { separatorChar });
    }
    /**
     * Adds the given preference node as a subnode of the
     * node at the given path.