태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

ria/flex2008/01/18 17:34

FDS를 통한 RemoteObject를 사용하면, XML을 사용할 필요가 없으므로

Tree Component도 ArrayCollection으로 바인딩한다.

DB는 START WITH ~ CONNECT BY PRIOR ~ 를 이용하여 LEVEL을 구분하여 Query한다.


==ArrayCollection의 기본 구조=====================================

[Bindable]
  private var MenuList:ArrayCollection = new ArrayCollection([

{ title:"상점관리",   children: new ArrayCollection([
                       {title:"운영정보",   children: new ArrayCollection([
                                          {title:"관리자관리"}
                                          ])},
                       {title:"상점디자인",  children: new ArrayCollection([
                                          {title:"스킨관리"}
                                          ])}
                       ])}]);


==================================================================

==Label Function==================================================

private function treeLabel( item:Object ) : String
  {
       if( item.type == "department" )
           return item.title;
       else
           return item.name;
  }


==================================================================



==Click Event 처리 Function========================================


  private function onClickEventHandler():void
  {
   /*
   if( TreeMenu.selectedItem.url != null)
   {
    contentLoader.source = TreeMenu.selectedItem.url.toString();
   }*/
   // 클릭 이벤트 처리  

  }


==================================================================


==Tree Component=================================================


<mx:Tree id="TreeMenu" width="100%" height="100%"

dataProvider="{MenuList}" labelFunction="getTreeLabel"

 fontFamily="돋움체" fontSize = "11" click="onClickEventHandler();"/>


==================================================================


==ArrayCollection 다단계 구성용 스크립트============================


  private function setValues(i:int):void{
   pgmID = arr.getItemAt(i)[0].toString();
   dept = arr.getItemAt(i)[2].toString();
   pgmName = arr.getItemAt(i)[3].toString();
   subCount = arr.getItemAt(i)[7].toString();
  }
 
  private function makeList():void{

   var subCount_one:int = 0;
   var subCount_two:int = 0;
   var newItem_one:Boolean = true;
   var newItem_two:Boolean = true;
     
   for(var i:int = 1; i < arr.length ; i++){
    trace(i);
    setValues(i);
    trace(pgmID);trace(dept);trace(pgmName);trace(subCount);
//    Alert.show("i="+ i.toString()+" dept="+dept);

    switch (dept) {
     case "0":
     break;

      case "1":
       ac_one = new ArrayCollection([{title:pgmName, url:pgmID}]);
       if(subCount == "0"){
        MenuList.addItem(ac_one);
       }else{
        subCount_one = Number(subCount);
       }
       newItem_one = true;
       trace("newItem_one:"+newItem_one);
     break;

      case "2":
       ac_two = new ArrayCollection([{title:pgmName, url:pgmID}]);
       subCount_one--;
       trace(subCount);
       if(subCount == "0"){
        MenuList.addItem({title:ac_one.getItemAt(0)["title"].toString(), url:ac_one.getItemAt(0)["url"].toString(), children:ac_two});
       }else{
        subCount_two = Number(subCount);
       }
       newItem_two = true;
      break;


       case "3":
        if(newItem_two){
         ac_thr = new ArrayCollection([{title:pgmName, url:pgmID}]);
         newItem_two = false;
        }else{
         ac_thr.addItem({title:pgmName, url:pgmID});
        }
       subCount_two--;
       trace(subCount);
       trace(subCount_two);
       trace(subCount_one);      
        if(subCount_two == 0 && newItem_one){
        MenuTemp = new ArrayCollection([{title:ac_two.getItemAt(0)["title"].toString(), url:ac_two.getItemAt(0)["url"].toString(), children:ac_thr}]);
        newItem_one = false;
        }else if(subCount_two == 0){
         MenuTemp.addItem({title:ac_two.getItemAt(0)["title"].toString(), url:ac_two.getItemAt(0)["url"].toString(), children:ac_thr});
        }
        if(subCount_one == 0 && subCount_two == 0){
         MenuList.addItem({title:ac_one.getItemAt(0)["title"].toString(), url:ac_one.getItemAt(0)["url"].toString(), children:MenuTemp});
       }
       var dgar:ArrayCollection = ArrayCollection(dg1.dataProvider);
      default:
      break;

    }
      dgtemp.addItem({0:i,1:subCount_one.toString(),2:subCount_two.toString(),3:newItem_one.toString(),4:newItem_two.toString(),5:pgmID ,6:pgmName, 7:dept, 8:subCount});
   }
   
  }


==================================================================

http://cafe.naver.com/lisflex/22

Posted by THLIFE.net

TRACKBACK http://thlife.net/trackback/49 관련글 쓰기

댓글을 달아 주세요