1
테이블 뷰어 (jface)스크롤 할 때 이동하지 않는 열을 유지하는 방법은 무엇입니까?
아이콘이있는 열이 하나 있습니다. 테이블의 항목에 변경 사항이있는 경우 열의 편집 아이콘이 표시됩니다.
테이블을 스크롤 할 때 (왼쪽에서 오른쪽으로 스크롤 할 때) 한 열이 이동하지 않고 항상 잠길 수 있습니다. 50 개의 열이있을 수 있으며 첫 번째 열은 항상 사용자가 아이콘을 볼 수있는 잠금이되기를 원합니다.
이
은 하나 개의 테이블을 사용하여 수행 할 수없는 tableViwerpublic 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;
}
@Override
public Image getImage(Object element) {
//Add my imgae
}
});
editingSupport = new StringCellEditingSupport(this, dataColumnHeader);
tableCol.setEditingSupport(editingSupport);
super.inputChanged(input, oldInput);
}