tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
730
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    antimon antimon ist offline Mitglied Silber
    Registriert seit
    Mar 2007
    Beiträge
    60
    Hallo zusammen,

    für meine RCP-Anwendung möchte ich gerne einen Einstellungseditor ähnlich der Seite von "about:config" beim Firefox erstellen.
    Allerdings verwirren mich die schier unendlichen Möglichkeiten, auf Preference Stores zuzugreifen, deswegen wende ich mich hilfesuchend an Euch.

    Mein Ziel ist es, nicht nach ConfigurationScope oder InstanceScope zu unterscheiden, sondern diese quasi übereinanderzulegen. Der Bearbeiter sieht dann in einer Spalte der Tabelle, aus welchem Scope die Einstellung kommt. Geordnet werden sollen alle Einstellungen nach dem Schlüssel, also z.B. "org.eclipse...", dann "org.pluginxyz..." usw.
    Die Defaulteinstellungen würde ich gerne auch zu jedem Schlüssel hinterlegen, damit man sieht ob die Defaulteinstellung aktiv ist oder den Wert auf default zurücksetzen kann (eben wie bei Firefox )

    Wie sollte ich da am besten vorgehen? Über Platform.getPreferencesServices() ? Bzw. wo ist denn der "Ursprung" aller Preferences, der Root Node? ConfigurationScope beispielsweise beginnt doch bei "/configuration", oder?

    Ich hoffe, Ihr könnt mir helfen, ein wenig Licht in den Dschungel zu bekommen! Danke im Voraus!
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    ich denke hiermit wirds etwas klarer:
    http://www.vogella.de/articles/Eclip...s/article.html

    Mein Ziel ist es, nicht nach ConfigurationScope oder InstanceScope zu unterscheiden, sondern diese quasi übereinanderzulegen.
    Das kannst du beispielsweise so machen:
    In deiner Tabelle zeigst du für jedes Konfigurierbare Property eine Zeile mit den Spalten
    path, key, value, defaultValue an. Als versteckte Spalten kommt nun noch ein config kind qualifier (string) der angibt woraus der Value-Eintrag bezogen wurde (default/config/instance) und eventuell ein type (string) der den EditorTyp des Values bestimmt (könnte man auch aus dem typ des default Werts herleiten...). Damit kannst du dann default Einstellungen / gespeicherte Einstellungen / nicht gespeicherte aber aktive Einstellungen beispielsweise farblich oder durch unterschiedliche Fonts unterscheiden.

    Zur Erzeugung der Einträge für die Tabelle brauchst du ja Auflistung aller relevanten Preferences, die bekommst du beispielsweise so:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    try {
     
                final List<IEclipsePreferences> prefs = new ArrayList<IEclipsePreferences>();
     
                Platform.getPreferencesService().getRootNode().accept(
                        new IPreferenceNodeVisitor() {
                            @Override
                            public boolean visit(IEclipsePreferences node)
                                    throws BackingStoreException {
                                if (node.keys().length > 0) {
                                    prefs.add(node);
                                }
     
                                return true;
                            }
                        });
     
                System.out.println(prefs);
            } catch (Exception e) {
                e.printStackTrace();
            }


    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  3. #3
    antimon antimon ist offline Mitglied Silber
    Registriert seit
    Mar 2007
    Beiträge
    60
    Hallo Tom,

    ich denke hiermit wirds etwas klarer:
    http://www.vogella.de/articles/Eclip...s/article.html
    leider war das nicht ausreichend - ich habe verschiedenste Quellen recherchiert, auch die vom Lars - aber so richtig verstanden habe ich das Ganze leider noch nicht. Aber jetzt bin ich auf einem guten Weg.

    Die Auflistung der Preferences ist sehr elegant gelöst - das gefällt mir, da habe ich wieder was dazugelernt!

    Ich würde ausgehend von obigem Ansatz wie folgt vorgehen, falls das Ganze eleganter geht würde ich mich über entsprechende Hinweise freuen.

    Obiger Code macht ja prinzipiell aus dem zweidimensionalen Baum eine eindimensionale Liste - wobei in dieser Liste Schlüssel mehrmals vorkommen können - für Default, Configuration und Instance. Das heisst, ich müsste eine zusätzliche Liste erstellen, die als Modell für die Tabelle dient. In dieser Liste sind Objekte gespeichert, die neben dem Schlüssel und dem Wert zusätzliche Infos bereitstellen wie Default-Wert, Typ der Variablen etc. - wie du oben eben schon geschrieben hast.

    Die Liste mit den Preferences würde ich durchrattern und schauen ob die Schlüssel im Tabellen-Modell vorhanden sind, entsprechende Default-Werte setzen bzw. aktuelle Werte ergänzen.

    Ändert man in der Tabelle dann Werte, so wird geprüft, wo der Schlüssel hinkommen soll, ob er vielleicht noch nicht angelegt wurde (wenn nur ein Default-Wert vorhanden ist) und ändert die Daten entsprechend ab.

    Das scheint mir jetzt der einfachste Weg zu sein, oder gibt es vielleicht noch einen einfacheren, ohne zusätzliche Liste oder eigene Objekte?
     

Ähnliche Themen

  1. RCP Preferences Editor erstellen
    Von antimon im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 17.10.10, 20:56
  2. WYSIWYG-Editor in Flash erstellen
    Von TimN im Forum Flash Plattform
    Antworten: 0
    Letzter Beitrag: 18.03.09, 16:46
  3. Einen Mysql DB Editor erstellen
    Von Asrilan im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 30.12.08, 21:35
  4. Klassendiagramm mit Java Editor erstellen
    Von JackBauer8283 im Forum Java
    Antworten: 0
    Letzter Beitrag: 11.01.07, 14:55
  5. [Eclipse RCP] PlatformUI und Preferences
    Von Vatar im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 05.12.06, 16:19

Stichworte