2
TableViewer (jface)를 만들었습니다.TableViewer에서 셀이 변경되었는지 어떻게 알 수 있습니까?
모든 열 (EditingSupport 사용)
I 셀이 변경 될 때 알고 다음 다른 열에 플래그를 인상 할 편집 할 수 있습니다. 셀에 데이터를 쓰는 것을 의미합니다.
키가 변경된 리스너의 이벤트를 셀에 작성해야한다는 것을 알고 있습니다. (또는 다른 방법이 있습니다)
어떻게 셀에 액세스 할 수 있습니까?
public class MyGridViewer extends TableViewer {
public MyGridViewer (Composite parent) {
super(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
final Table table = this.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);
this.setContentProvider(new MyModelProvider());
} }
@Override
protected void inputChanged(Object input, Object oldInput) {
removeColumn();
tableCol = new TableViewerColumn(this, SWT.NONE);
column = tableCol.getColumn();
column.setText(dataColumnHeader.getName());
column.setWidth(100);
column.setResizable(true);
column.setMoveable(true);
tableCol.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
DataRow r = (DataRow) element;
DataCell c = r.getDataCellByName(dataColumnHeader.getName());
if (c != null && c.getValue() != null) {
return c.getValue().toString();
}
return null;
}
});
editingSupport = new StringCellEditingSupport(this, dataColumnHeader);
tableCol.setEditingSupport(editingSupport);
super.inputChanged(input, oldInput);
}