2012-05-23 2 views
0

는 내가 VirtualTree 데모와 함께 다음하고있어 선택의 부모에서 얻을 수있는 방법 찾을 수 없습니다 "Qooxdoo - VirtualTree 선택의 부모를 얻는 방법이 있습니까?

tree.getSelection().addListener("change", function(e){ 
    var selection = tree.getSelection(); 
    console.log(selection.getItem(0).getName()); // works just fine to get the name 
} 

내가 속성"조부모 "에서 얻으려고하고 이 JSON 저장소에서 부모 "나는이 시도했습니다

{ 
     "name": "root", 
     "children": [ 
     { 
      "name": "Grandparent", 
      "children": [ 
      { 
       "name": "Parent", 
       "children": [ 
       { 
        "name": "Name of my Selected Item", 

:

tree.getModel().getChildren().getItem(0) 

만의 getItem (X)에 대한 값 X에서 점점 하나 간단하지 않다.

이 정보를 제공해 주시면 감사하겠습니다. 감사!

답변

1

기본적으로 트리 데이터 모델에는 부모 참조가 없습니다. 달성하기위한 쉬운 방법은 없습니다. 여전히 두 가지 선택이 있습니다.

  1. 자신의 트리 클래스를 모델로 사용하고 부모 참조를 직접 구현할 수 있습니다. 이것은 마샬 러의 대리인을 사용하여 수행 할 수 있습니다 [1]. 교착 상태가 발생하기 때문에 상위 참조에 대한 버블 이벤트를 활성화하지 않도록하십시오.

  2. 검색 알고리즘을 구현하여 부모를 얻을 수 있습니다. 해당 참조가 자주 필요하지 않고 데이터가 너무 크지 않으면 취할 수있는 방법입니다.

[1] http://demo.qooxdoo.org/current/apiviewer/#qx.data.marshal.IMarshalerDelegate

+0

감사 @Martin Wittemann! 방법 1은 프로그래밍 전문 지식보다 약간 위의 것입니다. 내 데이터 집합이 다소 작기 때문에 두 번째 방법이 확실히 작동합니다. 나는 각자의 부모에게 넣을 정보를 포함시킬 수 있습니다 - 그것은 조금 더 많은 작업입니다. 부모에게 접근 할 수있는 기능을 갖추면 qooxdoo의 멋진 미래가 될 것입니다 :-) 다시 한번 감사드립니다! – Jonathan