Problème d'affichage TreeViewer lors du resize de fenêtre
J'ai dans une ApplicationWindow une SashForm, dans laquelle je mets à gauche un TreeViewer, et à droite un Browser.
Code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
@Override
protected Control createContents(Composite parent) {
....
// Sash form
Composite sash = new Composite(parent, SWT.NONE);
sash.setLayout(new FillLayout());
sash.setLayoutData(new GridData(GridData.FILL_BOTH));
sashForm = new SashForm(sash, SWT.HORIZONTAL | SWT.NULL);
// Tree Viewer
PBS pbs = new EBOM();
treeviewer = new PBSTreeViewer(sashForm, pbs);
Tree tree = treeviewer.getViewer().getTree();
treeviewer.getViewer().expandAll();
treeviewer.getViewer().addSelectionChangedListener(
new SelectionChangedListener(this));
// Browser
pbsbrowser = new PBSBrowser(sashForm);
Browser browser = pbsbrowser.getBrowser();
refreshBrowser();
return sashForm; |
A l'initialisation de mon TreeViewer (la racine de mon modèle est indiquée par le <code>new EBOM()</code>, tout se passe correctement. Le resize de la fenêtre est correct, tout baigne....
Lorsque que change mon modèle en injectant une nouvelle racine dans le TreeViewer par
Code:
1 2 3 4 5 6 7
|
public void updatePBS (Navigable PBS) {
pbs = PBS;
viewer.setContentProvider(new PBSContentProvider(pbs));
setColumns();
viewer.setInput(pbs);
} |
, l'affichage du TreeViewer et du Browser est OK, le sash est OK...Mais tout intervention sur le resize de la fenêtre me vide celle-ci en ne me laissant qu'un fond gris barré d'une ligne horizontale, seuls la barre de menu est conservée....
J'ai vainement tenté des layout(), des refresh, des setRedraw.... Rien...
Quelqu'un peut-il m'aider à résoudre ce truc ? Merci.