2013-02-15 5 views
0

저는 GWT를 처음 사용하고 있으며 자식 노드가 동적으로 커지는 트리를 만드는 데 문제가 있습니다. 내 페이지에 나무가이 같이 보입니다로드 할 때 :동적으로 성장하는 CellTree를 만드는 방법

ROOT_Node 
    | 
    |_Child 1 
    | 
    |_Child 2 

사용자가 자녀 1 자녀 2를 클릭, 그들은이 같은 확장 : 아이 1_1에

ROOT_Node 
    | 
    |_Child 1 
    | | 
    | |_Child 1_1 
    | |_Child 1_2 
    | 
    |_Child 2 

만약 사용자가 클릭는 경우가 Child 1_1의 하위 노드가 다시 확장됩니다. 모든 노드가 동적으로 커집니다. GWT TreeCell에 대한 몇 가지 기본 샘플을 작성하여 동적으로 확장되지 않는다는 것을 이해했습니다. 따라서 사용자가 자식 노드를 클릭 할 때마다 CellTree를 제거하고 새로운 CellTree를 추가합니다. 이것은 너무 나쁘다. 적어도 나는 임의의 수의 자식 노드와 그 자식 노드를 처리 할 수있는 코드를 작성할 수 있어야한다.

공식 GWT 자습서를 비롯한 몇 가지 GWT 자습서를 살펴 보았습니다. 그러나 이런 종류의 문제와 관련된 사례를 찾을 수 없었습니다. 자습서는 "if (value instanceof SomeClass) then do this"를 포함하고 선택 핸들러 등을 추가합니다.이 접근법을 사용하면 if-then-else 블록을 많이 작성해야합니다.

누구든지이 문제를 해결할 수 있도록 도와주세요. 또는 CellTree를 사용하지 않고 트리를 표시하는 쉬운 방법이 있습니까? 윌리스트가 도움이 될까요?

답변

0

CellTree DOES 동적 데이터를 지원합니다.

게으른 로딩을 지원하거나 계층 구조를 알 수없는 경우 AsyncDataProvider을 사용할 수 있습니다.
here에서 찾을 수있는 동적 데이터의 사용을 보여주는 사례도 있습니다.

각 트리 레벨마다 다른 Cells을 사용하려면 모든 if (value instanceof SomeClass)을 사용해야합니다 (쇼케이스 예제 참조).

Child1Child1_2이 같은 유형이고 동일한 방식으로 렌더링되어야한다고 가정하면 다른 접근 방식을 사용할 수 있습니다. 개체가 특정 클래스인지 확인하는 대신 트리의 어느 수준에 속하는지 또는 개체가 참조를 통해 함께 연결되어 있는지를 알려주는 개체의 필드를 확인할 수 있습니다 (예 : 자식 개체는 부모 개체에 대한 참조를가집니다.)이 정보를 사용하여 귀하의 주소를 만들 수도 있습니다. TreeViewModel

관련 문제