TreeViewer
으로 RCP 응용 프로그램을 개발 중입니다. 뷰어에 편집 지원을 추가하는 방법 (모델에서 뷰의 변경 내용이 어떻게 업데이트되는지)을 설명 할 수있는 기사는 많지만, 언더 레이 모델이 변경되면 Treeview를 업데이트하는 데별로 도움이되지 않습니다. 짧은 내 질문 :모델이 변경되면 Eclipse JFace Treeviewer가 업데이트됩니까?
트 리뷰 ----> 모델 그 갱신이 예
많이있다 ------모델 ----> 트 리뷰 그 갱신은 -----이 내 질문
입니다편집 : 이것이 내가 시도한 것으로 작동합니다. 코멘트 데이터 모델이 content provider
에 의해 제공됩니다
viewer.getTree().addKeyListener(new KeyListener(){
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if(e.keyCode==SWT.F3){
System.out.println("F3 pressed... new element will be added");
TreeParent root = (TreeParent) viewer.getInput();
TreeParent activityRoot = (TreeParent) root.getChildren()[0];
activityRoot.addChild(new TreeObject("NEW_ACTIVITY"));
//viewer.update(root, null);
viewer.refresh();
}
}
});
나는 나무의 삭제 시도 : 그리고 분명히
TreeParent
클래스는위 # 1에 사용되는 청취자의
ArrayList
마지막으로 다음과 같이 키를 삭제 처리 할TreeViewer
객체에KeyListener
를 추가해야 항목은 다음을 사용하지만 작동하지 않습니다. 코드에 문제가 있습니까? : if (e.keyCode == SWT.DEL) { System.out.println ("DEL 키를 눌렀습니다 ... 요소가 삭제됩니다"); \t \t \t \t \t TreeItem item = ((Tree) e.getSource()). getSelection() [0]; viewer.remove (item.getData()); \t \t \t \t \t viewer.update (viewer.getInput(), null); viewer.refresh(); } – ssdimmanuel'viewer.remove (object)'만으로 충분할 것입니다. 뷰를 사용하여 객체를 찾는 데 도움이되도록 생성하는 동안'TreeViewer.setUseHashlookup (true)'를 많이 호출해야합니다. –
TreeViewer.setUseHashlookup (true)이 작동하지 않습니다. – ssdimmanuel