Sto sviluppando un'applicazione desktop in java / swing.
Ho un componente che è registrato come sottoscrittore di molti pannelli e riceve messaggi (il mio evento personalizzato) da loro. Quel componente è qualcosa come message tray. Quando c'è un errore di convalida o qualche tipo di messaggio informativo, viene consegnato dal pannello a quel vassoio con il mio metodo "pubblica".
Ma ora sto affrontando un problema. Ho una finestra che comprende la mia barra dei messaggi e il pannello interno. in questo pannello interno ci sono alcuni componenti e altri pannelli. E in questo pannello ci sono pannelli che implementano l'interfaccia Publisher ma sono stati creati al volo dai metadati e non ho accesso a loro per registrare un sottoscrittore.
Quindi non posso registrare direttamente la mia message tray come subscriber ai pannelli perché:
- Non ho accesso ad essi
- sono creati dinamicamente dai metadati e possono essere modificati.
Va bene impostare il mio riferimento all'oggetto sottoscrittore nei pannelli centrali (tra) e, quando si creano dinamicamente, i miei pannelli dei publisher registrano tale riferimento?
Va bene con lo schema dell'osservatore perché ora altre classi fanno riferimento all'oggetto di cui non hanno strettamente bisogno.
Forse questo oggetto dovrebbe essere iniettato in altro modo? o forse è tutto OK e oggi mi sono incasinato;)