Plugin-Entwicklung: Eigene Icons mit getProgramTableIcons

Hier haben Plugin-Entwickler die Möglichkeit, sich auszutauschen.
Benutzeravatar
Til
Site Admin
Beiträge: 1498
Registriert: 04 Dez 2003, 11:21
Wohnort: Karlsruhe
Kontaktdaten:

Re: Plugin: Eigene Icons auch asynchron?

Beitrag 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.
Zuletzt geändert von Til am 06 Sep 2004, 13:25, insgesamt 1-mal geändert.
henryk
Junior Member
Beiträge: 35
Registriert: 30 Aug 2004, 01:20

Beitrag 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
platin(x)
Gold Member
Beiträge: 269
Registriert: 08 Jul 2004, 16:22

Re: Plugin: Eigene Icons auch asynchron?

Beitrag 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 ;)
henryk
Junior Member
Beiträge: 35
Registriert: 30 Aug 2004, 01:20

Re: Plugin: Eigene Icons auch asynchron?

Beitrag 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
henryk
Junior Member
Beiträge: 35
Registriert: 30 Aug 2004, 01:20

Re: Plugin: Eigene Icons auch asynchron?

Beitrag 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
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Damit funktioniert das nich? Ich hab aber eigentlich da irgendwo was gesehen, das Til was geändert hat dafür ?!

Til?
Benutzeravatar
Til
Site Admin
Beiträge: 1498
Registriert: 04 Dez 2003, 11:21
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag 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...
henryk
Junior Member
Beiträge: 35
Registriert: 30 Aug 2004, 01:20

Beitrag 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
henryk
Junior Member
Beiträge: 35
Registriert: 30 Aug 2004, 01:20

Beitrag 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
platin(x)
Gold Member
Beiträge: 269
Registriert: 08 Jul 2004, 16:22

Beitrag 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.
Benutzeravatar
Til
Site Admin
Beiträge: 1498
Registriert: 04 Dez 2003, 11:21
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag von Til »

Ja, der Umweg ist noch nötig.
Antworten