YUI TreeView js files:
<style>
.ygtvcheck0 { background: url(http://developer.yahoo.com/yui/examples/treeview/assets/img/check/check0.gif) 0 0 no-repeat; width:16px; cursor:pointer }
.ygtvcheck1 { background: url(http://developer.yahoo.com/yui/examples/treeview/assets/img/check/check1.gif) 0 0 no-repeat; width:16px; cursor:pointer }
.ygtvcheck2 { background: url(http://developer.yahoo.com/yui/examples/treeview/assets/img/check/check2.gif) 0 0 no-repeat; width:16px; cursor:pointer }
</style>
<script type="text/javascript" src="http://yui.yahooapis.com/combo?2.8.2r1/build/yahoo-dom-event/yahoo-dom-event.js&2.8.2r1/build/treeview/treeview-min.js"></script>
<script src="http://yui.yahooapis.com/2.8.2r1/build/json/json-min.js"></script>
JSON DATA WHICH IS RETURN FROM SERVLET:
for ex:
temp = {"myNodeId":1,"label":"India"},{"myNodeId":15712,"label":"Pakistan"}
// yahoo example
var leftTree;
var rightTree;
function treeInit(treedata) {
// maketree(treedata);
var prod = YAHOO.lang.JSON.parse(treedata);
leftTree = new YAHOO.widget.TreeView("treeDiv1",prod);
leftTree.subscribe("labelClick", function(noder) {
var tpid = noder.data.myNodeId ;
TerritoryGroupDWR.getChildLeftTree(tpid,function (data){
var _prod = YAHOO.lang.JSON.parse(data);
for(var i=0;i<_prod.length;i++){
var tmpNode = new YAHOO.widget.TextNode(_prod[i],noder,true);
}
noder.refresh();
noder.expand();
});
});
leftTree.subscribe("clickEvent",leftTree.onEventToggleHighlight);
leftTree.setNodesProperty("propagateHighlightUp",true);
leftTree.setNodesProperty("propagateHighlightDown",true);
leftTree.render();
}
function AssignTerritory()
{
var IDS = [];
var hiLit = leftTree.getNodesByProperty('highlightState',1);
if (YAHOO.lang.isNull(hiLit)) {
YAHOO.log("None selected");
} else {
var labels = [];
for (var i = 0; i < hiLit.length; i++) {
labels.push(hiLit[i].label);
IDS.push(hiLit[i].data.myNodeId);
}
}
getRightTree(IDS)
}
function removeSelectedNodesFromRightTree()
{
var IDS = [];
var hiLit = rightTree.getNodesByProperty('highlightState',1);
if (YAHOO.lang.isNull(hiLit)) {
YAHOO.log("None selected");
} else {
var labels = [];
for (var i = 0; i < hiLit.length; i++) {
//alert(hiLit[i].data.myNodeId)
labels.push(hiLit[i].label);
IDS.push(hiLit[i].data.myNodeId);
}
// alert("Highlighted nodes:\n" + IDS.join("\n"), "info", "example");
}
removeSelectedNodes(IDS)
}
function removeSelectedNodes(IDS)
{
TerritoryGroupDWR.removeSelectedNodes(IDS,function (data){
removeSelectedNodesFromRightTreeAndRefresh(data)
});
}
function removeSelectedNodesFromRightTreeAndRefresh(IDS)
{
// rightTree = new YAHOO.widget.TreeView("treeDiv2");
//
// var tmpNode = new YAHOO.widget.TextNode({
// label: "",
// expanded: false
// }, rightTree.getRoot());
var treedata = '{"myNodeId":0,"label":"Root"}';
var prod = YAHOO.lang.JSON.parse(treedata);
rightTree = new YAHOO.widget.TreeView("treeDiv2",prod);
var root = rightTree.getRoot();
// var node=rightTree.getNodeByIndex(1);
if(IDS!=null && IDS.length>0){
for(var i =0;i<IDS.length;i++){
TerritoryGroupDWR.removeSelectedNodesFromRightTreeAndRefresh(IDS[i],function (data){
var prod = YAHOO.lang.JSON.parse(data);
for(var i=0;i<prod.length;i++){
//var tmpNode = new YAHOO.widget.TaskNode(prod1[i], noder, false);
var tmpNode1 = new YAHOO.widget.TextNode(prod[i],root,true);
rightTree.subscribe("labelClick", function(noder) {
var tpid = noder.data.myNodeId ;
TerritoryGroupDWR.getChildRightTree(tpid,function (data){
var _prod = YAHOO.lang.JSON.parse(data);
for(var i=0;i<_prod.length;i++){
//var tmpNode = new YAHOO.widget.TaskNode(prod1[i], noder, false);
var tmpNode3 = new YAHOO.widget.TextNode(_prod[i],noder,true);
}
noder.refresh();
noder.expand();
});
});
}
root.refresh();
root.expand();
});
}
}
rightTree.subscribe("clickEvent",rightTree.onEventToggleHighlight);
rightTree.setNodesProperty("propagateHighlightUp",true);
rightTree.setNodesProperty("propagateHighlightDown",true);
rightTree.render();
}
function getRightTree(IDS)
{
var root = rightTree.getRoot();
for(var i =0;i<IDS.length;i++){
TerritoryGroupDWR.getSelectedNode(IDS[i],function (data){
var prod = YAHOO.lang.JSON.parse(data);
for(var i=0;i<prod.length;i++){
var tmpNode = new YAHOO.widget.TextNode(prod[i],root,true);
rightTree.subscribe("labelClick", function(noder) {
var tpid = noder.data.myNodeId ;
TerritoryGroupDWR.getChildRightTree(tpid,function (data){
var _prod = YAHOO.lang.JSON.parse(data);
for(var i=0;i<_prod.length;i++){
var tmpNode3 = new YAHOO.widget.TextNode(_prod[i],noder,true);
}
noder.refresh();
noder.expand();
});
});
}
root.refresh();
root.expand();
});
}
}
function treeInitRight(treedata) {
// maketree(treedata);
if(treedata=='[]') treedata = '{"myNodeId":0,"label":"Root"}';
var prod = YAHOO.lang.JSON.parse(treedata);
rightTree = new YAHOO.widget.TreeView("treeDiv2",prod);
//else{
//
// rightTree = new YAHOO.widget.TreeView("treeDiv2");
//
// var tmpNode = new YAHOO.widget.TextNode({
// label: "",
// expanded: false
// }, rightTree.getRoot());
//}
rightTree.subscribe("labelClick", function(noder) {
var tpid = noder.data.myNodeId ;
TerritoryGroupDWR.getChildLeftTree(tpid,function (data){
var _prod = YAHOO.lang.JSON.parse(data);
for(var i=0;i<_prod.length;i++){
var tmpNode = new YAHOO.widget.TextNode(_prod[i],noder,true);
}
noder.refresh();
noder.expand();
});
});
rightTree.subscribe("clickEvent",rightTree.onEventToggleHighlight);
rightTree.setNodesProperty("propagateHighlightUp",true);
rightTree.setNodesProperty("propagateHighlightDown",true);
rightTree.render();
}
JSP FILE:
<div align="left" class="break2"></div>
<div align="left" class="break2"></div>
<div align="left" class="break2"></div>
<div align="left" class="break2"></div>
<div align="left" style="margin-left:0.5%;">
<div align="center" >Territory Group Involvement</div>
<div id="headercontainer33" style="border: #000000 solid 1px;" >
<div id="treeDiv1" class="ygtv-checkbox" style="height:450px;overflow:auto;" ></div>
</div>
<div id="headercontainer33" align="center" style="border: #000000 solid 1px; margin-top: 225px;" >
<div id="tablerow10" align="right"> <input type ="button" onclick="javascript:AssignTerritory();" value="Assign Territory" class="buttons"></div>
<div id="tablerow10" style="margin-left:10px;"> <input type ="button" onclick="javascript:removeSelectedNodesFromRightTree();" value="Un-Assign Territory" class="buttons" > </div>
</div>
<div id="headercontainer33" style="border: #000000 solid 1px;">
<div id="treeDiv2" class="ygtv-checkbox" style="height:450px;overflow:auto;" ></div>
</div>
<div align="left" class="break3"></div>
<div id="tablerow" align="right"> <input type="button" value="Save" class="buttons"/>
<input type="button" value="Cancel" onclick="javascript:loadinnerTerritoryGroupJSP();" class="buttons"/>
</div>
</div>
DWR CODE:
/* Territory Group involment (Tree) work starts now
*
*
*/
List<Integer> selectedNodeList = new ArrayList<Integer>();
String previd = "";
String _previd = "";
public String[] getLeftTerritoryTree(String territoryGroupId) {
String forwardJSP[] = new String[2];
String json = "{}";
Long teritorryPId = 0L;
try {
selectedNodeList = new ArrayList<Integer>();
WebContext wctx = WebContextFactory.get();
HttpSession session = wctx.getSession();
Properties properties = new Properties();
InitialContext ic = new InitialContext(properties);
ITeritorryBIRemote teritorryBIRemote = (ITeritorryBIRemote) ic.lookup(ITeritorryBIRemote.class.getName());
TerritoryGroupSessionBeanRemote territoryGroupSessionBeanRemote = (TerritoryGroupSessionBeanRemote) ic.lookup(TerritoryGroupSessionBeanRemote.class.getName());
List<YahooTerritoryForm> list = teritorryBIRemote.findRootTerritory(teritorryPId);
JSONSerializer serializer = new JSONSerializer();
serializer.registerDefaultSerializers();
serializer.setMarshallClassHints(false);
serializer.setDebug(true);
serializer.setMarshallNullAttributes(false);
String temp = serializer.toJSON(list);
temp = temp.replace("{\"list\":[", "");
temp = temp.substring(0, temp.length() - 2);
System.out.println("getLeftTerritoryTree() temp = " + temp);
forwardJSP[1] = "[" + temp + "]";
forwardJSP[0] = wctx.forwardToString("/jsp/TerritoryGroup/TerritoryGrpInvl.jsp");
previd = "";
_previd = "";
} catch (Exception e) {
e.printStackTrace();
Logger.printError("ERROR", "TerritoryGroupDWR.getLeftTerritoryTree() ", e);
}
return forwardJSP;
}
public String[] getRightTerritoryTree(Long territoryGroupId) {
String forwardJSP[] = new String[2];
String json = "{}";
try {
selectedNodeList = new ArrayList<Integer>();
WebContext wctx = WebContextFactory.get();
HttpSession session = wctx.getSession();
Long UserAccountID = (Long) session.getAttribute("UserAccountID");
Properties properties = new Properties();
InitialContext ic = new InitialContext(properties);
TerritoryGroupSessionBeanRemote territoryGroupSessionBeanRemote = (TerritoryGroupSessionBeanRemote) ic.lookup(TerritoryGroupSessionBeanRemote.class.getName());
List<YahooTerritoryForm> list = new ArrayList<YahooTerritoryForm>();
list = territoryGroupSessionBeanRemote.getRightTerritoryTree(UserAccountID, territoryGroupId);
JSONSerializer serializer = new JSONSerializer();
serializer.registerDefaultSerializers();
serializer.setMarshallClassHints(false);
serializer.setDebug(true);
serializer.setMarshallNullAttributes(false);
String temp = serializer.toJSON(list);
temp = temp.replace("{\"list\":[", "");
temp = temp.substring(0, temp.length() - 2);
System.out.println("getRightTerritoryTree() temp = " + temp);
forwardJSP[1] = "[" + temp + "]";
forwardJSP[0] = wctx.forwardToString("/jsp/TerritoryGroup/TerritoryGrpInvl.jsp");
previd = "";
_previd = "";
//Add inrolled territories in global list if found
if (list.size() > 0) {
Iterator<com.synapse.common.forms.YahooTerritoryForm> iterator = list.iterator();
while (iterator.hasNext()) {
com.synapse.common.forms.YahooTerritoryForm yahooTerritoryForm = iterator.next();
selectedNodeList.add(yahooTerritoryForm.getMyNodeId().intValue());
}
}
} catch (Exception e) {
e.printStackTrace();
Logger.printError("ERROR", "TerritoryGroupDWR.getRightTerritoryTree() ", e);
}
return forwardJSP;
}
public String getChildLeftTree(String tpid) {
String forwardJSP = "";
String json = "{}";
Long teritorryPId = 0L;
try {
if (tpid != null && !tpid.equals("")) {
teritorryPId = Long.parseLong(tpid);
WebContext wctx = WebContextFactory.get();
HttpSession session = wctx.getSession();
Properties properties = new Properties();
InitialContext ic = new InitialContext(properties);
ITeritorryBIRemote teritorryBIRemote = (ITeritorryBIRemote) ic.lookup(ITeritorryBIRemote.class.getName());
List<YahooTerritoryForm> list = teritorryBIRemote.findRootTerritory(teritorryPId);
JSONSerializer serializer = new JSONSerializer();
serializer.registerDefaultSerializers();
serializer.setMarshallClassHints(false);
serializer.setDebug(true);
serializer.setMarshallNullAttributes(false);
String temp = serializer.toJSON(list);
temp = temp.replace("{\"list\":[", "");
temp = temp.substring(0, temp.length() - 2);
// json = "{" + temp + "}";
System.out.println("getChildLeftTree() temp = " + temp);
//String x="{myNodeId:1,label:\"India\",expanded:false},{myNodeId:15712,label:\"Pakistan\",expanded:false}";
if (!previd.equals(tpid)) {
forwardJSP = "[" + temp + "]";
} else {
forwardJSP = "[]";
}
previd = tpid;
}
} catch (Exception e) {
e.printStackTrace();
Logger.printError("ERROR", "TerritoryGroupDWR.getchild() ", e);
}
return forwardJSP;
}
public String getChildRightTree(String tpid) {
//String x="{\"myNodeId\":110,\"label\":\"India1\",\"expanded\":\"true\"},{\"myNodeId\":15713,\"label\":\"Pakistan1\",\"expanded\":\"true\"}";
//return "["+x+"]";
String forwardJSP = "";
String json = "{}";
Long teritorryPId = 0L;
try {
if (tpid != null && !tpid.equals("")) {
teritorryPId = Long.parseLong(tpid);
WebContext wctx = WebContextFactory.get();
HttpSession session = wctx.getSession();
Properties properties = new Properties();
InitialContext ic = new InitialContext(properties);
ITeritorryBIRemote teritorryBIRemote = (ITeritorryBIRemote) ic.lookup(ITeritorryBIRemote.class.getName());
List<YahooTerritoryForm> list = teritorryBIRemote.findRootTerritory(teritorryPId);
JSONSerializer serializer = new JSONSerializer();
serializer.registerDefaultSerializers();
serializer.setMarshallClassHints(false);
serializer.setDebug(true);
serializer.setMarshallNullAttributes(false);
String temp = serializer.toJSON(list);
temp = temp.replace("{\"list\":[", "");
temp = temp.substring(0, temp.length() - 2);
// json = "{" + temp + "}";
System.out.println("json temp = " + temp);
//String x="{myNodeId:1,label:\"India\",expanded:false},{myNodeId:15712,label:\"Pakistan\",expanded:false}";
if (!_previd.equals(tpid)) {
forwardJSP = "[" + temp + "]";
} else {
forwardJSP = "[]";
}
_previd = tpid;
}
} catch (Exception e) {
e.printStackTrace();
Logger.printError("ERROR", "TerritoryGroupDWR.getchild() ", e);
}
return forwardJSP;
}
public String[] removeSelectedNodes(String nodes[]) {
String returnNodes[] = null;
try {
for (int i = 0; i < nodes.length; i++) {
String tmp = nodes[i];
if (selectedNodeList.contains(Integer.parseInt(tmp))) {
for (int j = 0; j < selectedNodeList.size(); j++) {
if (tmp.equals(selectedNodeList.get(j).toString())) {
selectedNodeList.remove(j);
}
}
}
}
returnNodes = new String[selectedNodeList.size()];
Iterator<Integer> selectedNodeListIterator = selectedNodeList.iterator();
int j = 0;
while (selectedNodeListIterator.hasNext()) {
Integer node = selectedNodeListIterator.next();
returnNodes[j] = String.valueOf(node);
j++;
}
} catch (Exception e) {
e.printStackTrace();
Logger.printError("ERROR", "TerritoryGroupDWR.removeSelectedNodes() ", e);
}
return returnNodes;
}
public String getSelectedNode(String tpid) {
String forwardJSP = "";
String json = "{}";
Long teritorryId = 0L;
try {
String temp = "";
if (tpid != null && !tpid.equals("")) {
if (!selectedNodeList.contains(Integer.parseInt(tpid))) {
selectedNodeList.add(Integer.parseInt(tpid));
teritorryId = Long.parseLong(tpid);
WebContext wctx = WebContextFactory.get();
HttpSession session = wctx.getSession();
Properties properties = new Properties();
InitialContext ic = new InitialContext(properties);
ITeritorryBIRemote teritorryBIRemote = (ITeritorryBIRemote) ic.lookup(ITeritorryBIRemote.class.getName());
List<YahooTerritoryForm> list = teritorryBIRemote.getSelectedNode(teritorryId);
JSONSerializer serializer = new JSONSerializer();
serializer.registerDefaultSerializers();
serializer.setMarshallClassHints(false);
serializer.setDebug(true);
serializer.setMarshallNullAttributes(false);
temp = serializer.toJSON(list);
temp = temp.replace("{\"list\":[", "");
temp = temp.substring(0, temp.length() - 2);
System.out.println("json temp = " + temp);
forwardJSP = "[" + temp + "]";
} else {
forwardJSP = "[" + temp + "]";
}
}
} catch (Exception e) {
e.printStackTrace();
Logger.printError("ERROR", "TerritoryGroupDWR.getchild() ", e);
}
return forwardJSP;
}
public String removeSelectedNodesFromRightTreeAndRefresh(String tpid) {
String forwardJSP = "";
String json = "{}";
Long teritorryId = 0L;
try {
String temp = "";
if (tpid != null && !tpid.equals("")) {
teritorryId = Long.parseLong(tpid);
WebContext wctx = WebContextFactory.get();
HttpSession session = wctx.getSession();
Properties properties = new Properties();
InitialContext ic = new InitialContext(properties);
ITeritorryBIRemote teritorryBIRemote = (ITeritorryBIRemote) ic.lookup(ITeritorryBIRemote.class.getName());
List<YahooTerritoryForm> list = teritorryBIRemote.getSelectedNode(teritorryId);
JSONSerializer serializer = new JSONSerializer();
serializer.registerDefaultSerializers();
serializer.setMarshallClassHints(false);
serializer.setDebug(true);
serializer.setMarshallNullAttributes(false);
temp = serializer.toJSON(list);
temp = temp.replace("{\"list\":[", "");
temp = temp.substring(0, temp.length() - 2);
// json = "{" + temp + "}";
System.out.println("json temp = " + temp);
forwardJSP = "[" + temp + "]";
} else {
forwardJSP = "[" + temp + "]";
}
} catch (Exception e) {
e.printStackTrace();
Logger.printError("ERROR", "TerritoryGroupDWR.getchild() ", e);
}
return forwardJSP;
}
}