예 전적으로 가능합니다. Building and delivering a table editor with SWT/JFace으로 시작하는 것이 좋습니다.이 자습서에는 알아야 할 모든 것이 포함되어 있습니다.
개괄적 인 개요를 사용하면 콘텐츠 모델의 첫 번째 항목을 데이터 항목과 다르게해야합니다. 그러면 필터 값이 저장됩니다. 그런 다음처럼 TableViewerColumn
의 어떤 지원을 편집 설정 (이 그냥 초보입니다 -이 코드 자체에서 작동하지 않습니다) :
tableViewerColumn.setEditingSupport(new EditingSupport(tableViewer)
{
@Override
protected boolean canEdit(Object element) {
if(object instanceof FilterDataObject) // your model object you are using to store the filter selections
{
return true;
}
}
@Override
protected CellEditor getCellEditor(Object element)
{
final ComboBoxCellEditor editor = new ComboBoxCellEditor(table, getPossibleFilterValues(), SWT.READ_ONLY);
((CCombo)editor.getControl()).addModifyListener(new ModifyListener()
{
public void modifyText(ModifyEvent e)
{
IStructuredSelection sel = (IStructuredSelection)m_tableViewer.getSelection();
FilterDataObject filterValue = (FilterDataObject)sel.getFirstElement();
// .. update the filter on your TableViewer
}
});
return editor;
}
@Override
protected Object getValue(Object element)
{
if(object instanceof FilterDataObject)
{
// get the filter value
}
else
{
// get your data model's value for this column
}
}
@Override
protected void setValue(Object element, Object value)
{
if(object instanceof FilterDataObject)
{
// update your FilterDataObject
}
}
});
확인을 클릭합니다. 귀중한 정보에 감사드립니다. 하지만 여전히 열 또는 특정 행에서 하나의 셀에 대해서만 드롭 다운을 추가하고 제거 할 수 있는지 알고 싶습니다. 또한 나는 당신이 제안한이 사이트를 보았습니다. 거기서 그들은 모든 컬럼에 필터를 적용하고 있습니다. – Parameswaran
예, 테이블의 각 열에 대해 TableViewColumn을 작성하므로 각 열에 대해 완전히 다른 편집 지원을 가질 수 있습니다. 'canEdit' 메서드를 사용하여 셀이 드롭 다운을 보여줄지 결정하십시오. –
당신은 사람들이 미래에 당신을 도울 가능성이 더 높습니다 답변을 수락하여 알아 ... –