Seite 2 von 3

Re: Speichern von Einstellungen

Verfasst: 13 Mär 2016, 12:55
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.

Re: Speichern von Einstellungen

Verfasst: 13 Mär 2016, 13:47
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.

Re: Speichern von Einstellungen

Verfasst: 13 Mär 2016, 14:47
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.

Re: Speichern von Einstellungen

Verfasst: 13 Mär 2016, 15:09
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!

Re: Speichern von Einstellungen

Verfasst: 13 Mär 2016, 15:23
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?

Re: Speichern von Einstellungen

Verfasst: 13 Mär 2016, 15:52
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();
}

Re: Speichern von Einstellungen

Verfasst: 13 Mär 2016, 16:29
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?

Re: Speichern von Einstellungen

Verfasst: 13 Mär 2016, 19:50
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.

Re: Speichern von Einstellungen

Verfasst: 13 Mär 2016, 20:01
von Sheldon2012
Alles klar! Danke!

Re: Speichern von Einstellungen

Verfasst: 14 Mär 2016, 17:36
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?

Re: Speichern von Einstellungen

Verfasst: 14 Mär 2016, 17:42
von ds10
Nein, ein Plugin kann nur die Liste der Filter abfragen, nicht die Filterkomponenten.

Re: Speichern von Einstellungen

Verfasst: 14 Mär 2016, 18:10
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.

Re: Speichern von Einstellungen

Verfasst: 15 Mär 2016, 11:29
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?

Re: Speichern von Einstellungen

Verfasst: 16 Mär 2016, 16:41
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.
.

Re: Speichern von Einstellungen

Verfasst: 18 Mär 2016, 23:57
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.