aJax를 이용한 jsTree 만들기

/*************************************************************************
 * jsTree객체 생성
 *************************************************************************/
      
$("#menuTree").jstree({      
	core: {        
		check_callback: true,
		        data: {        
			url: "/MenuList.json",
			        dataType: "json"        
		}      
	},
	      types: {        
		"default": {          
			icon: "fa fa-folder text-warning fa-lg"        
		},
		        file: {          
			icon: "fa fa-file text-inverse fa-lg"        
		}      
	},
	      plugins: ["dnd", "state", "types", "search"]     // dnd : drag & drop 플러그인, state : 메뉴상태(opened 등) 기억, types : 메뉴 아이콘 세팅, search : 검색옵셜 활성화
	    
})    .bind("move_node.jstree", function (evt, data) { // 노드가 이동한 뒤 처리할 이벤트
	console.log("nodeId : " + data.node.id);
	console.log("parentId : " + data.node.parent);
	console.log("position : " + data.position);
	console.log("oldParendId : " + data.old_parent);
	console.log("oldPosition : " + data.old_position);    
})    .bind("select_node.jstree", function (evt, data) {     // 노드가 선택된 뒤 처리할 이벤트
	console.log("nodeId : " + data.node.id);    
});

/*************************************************************************
 * 노드 검색
 *************************************************************************/
  
var node = "test";  
$('#menuTree').jstree(true).search(node);

  

/*************************************************************************
 * 전체 노드를 배열로 받기
 *************************************************************************/
      
var jsonNodes = $('#menuTree').jstree(true).get_json('#', {
	'flat': true
});  
$.each(jsonNodes, function (i, val) {  
	console.log(val);  
});


public String getMenuList() throws Exception {
	// 모든 메뉴를 추출하여 가져온다.
	List < MenuVO > MenuList = menuService.selectAllMenuList();

	// 루트노드를 하나 만들어준다.
	List < Object > treeList = new ArrayList < Object > ();
	Map < String, Object > root = new HashMap < String, Object > ();
	Map < String, Boolean > rootState = new HashMap < String, Boolean > ();
	root.put("id", "0");
	root.put("parent", "#");
	root.put("text", "루트");
	rootState.put("opened", true);
	root.put("state", rootState);
	treeList.add(root);

	// 각 메뉴를 리스트에 넣어준다.
	for (LeftMenuVO menu: leftMenuList) {
		Map < String, Object > tree = new HashMap < String, Object > ();
		Map < String, Boolean > state = new HashMap < String, Boolean > ();

		tree.put("id", String.valueOf(menu.getMenuId()));
		tree.put("parent", String.valueOf(menu.getPrtMenuId()));
		tree.put("text", menu.getMenuName());
		state.put("opened", menu.getMenuDepth() == 1 ? true : false);

		tree.put("state", state);
		treeList.add(tree);
	}

	ObjectMapper mapper = new ObjectMapper();
	String jsonString = mapper.writeValueAsString(treeList);

	return jsonString;
}

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다