JavaScript DHTML/SmartClient/Tree
Содержание
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>
TreeGrid initialization example |
Isomorphic SmartClient |
<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>
TreeGrid initialization example |
Isomorphic SmartClient |
<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>
Custom skin example |
Isomorphic SmartClient |
<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>
TreeGrid initialization example |
Isomorphic SmartClient |
<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>
TreeGrid initialization example |
Isomorphic SmartClient |
<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>