Bonjour,

J'ai un petit soucis avec mes Composite SWT. Je possède 2 Composites superposés grâce à un StackLayout(). Le premier me permet de sélectionner un élément dans un tableau et le second me permet de visualiser les détails de cet éléments suite à un double-click.

Tout fonctionne bien la première fois : Je double-click sur l'élément A dans le tableau et le secons Composite m'affiche les détails de A. Mais quand je reviens dans le tableau de sélection et que je double-click sur B, le second Composite reste sur A (alors qu'en débug il met bien les labels avec l'élément B).
Bref, je n'arrive pas à rafraichir mon Composite.

Voici le code qui gère l'affichage :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
    public void displaySruDetailView(SRU sruToDisplay) {
 
        if(this.sruDetailsView == null) {
            this.sruDetailsView = new SruDetailsViewForm(this.righComposite, sruToDisplay);
        } else {
            this.sruDetailsView.setSruToDisplay(sruToDisplay, true);
        }
 
        ((StackLayout)this.righComposite.getLayout()).topControl = this.sruDetailsView;
        this.sruDetailsView.openForm();
        this.righComposite.layout();
 
    }
Ma méthode setSruToDisplay est censée mettre à jour les labels avec les détails de l'objet passé en paramètres (this.mainLabel = new Label...)

Pour info this.sruDetailsView hérite de Composite.


Bref je ne vois pas comment mettre à jour l'affichage de mon Composite sans en créer un nouveau à chaque fois. J'ai essayé Layout(), Redraw() etc... et rien.

Merci d'avance pour vos réponses.