Hallo zusammen,
im letzten Thread von mir (siehe hier) habe ich mein Problem mit einem seltsamen Fehler versucht zu erklären und (erfolgreich) zu lösen.
Ich habe, um auf ein SelectionChanged-Event zu hören, das von einem SelectionProvider geliefert wurde, einen View programmiert, das das auch soweit ganz gut macht.
Einziger Wermutstropfen ist folgender:
Wenn ich meinen SelectionProvider (ein Composite) öffne, und dort eine Auswahl vornehme, dann den View öffne, der auf die Änderungen hören soll, so wird letzter - obwohl korrekt an die Worbench angefügt - kein Event fangen. Egal wie viel ich im SelectionProvider herumklicke. Es sei noch einmal angemerkt, das ich ausschließlich auf die ID des Editors höre, der den SelectionProvider hinzugefügt hat.
Einziger mir bekannter Workaround ist, den View offen zu lassen, den Editor zu schließen und wieder zu öffnen, dann klappt alles wie es soll. Danach kann ich auch den View schließen und öffnen und er hört immer noch auf Änderungen.
Im Log sind keine Exception aufgetaucht, daher weiß ich nicht, ob es da was zu entdecken gäbe...
Ein (verzweifelter) Versuch, den starken Bezug beim Anmelden des Listeners im View zum Editor auzuheben (also keine Editor.ID anzugeben, sondern nur den Listener) führte zu anderem kuriosen, mir nicht erklärlichen Verhalten (nach einem klick irgendwo - ganz egal wo - in den View, schlossen sich meine Forms-Sections, es flogen WidgetDisposedExceptions, obwohl alles offen war, u.ä - ich denke es könnte an den vielen komplexen Listener-Verschachtelungen dort liegen, bin mir aber absolut unsicher).
Habt ihr wenigstens zu oben genannten Problem (mit Bezug zur Editor.ID) eine Ahnung oder könntet ihr mich irgendwie auf die richtige Fährte schicken?
Ich hoffe ja speziell auf den ein oder anderen Guru hier ;-)
Viele Grüße,
Daniel
im letzten Thread von mir (siehe hier) habe ich mein Problem mit einem seltsamen Fehler versucht zu erklären und (erfolgreich) zu lösen.
Ich habe, um auf ein SelectionChanged-Event zu hören, das von einem SelectionProvider geliefert wurde, einen View programmiert, das das auch soweit ganz gut macht.
Einziger Wermutstropfen ist folgender:
Wenn ich meinen SelectionProvider (ein Composite) öffne, und dort eine Auswahl vornehme, dann den View öffne, der auf die Änderungen hören soll, so wird letzter - obwohl korrekt an die Worbench angefügt - kein Event fangen. Egal wie viel ich im SelectionProvider herumklicke. Es sei noch einmal angemerkt, das ich ausschließlich auf die ID des Editors höre, der den SelectionProvider hinzugefügt hat.
Einziger mir bekannter Workaround ist, den View offen zu lassen, den Editor zu schließen und wieder zu öffnen, dann klappt alles wie es soll. Danach kann ich auch den View schließen und öffnen und er hört immer noch auf Änderungen.
Im Log sind keine Exception aufgetaucht, daher weiß ich nicht, ob es da was zu entdecken gäbe...
Ein (verzweifelter) Versuch, den starken Bezug beim Anmelden des Listeners im View zum Editor auzuheben (also keine Editor.ID anzugeben, sondern nur den Listener) führte zu anderem kuriosen, mir nicht erklärlichen Verhalten (nach einem klick irgendwo - ganz egal wo - in den View, schlossen sich meine Forms-Sections, es flogen WidgetDisposedExceptions, obwohl alles offen war, u.ä - ich denke es könnte an den vielen komplexen Listener-Verschachtelungen dort liegen, bin mir aber absolut unsicher).
Habt ihr wenigstens zu oben genannten Problem (mit Bezug zur Editor.ID) eine Ahnung oder könntet ihr mich irgendwie auf die richtige Fährte schicken?
Ich hoffe ja speziell auf den ein oder anderen Guru hier ;-)
Viele Grüße,
Daniel