/**
* Add a new Row when click on the blank row of the table
*/
void addNewRow(MouseEvent e, Table mTable) {
TableItem item = mTable.getItem(new Point(e.x, e.y));
if (item == null) {
if (mTable.getItemCount() == 0) {
item = new TableItem(mTable, SWT.NONE);
item.setText("New Row");
} else {
item = mTable.getItem(mTable.getItemCount() - 1);
int newRowY = item.getBounds().y + item.getBounds().height;
if (mTable.getLinesVisible())
newRowY += 1;
if (e.y > newRowY) {
item = new TableItem(mTable, SWT.NONE);
item.setText("New Row");
}
}
}
}
Add blank row when click on the table.
TableViewer:
/**
* Add a new Row when click on the space of the table
*/
addBlankRowListener(final TableViewer tableViewer, final Class<?> recordClass) {
final Table mTable = tableViewer.getTable();
mTable.addMouseListener(new MouseAdapter() {
public void mouseDown(MouseEvent e) {
TableItem item = mTable.getItem(new Point(e.x, e.y));
if (item == null)
addBlankRow();
if (item == null) {
if (mTable.getItemCount() == 0) {
addBlankRow();
}
else {
item = mTable.getItem(mTable.getItemCount() - 1);
int newRowY = item.getBounds().y + item.getBounds().height;
if (mTable.getLinesVisible())
newRowY += 1;
if (e.y > newRowY)
addBlankRow();
}
}
}
@SuppressWarnings("unchecked")
private void addBlankRow() {
Object record = BaseUtils.newInstance(recordClass);
List list = (List) tableViewer.getInput();
list.add(record);
tableViewer.refresh();
}
});
}