Speichern von Einstellungen

Hier haben Plugin-Entwickler die Möglichkeit, sich auszutauschen.
ds10
Site Admin
Beiträge: 19095
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Speichern von Einstellungen

Beitrag von ds10 »

Den Namen einer Filterkomponente erhält man, wenn man getName() aufruft. Löschungen von Filerkomponenten bekommt ein Plugin nicht mit. Daher kann man die Einstellungen halt nicht löschen, aber die werden kaum riesig sein, so dass deren Vorhandensein ein Problem sein dürfte.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: Speichern von Einstellungen

Beitrag von Sheldon2012 »

Auf welches Object willst Du getName() anwenden?

Das dachte ich mir schon. Das Problem mit den verbleibenden Property-Files ist auch nicht deren Größe, sondern die Tatsache, dass man zu einem späteren Zeitpunkt eine CSV-Datei-Filterkomponente erstellen könnte, die dann bei Namensgleichheit auf das entsprechnde verbliebene Property-File zugreifen würde.
ds10
Site Admin
Beiträge: 19095
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Speichern von Einstellungen

Beitrag von ds10 »

Sheldon2012 hat geschrieben:Auf welches Object willst Du getName() anwenden?
Auf die Klasse der Filterkomponente.
Sheldon2012 hat geschrieben:Das dachte ich mir schon. Das Problem mit den verbleibenden Property-Files ist auch nicht deren Größe, sondern die Tatsache, dass man zu einem späteren Zeitpunkt eine CSV-Datei-Filterkomponente erstellen könnte, die dann bei Namensgleichheit auf das entsprechnde verbliebene Property-File zugreifen würde.
Da könntest du ja beim Erstellen des Einstellungspanel eine Abfrage von getName() machen, wenn null zurück kommt, ist die Komponente neu, das merkst du dir für die Instanz und wenn der Nutzer die Filterkomponente speichert, prüfst du diese Variable gegen den eingegebenen Namen. (Musst du ja eigentlich sowieso machen, falls der Nutzer den Namen der Komponente ändert, wenn der Name der Komponente für die Propertiesdatei verwendet wird.)

EDIT: Der Aufruf von getName() muss durch einen Thread verzögert werden, da TV-Browser erst saveSettings() aufruft und danach dann den neuen Namen setzt.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: Speichern von Einstellungen

Beitrag von Sheldon2012 »

Ich glaube ich mißverstehe Dich gerade. Meinst Du this.getClass().getName? Das klappt nämlich, wie erwartet, nicht.
Wenn die erstellte Filterkomponente den Namen "Episoden" hat, dann möchte ich diesen Namen auslesen.

EDIT: Hat sich erledigt. Es ist natürlich this.getName(). Danke!
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: Speichern von Einstellungen

Beitrag von Sheldon2012 »

ds10 hat geschrieben: EDIT: Der Aufruf von getName() muss durch einen Thread verzögert werden, da TV-Browser erst saveSettings() aufruft und danach dann den neuen Namen setzt.
Und wie? Hast Du da ein Beispiel?
ds10
Site Admin
Beiträge: 19095
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Speichern von Einstellungen

Beitrag von ds10 »

Code: Alles auswählen

new Thread("CSV WAIT FOR NAME") {
  @Override
  public void run() {
    try {
      sleep(1000);
    }catch(InterruptedException e) {
      // ignore
    }

    String name = CSVFilterComp.this.getName();
    // do something with name
  }.start();
}
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: Speichern von Einstellungen

Beitrag von Sheldon2012 »

Ok! Du meintest also ein Sleep. Alles klar! Danke!
Aber in welcher Methode muß ich dann den Thread einbauen?
Wahrscheinlich in public JPanel getSettingsPanel(), oder?
ds10
Site Admin
Beiträge: 19095
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Speichern von Einstellungen

Beitrag von ds10 »

Sheldon2012 hat geschrieben:Ok! Du meintest also ein Sleep. Alles klar! Danke!
Aber in welcher Methode muß ich dann den Thread einbauen?
Wahrscheinlich in public JPanel getSettingsPanel(), oder?
Nein, dort fragst du den Namen normal ab und speicherst den in einer Klassenvariable. Den Thread baust du in saveSettings() ein.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: Speichern von Einstellungen

Beitrag von Sheldon2012 »

Alles klar! Danke!
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: Speichern von Einstellungen

Beitrag von Sheldon2012 »

Alle Property-Files befinden sich ja in einer Verzeichnisstruktur auf die das Plugin zugreifen kann. Daher kann ich eine Liste aller Property-Files erstelen. Wenn nun das Plugin auch eine Liste aller CSV-Datei-Filterkomponenten ertsellen könnte, wäre es ja möglich, diese abzugleichen und die Property-Files zu löschen, zu denen es keine Filterkomponente mehr gibt. Dann wäre das System sauber. Kann ich eine solche Liste abfragen?
ds10
Site Admin
Beiträge: 19095
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Speichern von Einstellungen

Beitrag von ds10 »

Nein, ein Plugin kann nur die Liste der Filter abfragen, nicht die Filterkomponenten.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: Speichern von Einstellungen

Beitrag von Sheldon2012 »

Schade! Ich würde das Verzeichnis halt gerne aufräumen.
Das könnte ja die erste aufgerufene Instanz erlediigen, Danach ist für die anderen halt nichts mehr zu tun.
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: Speichern von Einstellungen

Beitrag von Sheldon2012 »

Im settings-Verzeichnis liegt im Ordner filters die Datei java.csvfilefiltercomponent.CSVFileFilterComp.dat.
Dort stehen die erstellten Filterkomponenten drin. Diese Datei könnte man doch zum Abgleich verwenden.
Steht die Filterkomponente nicht mehr drin, so wird die Property-Datei gelöscht.
Oder siehst Du da noch ein Problem?
Sheldon2012
Plugin-Developer
Beiträge: 1206
Registriert: 25 Dez 2012, 07:35

Re: Speichern von Einstellungen

Beitrag von Sheldon2012 »

Soweit ich es bislang testen konnte, funktioniert das Aufräumen der Properties durch den Abgleich mit der Datei

Code: Alles auswählen

java.csvfilefiltercomponent.CSVFileFilterComp.dat
sehr gut.

Nun müßte ich halt wissen, ob die Struktur auf allen Betriebssystemen identisch ist oder ob es da noch Überraschungen geben kann.
.
ds10
Site Admin
Beiträge: 19095
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Speichern von Einstellungen

Beitrag von ds10 »

Es gibt keine Unterschiede zwischen den BS, dann das würde nur Ärger machen, da dann z.B. die transportable Version auf einem USB-Stick nicht unter allen BS laufen würde.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Antworten