[SWT]Quand et comment faut-il "disposer" ?
Voilà une petite question que je me pose :
Dans une application SWT :
On crée un shell principal et des shell "secondaires" pour les Dialog par exemple...
Prenons un Dialog avec :
- 1 image
- 2 panneaux
- 2 boutons
Dans une méthode privée, je crée et j'initialise tous ces éléments.
La méthode "open" que j'utilise comme un setVisible(true) en SWING est la suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| public void open() {
try {
dialogShell.open();
Display display = dialogShell.getDisplay();
while (!dialogShell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
} catch (Exception e) {
e.printStackTrace();
logger.error("error", e);
}
} |
le "dialogShell" est le shell que j'utilise pour afficher la dialog.
Quand je demande de fermer la dialog, j'appelle une méthode "close" comme celle qui suit :
Code:
1 2 3
| public void close() {
dialogShell.dispose();
} |
Etant donné que les panneaux et autres boutons ont été créés en passant le dialogShell en paramètre; je suppose que je ne doit pas les désallouer moi-même.
Mais qu'en est-il des images ?
En fait, comment savoir ce qu'il écrire dans la méthode "close" de mes interfaces graphiques qui étendront des Dialog ou dans la méthode "dispose" surchargée des interfaces qui étendront des Composite ?
Comment être sur et certain que tout à bien été désallouer lorsqu'on ferme une Dialog ou qu'on désire effacer un Composite ?
Merci d'avance pour vos réponses !