2016-12-21 2 views
0

JFace CheckboxTreeviewerを使用し、チェックされた要素の結果を取得するためにICheckStateListenerを追加しました。CheckboxTreeviewerは以前にリロード後にチェックされた要素を設定しました

private HashSet<Object> checkElement=new HashSet<Object>(); 
checkboxTreeViewer.addCheckStateListener(new ICheckStateListener() { 

     @Override 
     public void checkStateChanged(CheckStateChangedEvent event) { 
      String childNode=null; 
      String rootNode=null; 
      Object changed = event.getElement(); 
      if(changed instanceof ChildFacetNodeVo){ 
       checkElement.add(changed); 
       ChildFacetNodeVo childFacetNodeVo=(ChildFacetNodeVo)changed;      
       childNode=childFacetNodeVo.getLabelFacet(); 
       rootNode=childFacetNodeVo.getParent(); 
       //here to get a new result after element checked and put new result to checkboxtreeviewer 
       List<RootFacetNodeVo> facetNodeVos=createFacetFilter(rootNode,childNode); 
       if(facetNodeVos!=null){   

        checkboxTreeViewer.setInput(facetNodeVos);         
        checkboxTreeViewer.expandToLevel(3); 
        checkboxTreeViewer.setCheckedElements(checkElement.toArray()); 
       } 
      }     
     } 
    }); 

を次のように コードは、私が以前にチェック要素がオフ取得べきではない新しい要素をチェックしたときに、今私は必要なものです。 CheckboxTreeviewerで新しい入力を設定すると何も表示されません。 CheckboxTreeviewerでprevouslyチェックされた要素を設定するにはどうすればいいですか? は例

p1 
    -----A1 - previous checked 
    -----A2 
    -----A3 
    -----A4 
    -----A5 
p1 
    -----A6 
    -----A7 
    -----A8 - previous checked 
    -----A8 
    -----A9 
p1 
    -----A10 
    -----A11 
+0

私は同じ問題を抱えています、私の多くの問題はまだ解決していません。 –

答えて

0

のためにあなたがsetCheckedElementsを呼び出す場合は、指定した配列にチェックする必要があるすべてのものを含める必要があります。

ツリーに入る新しいオブジェクトのセットを作成しているように見えるので、これらの新しいアイテムのうちチェックする必要があるものを見つけ出す必要があります。

古いチェック済み要素を取得するには、checkboxTreeViewer.getCheckedElements()を呼び出すことができます(新しい入力を設定する前にこれを行います)。これは、チェックする必要がある新しい要素のうち、どの要素を解決するのに役立ちます。

+0

あなたの返信に@ greg-449に感謝しますが、まだ私の問題は解決していません –

+1

@RameshwarNagpureそれでは、これは現在の質問の情報から言えることですので、より多くの情報で新しい質問をする必要があります。私たちはマジシャンではなく、情報のない問題を解決することはできません。 –

+0

このリンクで私の質問を見つけてください[CheckBoxTreeviewerはオブジェクトの新しいセットを作成する際に古いチェック要素を設定しました](http://stackoverflow.com/questions/41267253/checkboxtreeviewer-set-old-checked-element-on-creating-new-オブジェクトのセット) –

関連する問題