JavaScript DHTML/SmartClient/Tree

Материал из Web эксперт
Перейти к: навигация, поиск

Add node to tree

   <source lang="html4strict">


<HTML><HEAD>

 <SCRIPT>var isomorphicDir="isomorphic/";</SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
 <SCRIPT SRC=isomorphic/skins/SmartClient/load_skin.js></SCRIPT>

</HEAD><BODY BGCOLOR="papayawhip" MARGINHEIGHT=0 MARGINWIDTH=0 LEFTMARGIN=0 TOPMARGIN=0>

<IMG SRC=images/blank.gif WIDTH=1 HEIGHT=4>


<SCRIPT> Tree.create({

   ID:"animalTree",
   root: 
   {name:"Zoo", children:[
   {name:"Aquarium", children:[
   {name:"Salt Water", children:[
   {name:"Bottlenose Dolphin", quantity:5, scientificName:"Tursiops truncatus"},
   {name:"Giant Pacific Octopus", quantity:1, scientificName:"Octopus dofleini"}
   ]},
   {name:"Fresh Water", children:[
   {name:"Freshwater Stingray", quantity:7, scientificName:"Potamotrygen motoro"}
   ]}
   ]},
   {name:"Reptile House", children:[
   {name:"Lizard House", children:[
   {name:"Cuban Ground Iguana", quantity:29, scientificName:"Cyclura nubila nubila"},
   {name:"Desert Iguana", quantity:14, scientificName:"Dipsosaurus dorsalis"},
   {name:"Marbled Salamander", quantity:6, scientificName:"Ambystoma opacum"}
   ]},
   {name:"Snake House", children:[
   {name:"Indian Rock Python", quantity:1, scientificName:"Python molurus molurus"}
   ]}
   ]},
   {name:"Monkey House", children:[
   {name:"Howler Monkey", quantity:15, scientificName:"Alouatta spp."},
   {name:"Orangutan", quantity:7, scientificName:"Pongo pygmaeus"},
   {name:"Guinea Baboon", quantity:3, scientificName:"Papio papio"}
   ]},
   {name:"Lion Enclosure", children:[
   {name:"Lion", quantity:12, scientificName:"Panthera leo"}
   ]}
   ]}

}); var saltWaterTank = animalTree.find("Zoo/Aquarium/Salt Water"); var orangutanNode = animalTree.find("Zoo/Monkey House/Orangutan"); // Show the contents of some nodes animalTree.openFolder(animalTree.find("Zoo/Aquarium")); animalTree.openFolder(animalTree.find("Zoo/Aquarium/Salt Water")); animalTree.openFolder(animalTree.find("Zoo/Monkey House")); var animalFields = [

   {name:"name", title:"Animal Name", width:250},
   {name:"scientificName", title:"Scientific Name", width:150},
   {name:"quantity", title:"Number", width:50}

]; TreeGrid.create({

   ID:"animalViewer",
   data:animalTree,
   fields:animalFields,
   left:50,
   top:50,
   width:500,
   height:275,
   canDragRecordsOut:true,
   canAcceptDroppedRecords:true

});

Button.create({

   left:50,
   top:400,
   width:150,
   title:"Add Nurse Shark",
   click:"animalTree.add({name:"Nurse Shark", quantity:1, scientificName:"Ginglymostoma cirratum"}, saltWaterTank); this.disable()"

});

</SCRIPT> </BODY> </HTML>

 </source>
   
  


Animated tree: node collapse and open

   <source lang="html4strict">


<HTML><HEAD>

 <SCRIPT>var isomorphicDir="isomorphic/";</SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
 <SCRIPT SRC=isomorphic/skins/standard/load_skin.js></SCRIPT>

</HEAD><BODY BGCOLOR="silver"> <SCRIPT> isc.Tree.create({

   ID:"animalTree",
   root:
   {name:"Zoo", children:[
       {name:"Aquarium", children:[
           {name:"Salt Water", children:[
               {name:"Bottlenose Dolphin"},
               {name:"Giant Pacific Octopus"}
           ]},
           {name:"Fresh Water", children:[
               {name:"Freshwater Stingray"}
           ]}
       ]},
       {name:"Reptile House", children:[
           {name:"Lizard House", children:[
               {name:"Cuban Ground Iguana"},
               {name:"Desert Iguana"},
               {name:"Marbled Salamander"}
           ]},
           {name:"Snake House", children:[
               {name:"Indian Rock Python"}
           ]},
           {name:"Monkey House", children:[
               {name:"Howler Monkey"},
               {name:"Orangutan"},
               {name:"Guinea Baboon"}
           ]},
           {name:"Lion Enclosure", children:[
               {name:"Lion"}
           ]}
       ]}
   ]}

});

isc.TreeGrid.create({

   ID:"animalTreeGrid",
   data:animalTree,
   width: 300,
   height:300,
   animateFolders: true,
   animateFolderSpeed: 100

});

</SCRIPT> </BODY> </HTML>

 </source>
   
  


Close all tree nodes

   <source lang="html4strict">


<HTML><HEAD>

 <SCRIPT>var isomorphicDir="isomorphic/";</SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
 <SCRIPT SRC=isomorphic/skins/SmartClient/load_skin.js></SCRIPT>

</HEAD><BODY BGCOLOR="papayawhip" MARGINHEIGHT=0 MARGINWIDTH=0 LEFTMARGIN=0 TOPMARGIN=0>

<IMG SRC=images/blank.gif WIDTH=1 HEIGHT=4>


<SCRIPT> Tree.create({

   ID:"animalTree",
   root: 
   {name:"Zoo", children:[
   {name:"Aquarium", children:[
   {name:"Salt Water", children:[
   {name:"Bottlenose Dolphin", quantity:5, scientificName:"Tursiops truncatus"},
   {name:"Giant Pacific Octopus", quantity:1, scientificName:"Octopus dofleini"}
   ]},
   {name:"Fresh Water", children:[
   {name:"Freshwater Stingray", quantity:7, scientificName:"Potamotrygen motoro"}
   ]}
   ]},
   {name:"Reptile House", children:[
   {name:"Lizard House", children:[
   {name:"Cuban Ground Iguana", quantity:29, scientificName:"Cyclura nubila nubila"},
   {name:"Desert Iguana", quantity:14, scientificName:"Dipsosaurus dorsalis"},
   {name:"Marbled Salamander", quantity:6, scientificName:"Ambystoma opacum"}
   ]},
   {name:"Snake House", children:[
   {name:"Indian Rock Python", quantity:1, scientificName:"Python molurus molurus"}
   ]}
   ]},
   {name:"Monkey House", children:[
   {name:"Howler Monkey", quantity:15, scientificName:"Alouatta spp."},
   {name:"Orangutan", quantity:7, scientificName:"Pongo pygmaeus"},
   {name:"Guinea Baboon", quantity:3, scientificName:"Papio papio"}
   ]},
   {name:"Lion Enclosure", children:[
   {name:"Lion", quantity:12, scientificName:"Panthera leo"}
   ]}
   ]}

}); var saltWaterTank = animalTree.find("Zoo/Aquarium/Salt Water"); var orangutanNode = animalTree.find("Zoo/Monkey House/Orangutan"); // Show the contents of some nodes animalTree.openFolder(animalTree.find("Zoo/Aquarium")); animalTree.openFolder(animalTree.find("Zoo/Aquarium/Salt Water")); animalTree.openFolder(animalTree.find("Zoo/Monkey House")); var animalFields = [

   {name:"name", title:"Animal Name", width:250},
   {name:"scientificName", title:"Scientific Name", width:150},
   {name:"quantity", title:"Number", width:50}

]; TreeGrid.create({

   ID:"animalViewer",
   data:animalTree,
   fields:animalFields,
   left:50,
   top:50,
   width:500,
   height:275,
   canDragRecordsOut:true,
   canAcceptDroppedRecords:true

}); Button.create({

   left:300,
   top:450,
   width:150,
   title:"Close all nodes",
   click:"animalTree.closeAll()"

});

</SCRIPT> </BODY> </HTML>

 </source>
   
  


Customize tree skin

   <source lang="html4strict">


<HTML><HEAD>

 <SCRIPT>var isomorphicDir="isomorphic/";</SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
 <SCRIPT SRC=isomorphic/skins/SmartClient/load_skin.js></SCRIPT>

</HEAD><BODY BGCOLOR="papayawhip" MARGINHEIGHT=0 MARGINWIDTH=0 LEFTMARGIN=0 TOPMARGIN=0>

<IMG SRC=images/blank.gif WIDTH=1 HEIGHT=4>


<SCRIPT> Tree.create({

   ID:"animalTree",
   root: 
   {name:"Zoo/", children:[
   {name:"Aquarium/", children:[
   {name:"Salt Water/", children:[
   {name:"Bottlenose Dolphin", quantity:5, scientificName:"Tursiops truncatus"},
   {name:"Giant Pacific Octopus", quantity:1, scientificName:"Octopus dofleini"}
   ]},
   {name:"Fresh Water/", children:[
   {name:"Freshwater Stingray", quantity:7, scientificName:"Potamotrygen motoro"}
   ]}
   ]},
   {name:"Reptile House/", children:[
   {name:"Lizard House/", children:[
   {name:"Cuban Ground Iguana", quantity:29, scientificName:"Cyclura nubila nubila"},
   {name:"Desert Iguana", quantity:14, scientificName:"Dipsosaurus dorsalis"},
   {name:"Marbled Salamander", quantity:6, scientificName:"Ambystoma opacum"}
   ]},
   {name:"Snake House/", children:[
   {name:"Indian Rock Python", quantity:1, scientificName:"Python molurus molurus"}
   ]}
   ]},
   {name:"Monkey House/", children:[
   {name:"Howler Monkey", quantity:15, scientificName:"Alouatta spp."},
   {name:"Orangutan", quantity:7, scientificName:"Pongo pygmaeus"},
   {name:"Guinea Baboon", quantity:3, scientificName:"Papio papio"}
   ]},
   {name:"Lion Enclosure/", children:[
   {name:"Lion", quantity:12, scientificName:"Panthera leo"}
   ]}
   ]}

}); // Show the contents of some nodes animalTree.openFolder(animalTree.find("Zoo/Aquarium/")); animalTree.openFolder(animalTree.find("Zoo/Aquarium/Salt Water/")); animalTree.openFolder(animalTree.find("Zoo/Monkey House/")); animalTree.openFolder(animalTree.find("Zoo/Reptile House/")); TreeGrid.create({

   ID:"animalViewer",
   data:animalTree,
   left:50,
   top:50,
   width:300,
   height:250,
   showAllRecords:true,
   canDragRecordsOut:true,
   canAcceptDroppedRecords:true

}); </SCRIPT> </BODY> </HTML>

 </source>
   
  


Drag and drop tree node

   <source lang="html4strict">


<HEAD>

 <SCRIPT>var isomorphicDir="isomorphic/";</SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
 <SCRIPT SRC=isomorphic/skins/standard/load_skin.js></SCRIPT>

</HEAD><BODY BGCOLOR="silver"> <SCRIPT> isc.Tree.create({ID:"partsTree1", root:{children:[

   {name:"Bin 1", children:[
       {name:"Blue Cube",},
       {name:"Yellow Cube", },
       {name:"Green Cube", }
   ]},
   {name:"Bin 2", children:[
       {name:"Blue Piece", },
       {name:"Yellow Piece", },
       {name:"Green Piece", icon:"http://www.wbex.ru/style/logo.png"}
   ]}

]}}) isc.Tree.create({ID:"partsTree2", root:{children:[

   {name:"Bin 3", children:[
       {name:"Blue Part",},
       {name:"Green Part",},
       {name:"Yellow Part",}
   ]}

]}}) partsTree1.openAll(); partsTree2.openAll(); isc.defineClass("PartsTreeGrid","TreeGrid").addProperties({

   width:200, height:200,
   showEdges:true, border:"0px", bodyStyleName:"normal",
   alternateRecordStyles:true, showHeader:false, leaveScrollbarGap:false,
   emptyMessage:"
Drag & drop parts here", manyItemsImage:"cubes_all.png", appImgDir:"pieces/16/"

})

isc.HStack.create({membersMargin:10, height:160, members:[

   isc.PartsTreeGrid.create({
       ID:"myTree1",
       data: partsTree1,
       canReorderRecords: true,
       canAcceptDroppedRecords: true,
       canDragRecordsOut: true,
       dragDataAction: "move"
   }),
   isc.VStack.create({width:32, height:74, layoutAlign:"center", membersMargin:10, members:[
       isc.Img.create({src:"icons/32/arrow_right.png", width:32, height:32,
           click:"myTree2.transferSelectedData(myTree1)"
       }),
       isc.Img.create({src:"icons/32/arrow_left.png", width:32, height:32,
           click:"myTree1.transferSelectedData(myTree2)"
       })
   ]}),    
   isc.PartsTreeGrid.create({
       ID:"myTree2",
       left:250,
       data: partsTree2,
       canDragRecordsOut: true,
       canAcceptDroppedRecords: true,
       canReorderRecords: true
   })    

]}) </SCRIPT> </BODY>

 </source>
   
  


Open all tree nodes

   <source lang="html4strict">


<HTML><HEAD>

 <SCRIPT>var isomorphicDir="isomorphic/";</SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
 <SCRIPT SRC=isomorphic/skins/SmartClient/load_skin.js></SCRIPT>

</HEAD><BODY BGCOLOR="papayawhip" MARGINHEIGHT=0 MARGINWIDTH=0 LEFTMARGIN=0 TOPMARGIN=0>

<IMG SRC=images/blank.gif WIDTH=1 HEIGHT=4>


<SCRIPT> Tree.create({

   ID:"animalTree",
   root: 
   {name:"Zoo", children:[
   {name:"Aquarium", children:[
   {name:"Salt Water", children:[
   {name:"Bottlenose Dolphin", quantity:5, scientificName:"Tursiops truncatus"},
   {name:"Giant Pacific Octopus", quantity:1, scientificName:"Octopus dofleini"}
   ]},
   {name:"Fresh Water", children:[
   {name:"Freshwater Stingray", quantity:7, scientificName:"Potamotrygen motoro"}
   ]}
   ]},
   {name:"Reptile House", children:[
   {name:"Lizard House", children:[
   {name:"Cuban Ground Iguana", quantity:29, scientificName:"Cyclura nubila nubila"},
   {name:"Desert Iguana", quantity:14, scientificName:"Dipsosaurus dorsalis"},
   {name:"Marbled Salamander", quantity:6, scientificName:"Ambystoma opacum"}
   ]},
   {name:"Snake House", children:[
   {name:"Indian Rock Python", quantity:1, scientificName:"Python molurus molurus"}
   ]}
   ]},
   {name:"Monkey House", children:[
   {name:"Howler Monkey", quantity:15, scientificName:"Alouatta spp."},
   {name:"Orangutan", quantity:7, scientificName:"Pongo pygmaeus"},
   {name:"Guinea Baboon", quantity:3, scientificName:"Papio papio"}
   ]},
   {name:"Lion Enclosure", children:[
   {name:"Lion", quantity:12, scientificName:"Panthera leo"}
   ]}
   ]}

}); var saltWaterTank = animalTree.find("Zoo/Aquarium/Salt Water"); var orangutanNode = animalTree.find("Zoo/Monkey House/Orangutan"); // Show the contents of some nodes animalTree.openFolder(animalTree.find("Zoo/Aquarium")); animalTree.openFolder(animalTree.find("Zoo/Aquarium/Salt Water")); animalTree.openFolder(animalTree.find("Zoo/Monkey House")); var animalFields = [

   {name:"name", title:"Animal Name", width:250},
   {name:"scientificName", title:"Scientific Name", width:150},
   {name:"quantity", title:"Number", width:50}

]; TreeGrid.create({

   ID:"animalViewer",
   data:animalTree,
   fields:animalFields,
   left:50,
   top:50,
   width:500,
   height:275,
   canDragRecordsOut:true,
   canAcceptDroppedRecords:true

}); Button.create({

   left:50,
   top:450,
   width:150,
   title:"Open all nodes",
   click:"animalTree.openAll()"

});

</SCRIPT> </BODY> </HTML>

 </source>
   
  


Remove node from tree

   <source lang="html4strict">


<HTML><HEAD>

 <SCRIPT>var isomorphicDir="isomorphic/";</SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT>
   <SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
 <SCRIPT SRC=isomorphic/skins/SmartClient/load_skin.js></SCRIPT>

</HEAD><BODY BGCOLOR="papayawhip" MARGINHEIGHT=0 MARGINWIDTH=0 LEFTMARGIN=0 TOPMARGIN=0>

<IMG SRC=images/blank.gif WIDTH=1 HEIGHT=4>


<SCRIPT> Tree.create({

   ID:"animalTree",
   root: 
   {name:"Zoo", children:[
   {name:"Aquarium", children:[
   {name:"Salt Water", children:[
   {name:"Bottlenose Dolphin", quantity:5, scientificName:"Tursiops truncatus"},
   {name:"Giant Pacific Octopus", quantity:1, scientificName:"Octopus dofleini"}
   ]},
   {name:"Fresh Water", children:[
   {name:"Freshwater Stingray", quantity:7, scientificName:"Potamotrygen motoro"}
   ]}
   ]},
   {name:"Reptile House", children:[
   {name:"Lizard House", children:[
   {name:"Cuban Ground Iguana", quantity:29, scientificName:"Cyclura nubila nubila"},
   {name:"Desert Iguana", quantity:14, scientificName:"Dipsosaurus dorsalis"},
   {name:"Marbled Salamander", quantity:6, scientificName:"Ambystoma opacum"}
   ]},
   {name:"Snake House", children:[
   {name:"Indian Rock Python", quantity:1, scientificName:"Python molurus molurus"}
   ]}
   ]},
   {name:"Monkey House", children:[
   {name:"Howler Monkey", quantity:15, scientificName:"Alouatta spp."},
   {name:"Orangutan", quantity:7, scientificName:"Pongo pygmaeus"},
   {name:"Guinea Baboon", quantity:3, scientificName:"Papio papio"}
   ]},
   {name:"Lion Enclosure", children:[
   {name:"Lion", quantity:12, scientificName:"Panthera leo"}
   ]}
   ]}

}); var saltWaterTank = animalTree.find("Zoo/Aquarium/Salt Water"); var orangutanNode = animalTree.find("Zoo/Monkey House/Orangutan"); // Show the contents of some nodes animalTree.openFolder(animalTree.find("Zoo/Aquarium")); animalTree.openFolder(animalTree.find("Zoo/Aquarium/Salt Water")); animalTree.openFolder(animalTree.find("Zoo/Monkey House")); var animalFields = [

   {name:"name", title:"Animal Name", width:250},
   {name:"scientificName", title:"Scientific Name", width:150},
   {name:"quantity", title:"Number", width:50}

]; TreeGrid.create({

   ID:"animalViewer",
   data:animalTree,
   fields:animalFields,
   left:50,
   top:50,
   width:500,
   height:275,
   canDragRecordsOut:true,
   canAcceptDroppedRecords:true

}); Button.create({

   left:300,
   top:400,
   width:150,
   title:"Remove Orangutan",
   click:"animalTree.remove(orangutanNode); this.disable()"

});

</SCRIPT> </BODY> </HTML>

 </source>