Bonjour,
J'ai codé un petit menu contextuel sur une table.
Dans ce menu j'affiche la liste des éléments d'une colonne dans des items de style check.
Le but étant au final de n'afficher dans cette table que les éléments qui sont cochés dans mon menu.
Le tout fonctionne à peu près mais j'ai un souci ergonomique important :
quand je check (ou uncheck) un élément de mon menu le dit menu se ferme. Or, si je souhaite checker une dizaine (ou plus) d'éléments, je ne tiens à devoir rouvrir le menu !!
Je ne sais pas si tout est très clair (ça l'est pour moi toujours).
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 headerMenu = new Menu(table.getShell(), SWT.POP_UP); FilterColumnType = new MenuItem(headerMenu, SWT.CASCADE); FilterColumnType.setText("Filter type"); menuFilterColumnType = new Menu(table.getShell(), SWT.DROP_DOWN); MenuItem itemApply = new MenuItem(menuFilterColumnType, SWT.CHECK); itemApply.setText("Apply"); itemApply.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { for (MenuItem item : menuFilterColumnType.getItems()) { // afficher ou non la ligne dans table } // TODO ferme le menu } }); for (final String type : types.keySet()) { // Ma liste des types (hashmap<String nom><Boolean isSelected>) final MenuItem itemName = new MenuItem(menuFilterColumnType, SWT.CHECK); itemName.setText(type); itemName.setSelection(types.get(type)); // TODO si selectionné NE PAS fermer le menu }
Partager