java - how to delete selected rows (multiple rows) from CheckboxTableViewer when button clicks? (table is connected to oracle database) -


i hava checkboxtableviewer has 10 columns, , table filled database, , have button outside table named "delete", want is:- when select rows using check box (multiple selection also) , when press "delete" button , want selected rows should deleted database, , tableviewer shuold refreshed.

am pasting tableviewer code below:-

    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();         } 

enter code here});

...... , have button delete operation,(outside table), when press delete button, want selected rows deleted... beginner swt. please help......

use addselectionlistener on button control notified when button pressed:

button.addselectionlistener(new selectionadapter()   {     public void widgetselected(selectionevent event)     {       // todo handle delete here     }  }); 

you need 2 things remove data - first update data model remove objects , secondly tell table viewer model has changed.

you can this:

datatable.gettable().setredraw(false);  // stop redraw during update  istructuredselection selection = (istructuredselection)datatable.getselection();  (iterator<?> iterator = selection.iterator(); iterator.hasnext(); )  {    object selectedobject = iterator.next();     // todo remove data model array     // tell table view object has been removed     datatable.remove(selectedobject);  }  datatable.gettable().setredraw(true);  // allow updates drawn 

an alternative calling datatable.remove on each object call datatable.refresh once @ end. there variant of remove accepts array of objects.


Comments