2014-01-23 2 views
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); 

}

답변

1
귀하의 StringCellEditingSupport 클래스는 셀이 변경 될 때 알고

넣어 나는 이벤트

에게 // gridViewer 클래스를 추가해야 할 경우 그 클래스의 setValue 메소드의 코드.

관련 문제