2014-01-29 2 views
1

테이블 뷰어 (jface)스크롤 할 때 이동하지 않는 열을 유지하는 방법은 무엇입니까?

아이콘이있는 열이 하나 있습니다. 테이블의 항목에 변경 사항이있는 경우 열의 편집 아이콘이 표시됩니다.

테이블을 스크롤 할 때 (왼쪽에서 오른쪽으로 스크롤 할 때) 한 열이 이동하지 않고 항상 잠길 수 있습니다. 50 개의 열이있을 수 있으며 첫 번째 열은 항상 사용자가 아이콘을 볼 수있는 잠금이되기를 원합니다.

은 하나 개의 테이블을 사용하여 수행 할 수없는 tableViwer

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; 
     } 
     @Override 
     public Image getImage(Object element) { 
       //Add my imgae 
     } 
    }); 



editingSupport = new StringCellEditingSupport(this, dataColumnHeader); 
tableCol.setEditingSupport(editingSupport); 
    super.inputChanged(input, oldInput); 

}

답변

1

이의 코드입니다. 고정 된 열과 나머지 열에 대해 두 명의 뷰어가있을 수 있습니다. 두 테이블의 수직 스크롤링을 동기화해야합니다. There is a snipped with sample code.

또는 Eclipse NatTable이 고정 열을 지원한다고 생각합니다.

관련 문제