저는 개찰구에 익숙하지 않아 메일 링리스트에 관한 정보를 담고있는 간단한 개찰구를 만들려고합니다. 이 메일 링리스트는 특정 편지와 관련이 있습니다.트리를 초기화 할 때 Wickets TreeTable 노드 확장하기
- MailingListDto 1
-
사용자 1 사용자 2
- MailingListDto 2
- 사용자 3
- 사용자 4
기존 편지를 편집하는 경우 해당 편지와 관련된 메일 링리스트가 into mailingListCollection
으로 가져오고 트리의 해당 노드를 선택하고 확장해야합니다. 웬일인지 나는이 일을하는 것처럼 보이지 않는다.
선택한 노드와 확장 된 노드가 UI에서 선택되거나 확장되지 않은 것처럼 표시되지만, 예를 들어 onAfterRender()
과 같이 선택된 노드를 프로그래밍 방식으로 탐색하고 선택한 확장 된 값을 기록하면 노드가 확장되어 선택됩니다.
Object rootObj = myTree.getModelObject().getRoot();
myTree.getTreeState().expandNode(rootObj);
도 확장하려면 루트 노드의 첫 번째 자식은 이전의 것들에 다음 줄을 추가합니다 :
myTree.getTreeState().expandNode(myTree.getModelObject().getChild(rootObj, 0));
을
tree = new TreeTable("treeTable", treeModel, treeColumns) { @Override public void onBeforeRender() { super.onBeforeRender(); if (!mailingListCollection.isEmpty()) { for (MailingListDto mailingList : mailingListCollection) { tree.getTreeState().expandNode(mailingList); tree.getTreeState().selectNode(mailingList, true); } } tree.updateTree(); } @Override protected void onAfterRender() { super.onAfterRender(); if (LOG.isDebugEnabled()) { LOG.debug("onAfterRender: " + tree.getTreeState().getSelectedNodes().size()); for (Object obj : tree.getTreeState().getSelectedNodes()) { LOG.debug(tree.getTreeState().isNodeSelected(obj) + " " + tree.getTreeState().isNodeExpanded(obj)); } } } }; tree.setRootLess(true); tree.getTreeState().setAllowSelectMultiple(true); add(tree);
메일 링리스트로 가져 가려고 할 수 있습니다. 저는 트리 구성 요소를 사용한 적이 없으며 너무 적은 개찰 사용자가 SO를 사용하는 것 같습니다. – ireddick
이것에 대한 해결책을 생각해 본 적이 있습니까? 비슷한 문제가 있습니다. – psicopoo
TreeTable에 적합한 솔루션을 찾지 못해 완전히 다른 접근 방식을 사용하게되었습니다. – Sand