/*************************************************************************
* 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;
}
최신 댓글