2014-03-13 1 views
1

Как я могу поместить кнопку в Columnheader из CheckboxTableviewer? И когда я нажимаю эту кнопку, я хочу, чтобы все строки были выбраны. Моя таблица имеет 10 столбцов,Как разместить кнопку в столбце заголовка CheckboxTableviewer? И когда я нажимаю эту кнопку, я хочу, чтобы все строки были выбраны.

  1. Я хочу кнопку в ColumnHeader,
  2. при нажатии этой кнопки я хочу, чтобы все строки таблицы должны быть выбраны.

Это мой стол

final CheckboxTableViewer dataTable = CheckboxTableViewer.newCheckList(TableComposite2, SWT.MULTI | SWT.H_SCROLL 
       | SWT.V_SCROLL | SWT.BORDER |SWT.DM_FILL_BACKGROUND|SWT.FULL_SELECTION); 
     dataTable .getTable().setHeaderVisible(true); 
     dataTable .getTable().setLinesVisible(true); 
     dataTable .setContentProvider(new ArrayContentProvider()); 


    //Action Check box 
     TableColumn columnCHead=new TableColumn(dataTable .getTable(),SWT.NONE); 
     columnCHead.setText("Delete"); 

     columnCHead.setWidth(50); 
     // setting column input 
     TableViewerColumn columnC=new TableViewerColumn(dataTable ,columnCHead); 
     columnC.setLabelProvider(new ColumnLabelProvider() 
     { 
      public String getText(Object Element) 
      { 

       return null; 
      } 
     }); 

     TableColumn columnFS1Head=new TableColumn(dataTable .getTable(),SWT.NONE); 
     columnFS1Head.setText("SOURCE DIRECTORY"); 
     columnFS1Head.setWidth(300); 

     TableViewerColumn columnFS1=new TableViewerColumn(dataTable ,columnFS1Head); 
     columnFS1.setLabelProvider(new ColumnLabelProvider() 
     { 
      public String getText(Object Element) 
      { 
       AgedFileMaster a=(AgedFileMaster)Element; 
       return a.getDIRECTORY_PATH(); 
      } 

В первом столбце, я хочу, чтобы кнопка вместо текста «удалить». Кто-нибудь, пожалуйста, помогите. Я новичок в SWT.

ответ

2

TableColumn уже ведет себя как кнопка, просто используйте addSelectionListener, чтобы прослушать нажатие кнопки. Вы не можете легко добавить элементы управления в заголовок столбца.

Чтобы выбрать все называют

Object [] elements = get all the elements in your data model 

dataTable.setSelecton(new StructuredSelection(elements)); 
+0

спасибо Грегу ... :) – Msn

+0

«получить все элементы в модели данных» означает, что именно? может у просьба дать образец кода? – Msn

+0

Модель данных - это массив или список, который вы передаете методу 'setInput'. –