Eclipse Plugin PreferencePage BooleanFieldEditor

Diskutiere Eclipse Plugin PreferencePage BooleanFieldEditor im Plattformprogrammierung Forum; Hi, ich habe für mein Eclipse Plugin eine eigene Preference Page erstellt. Diese umfasst ein DirectoryFieldEditor um ein Verzeichnis auszuwählen,...

  1. mariechen11
    mariechen11 Neues Mitglied
    Hi,

    ich habe für mein Eclipse Plugin eine eigene Preference Page erstellt. Diese umfasst ein DirectoryFieldEditor um ein Verzeichnis auszuwählen, ein FileFieldEditor um eine Datei auszuwählen und ein BooleanFieldEditor. Das Anzeigen und Ändern der Preferences funktioniert alles prima.

    Ich habe nur das Problem, dass immer, wenn ich noch nicht auf der PreferencePage war, der Wert des BooleanFieldEditor immer als "false" angegeben wird, wenn ich es auslese, obwohl "true" eingestellt ist in den Preferences. Die Werte der anderen beiden Properties sind korrekt. Nur der Wert des BooleanFieldEditor stimmt initial nicht. Auslesen der Properties erfolgt mit:

    Code (Java):
    IPreferenceStore store = Activator.getDefault().getPreferenceStore();

    store.getBoolean(MeinePreferencePage.FILE_PREFERENCE)
    store.getBoolean(MeinePreferencePage.CONTAINER_DIR_PREFERENCE)
    store.getBoolean(MeinePreferencePage.MEINE_CECHKBOX)

    Wenn ich das Eclipse starte, dann vorher einmal auf die PreferencePage gehe, und dann den Wert des Property auslese, dann wird mir der korrekte Wert mit "true" zurückgegeben.

    Seltsam ist auch, dass mir immer "false" zurückgegeben wird, wenn ich nicht vorhher einmal auf der PreferencePages war, aber angezeigt in der PreferencePage wird der Wert des BooleanFieldEditor korrekt mit "true" (also die Checkbox ist angehakt).
    Also wenn ich die Checkbox "anwähle", so dass sie true ist, das Eclipse zu mache und wieder neu starte und in die PreferencesPage gehe, dann ist die Checkbox auch gechecked. Trotzdem würde mir "false" zurückgegeben werden, wenn ich nicht einmal auf die Preferences navigiere.


    Hier der Code meiner PreferencePage:
    Code (Java):
    public class MeinePreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
       
        public static final String FILE_PREFERENCE = "file";
        public static final String CONTAINER_DIR_PREFERENCE = "containerDir";  
        public static final String MEINE_CECHKBOX = "meineCheckBox";

        DirectoryFieldEditor containerDir;
        FileFieldEditor dockerFile;
        BooleanFieldEditor pullDockerFromReg;
       
        public MeinePreferencePage() {
            super(GRID);
           
            // Set the preference store for the preference page.
            setPreferenceStore(Activator.getDefault().getPreferenceStore());
        }

        /**
         * Creates the user-input-fields
         */

        protected void createFieldEditors() {
            containerDir = new DirectoryFieldEditor(CONTAINER_DIR_PREFERENCE, "Verzeichnis auswaehlen: ", getFieldEditorParent());
            addField(containerDir);
               
            dockerFile = new FileFieldEditor(FILE_PREFERENCE, "Datei auswaehlen: ", getFieldEditorParent());
            addField(dockerFile);
           
            pullDockerFromReg = new BooleanFieldEditor(MEINE_CECHKBOX, "Bitte auswaehlen", getFieldEditorParent());
            addField(pullDockerFromReg);
        }
       
       
        /**
         * specifies the default-values (e.g for the 'Restore-Default'-button)
         *
         */

        private void setDefaultValues(){
            IPreferenceStore store = Activator.getDefault().getPreferenceStore();
            store.setDefault(FILE_PREFERENCE, true);
            store.setDefault(CONTAINER_DIR_PREFERENCE, "defaultPath");
        }
       
        /**
         * Validates the input of the Preference Page
         */

        @Override
        protected void checkState() {
            super.checkState();

            if (StringUtils.isBlank(containerDir.getStringValue())) {
                setErrorMessage("Please choose a container directory.");
                setValid(false);
                return;
            }
           
            setErrorMessage(null);
            setValid(true);
        }

       
        public void init(IWorkbench workbench) {
            setDefaultValues();
        }
    }
    Ich verstehe nicht was falsch ist. Ich hab das doch alles für die drei Properties gleich implementiert. Wieso fällt der BooleanFieldEditor so aus der Reihe?
     
  2. Vielleicht hilft dir dieses Training hier weiter.
  3. mihe7
    mihe7 Bekanntes Mitglied
    Ich habe keine Ahnung von dem ganzen Zeug, mir fällt nur auf, dass in setDefaultValues MEINE_CECHKBOX (Edit: "korrigiert") fehlt.
     
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

Eclipse Plugin PreferencePage BooleanFieldEditor - Ähnliche Themen

Eclipse IDE Plugin Error Log
Eclipse IDE Plugin Error Log im Forum Allgemeine Java-Themen
Plugin unter Eclipse arbeitet anders als wenn veröffentlicht
Plugin unter Eclipse arbeitet anders als wenn veröffentlicht im Forum Plattformprogrammierung
P2-Repository für Eclipse-Plugins
P2-Repository für Eclipse-Plugins im Forum Plattformprogrammierung
Eclipse Plugin Projekt, Maven Projekt und dependencies
Eclipse Plugin Projekt, Maven Projekt und dependencies im Forum Java Basics - Anfänger-Themen
Eclipse mit eigenem Plugin braucht für ersten Start sehr lange
Eclipse mit eigenem Plugin braucht für ersten Start sehr lange im Forum IDEs und Tools
Thema: Eclipse Plugin PreferencePage BooleanFieldEditor