package widgets.myTOC { import flash.events.Event; import flash.events.MouseEvent; import mx.controls.CheckBox; import mx.controls.treeClasses.*; import mx.controls.treeClasses.TreeItemRenderer; import mx.controls.treeClasses.TreeListData; import mx.states.AddChild; import mx.controls.Alert; public class myCustomTreeRenderer extends TreeItemRenderer { public var chkBox:CheckBox; public var itemXml:XML; public function myCustomTreeRenderer() { super(); mouseEnabled = false; } override public function set data(value:Object):void { if(value != null) super.data = value; itemXml = XML(value); if(itemXml.@checked == "1") chkBox.selected = true; else chkBox.selected = false; } override protected function createChildren():void { super.createChildren(); chkBox = new CheckBox(); chkBox.addEventListener(MouseEvent.CLICK,handleCheckBoxEvent); AddChild(chkBox); } override protected function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth,unscaledHeight); if(super.data){ var treeListData:TreeListData=TreeListData(super.listData); if(treeListData.hasChildren) chkBox.visible = false; else chkBox.visible = true; } if(chkBox.visible){ chkBox.x = super.label.x; super.label.x = chkBox.x+17; chkBox.y = super.label.y+8; } } private function handleCheckBoxEvent(evt:MouseEvent):void { if(chkBox.selected) itemXml.@checked="1"; Alert.show(itemXml.@label+""); } } }
<?xml version="1.0" encoding="utf-8"?> <viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:viewer="com.esri.viewer.*" xmlns:esri="http://www.esri.com/2008/ags" width="400" height="406" direction="inherit" fontFamily="Times New Roman" fontStyle="italic" verticalAlign="middle" widgetConfigLoaded="init()"> <fx:Script> private function init():void { var strLayer:String; if (configXML){ // checking for valid content in the configuration file //CursorManager.removeBusyCursor(); if(map.loaded) tree1.itemRenderer = new ClassFactory(widgets.myTOC.myCustomTreeRenderer); } } </fx:Script> <viewer:WidgetTemplate id="TOC" y="82" height="350" layoutDirection="rtl" symbolColor="#000000"> <viewer:layout> <s:VerticalLayout/> </viewer:layout> <s:BorderContainer height="98%" width="98%" x="0" backgroundAlpha="0.34" backgroundColor="#000000" borderColor="#FFFFFF" borderWeight="3" color="#FFFFFF" cornerRadius="5" dropShadowVisible="true"> <mx:Tree id="tree1" labelField="@label" showRoot="true" width="100%" height="100%"> <mx:XMLListCollection id="MailBox"> <fx:XMLList> <node label="Map Layers"> <GroupLayer label="Vector Layer"> <Vlayer label="V1" checked="0" /> <Vlayer label="V2" checked="0" /> <Vlayer label="V3" checked="0" /> <Vlayer label="V4" checked="0" /> </GroupLayer> <GroupLayer label="Raster Layer"> <Rlayer label="R1" checked="0" /> <Rlayer label="R2" checked="0" /> <Rlayer label="R3" checked="0" /> <Rlayer label="R4" checked="0" /> </GroupLayer> <GroupLayer label="Satelite Images"> <Slayer label="S1" checked="0" /> <Slayer label="S2" checked="0" /> <Slayer label="S3" checked="0" /> <Slayer label="S4" checked="0" /> </GroupLayer> </node> </fx:XMLList> </mx:XMLListCollection> </mx:Tree> </s:BorderContainer> </viewer:WidgetTemplate> </viewer:BaseWidget>
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.