}
}
} else {
// create columns
for (int i = 0; i < model.getHeader().size(); i++) {
final TableViewerColumn column = new TableViewerColumn(tableViewer, SWT.LEFT);
final int index = i;
column.getColumn().setText(model.getHeader().get(i));
column.getColumn().setWidth(100);
column.getColumn().setResizable(true);
column.getColumn().setMoveable(true);
column.setLabelProvider(new CSVLabelProvider());
addMenuItemToColumn(column.getColumn(), index);
}
}
if (model.isFirstLineHeader()) {
new MenuItem(tableHeaderMenu, SWT.SEPARATOR);
// create menu item to delete column
final MenuItem deleteColumnItem = new MenuItem(tableHeaderMenu, SWT.PUSH);
deleteColumnItem.setText("Delete Column");
deleteColumnItem.setSelection(false);
deleteColumnItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
// call delete column page
DeleteColumnPage dcPage =
new DeleteColumnPage(getSite().getShell(), model.getArrayHeader());
if (dcPage.open() == InputDialog.OK) {
String[] colToDelete = dcPage.getColumnSelected();
for (String column : colToDelete) {
int colIndex = findColumnForName(column);
tableViewer.getTable().getColumn(colIndex).dispose();
tableHeaderMenu.getItem(colIndex).dispose();
model.removeColumn(column);
}
tableModified();
}
}
});
// create menu item to insert column
final MenuItem insertColumnItem = new MenuItem(tableHeaderMenu, SWT.PUSH);
insertColumnItem.setText("Add Column");
insertColumnItem.setSelection(false);
insertColumnItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
// call insert/add column page
InsertColumnPage acPage =
new InsertColumnPage(getSite().getShell(), model.getArrayHeader());
if (acPage.open() == InputDialog.OK) {
String colToInsert = acPage.getColumnNewName();
model.addColumn(colToInsert);
tableViewer.setInput(model);
final TableColumn column = new TableColumn(tableViewer.getTable(), SWT.LEFT);
column.setText(colToInsert);
column.setWidth(100);
column.setResizable(true);
column.setMoveable(true);
addMenuItemToColumn(column, model.getColumnCount()-1);
defineCellEditing();
tableModified();