Recipe 9.16 Adding Check Marks to Table Items

     

9.16.1 Problem

You want to enable the user to select individual items in your SWT table widgets.

9.16.2 Solution

When you create your table, use the SWT.CHECK style. To determine if an item has been checked, you can use the getChecked method, which returns true if the item is checked.

9.16.3 Discussion

After you've added check marks to a table, you can determine which items have been checked with the table's getSelection method, which returns an array of the selected TableItem objects; with getSelectionIndex , which returns the index of the currently selected item; or with getSelectionIndices , which returns an int array of the indices of the selected items in a multiple-selection table. To see if an individual table item is checked, call its getChecked method or use setChecked to explicitly check it.

For example, here's how to create a table with check boxes:

 Table table = new Table(shell, SWT.CHECK  SWT.BORDER  SWT.V_SCROLL  SWT.H_SCROLL); 

You can determine if a newly clicked item has been checked by looking at the detail member of the Event object passed to us in the handleEvent method:

 table.addListener(SWT.Selection, new Listener( ) {     public void handleEvent(Event event)     {         if(event.detail == SWT.CHECK){             text.setText("You checked " + event.item);         } else {             text.setText("You selected " + event.item);         }     } }); 

The results appear in Figure 9-11. As you can see, the application indicates which table item you've checked.

Figure 9-11. A table with check marks
figs/ecb_0911.gif

9.16.4 See Also

Recipe 9.14 on creating tables; Recipe 9.15 on creating table columns ; Recipe 9.17 on enabling and disabling items in a table; Recipe 9.18 on adding images to table items.



Eclipse Cookbook
Inside XML (Inside (New Riders))
ISBN: 596007108
EAN: 2147483647
Year: 2006
Pages: 232
Authors: Steve Holzner

Similar book on Amazon

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net