Etwas Offtopic: Wenn man eine neue Antwort schreibt, die aber dann als Edit in der vorherigen landet, bekommen dann die anderen Thread-Teilnehmer eine Benachrichtigung dass es neue Antworten gibt?
Aber zurück zum Thema:
Hab weiter gelesen, das hier sollte her passen um ein Objekt im Lookup zu registrieren:
InstanceContent ic = new InstanceContent();
Lookup lookup = new AbstractLookup(ic);
ic.add(device);
… geht aber auch nicht?!
Könnte aber auch am Listener liegen dass da noch etwas nicht stimmt. Hmmpf. Bin weiterhin offen für Anregungen und Tipps.
*** Edit ***
Ich steig immer noch nicht ganz durch… Ich schätze ich hab das Prinzip noch nicht ganz verstanden.
- Ist dieses Lookup jetzt global (eine „Map“ für die ganze Anwendung), oder hat jede „TopComponent“ ihren eigenen Lookup? Hier steht:
There is already a global lookup, which any modules can Listen to.
It is called Utilities.actionsGlobalContext();
It actually proxies to the Lookup of the currently active TopComponent.
Das lässt mich annehmen dass jede TopComponent ihre eigene LookupMap führt, und ich über actionGlobalContext() den Lookup der gerade selektierten/aktiven TopComponent erhalte?! Ist das soweit korrekt?
Wenn ja, dann hab ich das Prinzip völlig falsch angenommen. Dachte bisher dass lookup eine Art „globale Registry“ ist in der man an beliebiger Stelle Objekte reinstecken, und an beliebig anderer Stelle änderungen/neue Objekte per Listener mitkriegt.
Wenn jetzt jede Komponente ihr eigenes Lookup hat, dann wird das doch schnell unübersichtlich und konfus?! Ich kann mir zwar augenscheinlich mit
TopComponent tc = WindowManager.getDefault().findTopComponent("DeviceEditorTopComponent");
Lookup tcLookup = tc.getLookup();
den Lookup der „Ziel-Komponente“ holen, aber wie stecke ich da mein „Device-Objekt“ rein für das sich die Ziel-Komponente interessiert?
Auch verstehe ich dann nicht wie ich folgendes konkret umsetzen soll:
Ich hätte gerne einen Toolbar-Button mit dem ich einen FileChooser-Dialog bekomme (den Dialog hab ich selbst gebaut und kein Netbeans-Modul/API benutzt → Fehler?), eine File auswähle, nach der Auswahl die File lese (bis hierher hab ich’s) und das Ergebnis dann an eine TopComponent weiterreiche…
Wäre echt toll wenn sich ein Netbeans-Auskenner hier outet und mir vllt. ein kleines Bespiel geben kann.
Gruß
Alex