Bonjour à tous,

J'aimerai trouver le moyen d'avoir un composant graphique tel qu'un Text (Label) ou autre XPanel qui prendrait automatiquement un maximum de place par rapport aux autres composants placés de manière horizontale sur un même parent.

Exemple:

Ce que j'ai aujourd'hui
Code : Sélectionner tout - Visualiser dans une fenêtre à part
[-[Progress Bar][Text][Bouton 1][Bouton 2]                      -]
Ce que j'aimerai:
Que le "Text" prenne toute la place disponible en horizontale pour séparer la ProgressBar des deux boutons
Code : Sélectionner tout - Visualiser dans une fenêtre à part
[-[Progress Bar][Text                      ][Bouton 1][Bouton 2]-]
Les "balises" [- et -] représentent le bord d'une fenêtre...


Voici un exemple d'implémentation 'foireuse' - qui attend une solution de type Glue comme en SWING ou autre comme un GridData avec des champs SWT.FILL en SWT...

Code GXT actuel:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
 
 
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.widget.Composite;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.ProgressBar;
import com.extjs.gxt.ui.client.widget.Text;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
import com.extjs.gxt.ui.client.widget.layout.HBoxLayout;
 
 
/**
 * TODO: DOCUMENT ME!
 *
 * @author Internal Tools Team
 */
public class TestComposite
  extends Composite {
 
  /**
   * Creates a new TestComposite object.
   */
  public TestComposite() {
 
    initGUI();
 
  }
 
  /**
   * TODO DOCUMENT ME!
   */
  private void initGUI() {
 
    {
 
      this.contentPanel = new ContentPanel();
      this.contentPanel.setCollapsible(true);
 
      {
 
        this.buttonBar = new ButtonBar();
        this.buttonBar.setAlignment(HorizontalAlignment.RIGHT);
 
        {
 
          this.progressBar = new ProgressBar();
          this.buttonBar.add(this.progressBar);
          this.progressBar.setWidth("96px");
          this.progressBar.updateProgress(0.2, "Saving...");
 
        }
 
        {
 
          this.text = new Text("New Text");
          this.buttonBar.add(this.text);
 
        }
 
        {
 
          this.button = new Button("New Button");
          this.buttonBar.add(this.button);
 
        }
 
        {
 
          this.button_1 = new Button("New Button");
          this.buttonBar.add(this.button_1);
 
        }
 
        HBoxLayout hbl_contentPanel = new HBoxLayout();
        this.contentPanel.setLayout(hbl_contentPanel);
        this.contentPanel.add(this.buttonBar);
 
      }
 
      initComponent(this.contentPanel);
      this.contentPanel.setSize("524px", "91px");
 
    }
 
  }
 
  /** TODO Document Me! */
  private Button button;
 
  /** TODO Document Me! */
  private Button button_1;
 
  /** TODO Document Me! */
  private ButtonBar buttonBar;
 
  /** TODO Document Me! */
  private ContentPanel contentPanel;
 
  /** TODO Document Me! */
  private ProgressBar progressBar;
 
  /** TODO Document Me! */
  private Text text;
 
}
Merci d'avance pour vos solutions.