Seite 2 von 2

Re: Plugin: Eigene Icons auch asynchron?

Verfasst: 06 Sep 2004, 08:43
von Til
henryk hat geschrieben:
Til hat geschrieben:
henryk hat geschrieben:Deshalb: Ist ein einfacher Weg vorgesehen die Markierungen asynchron zu verteilen?
Ja, sowas ist möglich. Es gibt zwar keine direkte Möglichkeit, eine Aktualisierung auszulösen, aber du kannst die Sendung markieren und sofort wieder entmarkieren. Dann wird die Sendung neu gemalt, dabei werden von deinem Plugin die Icons abgefragt.
Hat das schonmal jemand erfolgreich getan? Ich bin jetzt nämlich soweit dass mein Plugin im wesentlichen das tut, die richtigen Icons werden aber nicht angezeigt.
OK. Sorry. Das war mein Fehler. Momentan funktioniert das noch nicht, weil die Icons gecached werden. Ich habe jetzt jedoch eingebaut, dass sie neu geholt werden, wenn sich das Program geändert hat (also z.B. markiert wurde). In der nächsten Version sollte das mit dem Markieren/Entmarkieren also funktionieren.
platin(x) hat geschrieben:Gibst du hier:

Code: Alles auswählen

public String getMarkIconName();
null zurück? Das wäre dann das Problem...
Nein, das ist hier nicht das Problem. Es geht hier um die Plugin-Icons (die, die unter der Zeit stehen) und nicht um das Markierungs-Icon (das Icon rechts unten). Das Markieren/Entmarkieren wird hier nur als Trick benutzt um ein Neumalen der Sendung auszulösen.

Verfasst: 06 Sep 2004, 13:17
von henryk
Moin,
platin(x) hat geschrieben:Gibst du hier:

Code: Alles auswählen

public String getMarkIconName();
null zurück? Das wäre dann das Problem...
Jupp, hatte ich. Aber auch wenn ich den Namen eines Icons zurückgebe bringt das nichts.

--
Henryk Plötz
Grüße aus Berlin

Re: Plugin: Eigene Icons auch asynchron?

Verfasst: 06 Sep 2004, 14:45
von platin(x)
Til hat geschrieben:
platin(x) hat geschrieben:Gibst du hier:

Code: Alles auswählen

public String getMarkIconName();
null zurück? Das wäre dann das Problem...
Nein, das ist hier nicht das Problem. Es geht hier um die Plugin-Icons (die, die unter der Zeit stehen) und nicht um das Markierungs-Icon (das Icon rechts unten). Das Markieren/Entmarkieren wird hier nur als Trick benutzt um ein Neumalen der Sendung auszulösen.
Jupp, aber wenn das in der Javadoc stimmt und er null zurückliefert ist der Trick ausgehebelt ;)

Re: Plugin: Eigene Icons auch asynchron?

Verfasst: 06 Sep 2004, 15:24
von henryk
Moin,
Til hat geschrieben:OK. Sorry. Das war mein Fehler. Momentan funktioniert das noch nicht, weil die Icons gecached werden. Ich habe jetzt jedoch eingebaut, dass sie neu geholt werden, wenn sich das Program geändert hat (also z.B. markiert wurde). In der nächsten Version sollte das mit dem Markieren/Entmarkieren also funktionieren.
Hmm, ok, danke. Ich frage dann jetzt also TVBrowser.VERSION ab und wenn das kleinergleich 1.0 RC5 ist werfe ich meinen Hack an: Ein Timer wird gestartet der alle 5s nachschaut ob in der letzten Zeit Klassifikationen eingegangen sind. Und wenn dem so ist wird das erwähnte forceRepaintAll() angeworfen. Ansonsten halt mark/unmark.

Damit kann ich leben.

--
Henryk Plötz
Grüße aus Berlin

Re: Plugin: Eigene Icons auch asynchron?

Verfasst: 15 Sep 2004, 22:24
von henryk
Moin,
Til hat geschrieben:In der nächsten Version sollte das mit dem Markieren/Entmarkieren also funktionieren.
Kann man das schon irgendwo sehen zum Ausprobieren? Also ich hab das CVS für das Projekt von Sourceforge ausgecheckt, aber damit funktioniert es zum Beispiel nicht.

--
Henryk Plötz
Grüße von der Ostsee

Verfasst: 16 Sep 2004, 06:41
von bodo
Damit funktioniert das nich? Ich hab aber eigentlich da irgendwo was gesehen, das Til was geändert hat dafür ?!

Til?

Verfasst: 16 Sep 2004, 10:25
von Til
Sorry. Ich hatte was vergessen, so dass die Icons nicht neu geholt wurden, wenn die Sendung nicht in der Programmtabelle war. Wenn sie sonst wo angezeigt wurde, hat es funktioniert...

Mit der aktuellen CVS-Version sollte es gehen. Wenn nicht, dann melde dich nochmal...

Verfasst: 16 Sep 2004, 13:44
von henryk
Moin,
Til hat geschrieben:Mit der aktuellen CVS-Version sollte es gehen. Wenn nicht, dann melde dich nochmal...
meld. Ich hab jetzt zwischen markieren und entmarkieren eine Sekunde Pause eingefügt und kann in der Programmtabelle wunderbar sehen wie alle Sendungen der Reihe nach Aufleuchten. Das Icon ändert sich trotzdem nicht.

Ich bin mir zwar nicht sicher ob ich das alles richtig verstanden habe, aber soweit ich sehe sollte die Magie in ProgramPanel.stateChanged() passieren, richtig? Das ruft dann getPluginIcons() und holt sich die Icons neu. getPluginIcons() wird aber nur einmal am Anfang beim Aufbauen der Programmtabelle aufgerufen und später nicht wieder (wie ein System.out.println() zeigt; nützliches Debugging-Tool, das ;-). Weiter nachgesehen wird ProgramPanel.stateChanged() überhaupt gar nie aufgerufen, was vermutlich daran liegt dass ProgramPanel.addNotify() nie aufgerufen wird und das Program daher auch nie das ProgramPanel als ChangeListener kennenlernt.

--
Henryk Plötz
Grüße von der Ostsee

Verfasst: 16 Sep 2004, 14:19
von henryk
Moin,

Ahh, nevermind. :oops: Aus irgendeinem Grund wurde der Source doch nicht aktualisiert obwohl ich das eignetlich angefordert hatte. Jetzt geht es.

--
Henryk Plötz
Grüße von der Ostsee

Verfasst: 08 Okt 2004, 09:09
von platin(x)
Bevor ich jetzt lang rumprobier frag ich lieber ;)
Ist der Umweg über mark()/unmark() noch notwendig wenn ein Icon für die bereits dargestellte Programmtabelle angezeigt werden soll?
Im Grunde weis die Tabelle von dem neuen Icon ja nichts.

Verfasst: 08 Okt 2004, 12:36
von Til
Ja, der Umweg ist noch nötig.