Bonjour à tous,
Je reviens avec une nouvelle question pour laquelle j'espere que vous m'aideriez à trouver une solution.
Toujours dans le compte du developpement de mon application RCP, je dois pouvoir créer une vue dans laquelle se trouvent des champs (zones de saisies, combo, ...) me permettant d'éffectuer un filtre. Jusqu'ici rien de spécial. La difficulté vient du fait que, je dispose dans une autre vue, d'un tableViewer contenant mes données. Ces données proviennent de l'éxécution d'une procédure stockée dans une base de données. Je ne connais ni la nature des données, ni celle des colonnes (type et nom), encore moins le nombre de colonnes qui vont être renvoyés par l'éxécution de ma proc stock.
Je voudrais donc, dans une autre vue, créer un interface me permettant d'effectuer un filtre sur les données de ma tableViewer. Ce filtre devra donc reprendre toutes les colonnes présente dans ma table et en fonction du type de la colonne, créer le champ adéquat de la maniere suivante :
- colonne de type text : -> label + text
- colonne de type numérique : -> label + combo(<,>,=) + text
La première chose que j'ai faite a été de créer des classe me permettant de d'intancier des objets de cette nature. Classes que j'utiliserais ensuite dans le createPartControl de ma vue . Par exemple, pour le type text, j'ai :Etant débutant en SWT/JFace et RCP, et malgré l'idée que je vous ai présenté ci haut, je n'arrive toujours pas à voir comment générer de manière dynamique (en fonction des colonnes provenant de ma base de données) mon écran.
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 public class LabelText extends Composite { public LabelText(Composite parent, String label, String textf) { super(parent, SWT.NONE); GridLayout myGL = new GridLayout(2, false); this.setLayout(myGL); Label myLabel = new Label(this, SWT.NONE); myLabel.setText(label); Text myText = new Text(this,SWT.BORDER); myText.setText(textf); GridData myGD = new GridData(GridData.FILL_BOTH); myText.setLayoutData(myGD); } }
Je voudrais voir avec vous si vous avez une meuilleure manière pour faire cela et si vous avez déjà été confronté à un problème de la sorte.
merci pour tout
Partager