2017-12-25 14 views
0

私はSWTとJFaceの新バージョンです。最近、私のプロジェクトでJFaceテーブルビューアを使用しました。そして、私は削除ボタンで項目を削除する必要があります。しかし、テーブルビューアを削除した後にテーブルビューアを更新しても機能しません。私は以下を示しreason.Myコードを知りたい:JFaceテーブルビューアのアイテムの削除がリフレッシュできない

btnDeleteConstraint.addSelectionListener(
      new SelectionAdapter() { 
      @Override 
      public void widgetSelected(SelectionEvent e) { 
      ISelection selection = tableViewer.getSelection(); 
      logger.debug("datatype selected"); 
      if (selection != null || selection instanceof 
      IStructuredSelection) { 
      IStructuredSelection sel = (IStructuredSelection) selection; 
      Iterator iterator = sel.iterator(); 
      while(iterator.hasNext()) { 
       Object obj = iterator.next(); 
       tableViewer.remove(obj); 
      } 

      tableViewer.refresh(); 
     } 

    } 
}); 

と私は入力を設定し、最後にテーブルを更新するために)(別の方法と呼ばれるアップデートを使用する:あなたはrefreshを呼び出すと

public void update() 
{ 
    tableViewer.setInput(DataTypeFactory. 
    getInstance().getCastList(wizard.getSourceInfo().getDBType())); 
    tableViewer.refresh(); 
} 

答えて

0

テーブルはあなたの「コンテンツプロバイダ」から更新されます。したがって、あなたが削除するときにのコンテンツプロバイダが返すデータをgetElementsメソッドで返す必要があります。

+0

私はそれを修正するたびにテーブルを更新する必要はありませんが、それは正しいですか? – khunnie

+0

いいえ、更新する必要はありません。しかし、コンテンツプロバイダーのデータを表示されたテーブルと同期させておく必要があります。 –

関連する問題