re: [flexcoders] Re: Extending Custom Panel with RadioButtons - Help
Thanks! The labels are now showing perfectly! However, I am getting an error when I attempt to check the radio buttons: TypeError: Error #1009: Cannot access a property or method of a null object reference. at com.wallykolcz.views.components::RadioButtonPanel/changeStartType()[D:\wkolcz\My Documents\Flex3\landingPage\src\com\wallykolcz\views\components\RadioButtonPanel.as:34] Line 34 (in this case since I chose Airport to make this error) is part of this: public function changeStartType(e:Event):void { if (startLocation.selectedValue == address){ maps.start_txt.text = Enter Starting Address; maps.frmAirport.includeInLayout = false; maps.frmAirport.visible = false; maps.frmAddress.includeInLayout = true; maps.frmAddress.visible = true; maps.submit_btn.visible = true; }else{ maps.start_txt.text = Choose Your Airport; maps.frmAddress.includeInLayout = false; maps.frmAddress.visible = false; maps.frmAirport.includeInLayout = true; maps.frmAirport.visible = true; maps.submit_btn.visible = true; } } I did import and create a variable for the 'maps' component in which this panel is inside. import edu.umich.body.Maps; private var maps:Maps; Is there something I am missing? If you need a visual reference you can see the concept site at http://www.med.umich.edu/prmc/landing/helipad From: Tim Hoff timh...@aol.com Sent: Wednesday, June 24, 2009 8:04 AM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: Extending Custom Panel with RadioButtons - Help Hi Wally, Pretty close, just a few minor tweaks needed: // add the event parameter public function changeStartType( event:Event ): void // change to group addressRB.group = startLocation ; airportRB.group = startLocation ; protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number): void { super .updateDisplayList(unscaledWidth, unscaledHeight); // gap between label and edges of button var margin:int = 4; // set the sizes addressRB.setActualSize(addressRB.getExplicitOrMeasuredWidth(), addressRB.getExplicitOrMeasuredHeight()); airportRB.setActualSize(airportRB.getExplicitOrMeasuredWidth(), airportRB.getExplicitOrMeasuredHeight()); // position the buttons in the panel addressRB.move(145,5 ); airportRB.move(255,5
re: [flexcoders] Re: Extending Custom Panel with RadioButtons - Help
How can I do that? maps is the 'page' that this panel is on. I need to control the elements that are inside the panel: wallyk:RadioButtonPanel width=100% height=20% title=Start Address Type: paddingLeft=5 includeInLayout=true visible=true mx:Label id=start_txt / mx:Form id=frmAddress width=100% height=100% mx:FormItem label=Street Address: fontWeight=bold mx:TextInput id=address_txt fontWeight=normal / /mx:FormItem mx:FormItem label=City: fontWeight=bold mx:TextInput id=city_txt fontWeight=normal / /mx:FormItem mx:FormItem label=State: fontWeight=bold mx:TextInput id=state_txt fontWeight=normal maxChars=2 / /mx:FormItem mx:FormItem label=Zip Code: fontWeight=bold mx:TextInput id=zip_txt fontWeight=normal maxChars=5/ /mx:FormItem mx:Button label=Get Directions click=showDirections(address_txt.text, city_txt.text, state_txt.text, zip_txt.text); / /mx:Form mx:Form width=100% id=frmAirport height=100% includeInLayout=false visible=false mx:ComboBox id=addresscbb labelField=label fontWeight=normal mx:ArrayCollection mx:Object label=Capital Region International Airport address=4100 Capital City Boulevard city=Lansing state=MI zipcode=48906/ mx:Object label=Kalamazoo/Battle Creek International Airport address=5235 Portage Road city=Kalamazoo state=MI zipcode=49002/ mx:Object label=Gerald R. Ford International Airport address=5500 44th St SE city=Grand Rapids state=MI zipcode=49512/ mx:Object label=Bishop International Airport address=3425 W Bristol Road city=Flint state=MI zipcode=48507/ mx:Object label=Detroit Metropolitan Wayne County Airport address=9000 Middlebelt Road city=Romulus state=MI zipcode=48174/ mx:Object label=Capital Region International Airport address=655 Aviation Drive city=Mason state=MI zipcode=48854/ /mx:ArrayCollection /mx:ComboBox /mx:Form mx:Button label=Map Route id=submit_btn visible=false / /wallyk:RadioButtonPanel From: Tim Hoff timh...@aol.com Sent: Wednesday, June 24, 2009 8:56 AM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: Extending Custom Panel with RadioButtons - Help You need to add maps as a child in createChildren(). -TH --- In flexcoders@yahoogroups.com, Wally Kolcz wko...@... wrote: Thanks! The labels are now showing perfectly! However, I am getting an error when I attempt to check the radio buttons: TypeError: Error #1009: Cannot access a property or method of a null object reference. at com.wallykolcz.views.components::RadioButtonPanel/changeStartType()[D:\w\ kolcz\My Documents\Flex3\landingPage\src\com\wallykolcz\views\components\RadioBut\ tonPanel.as:34] Line 34 (in this case since I chose Airport to make this error) is part of this: public function changeStartType(e:Event):void { if (startLocation.selectedValue == address){ maps.start_txt.text = Enter Starting Address; maps.frmAirport.includeInLayout = false; maps.frmAirport.visible = false; maps.frmAddress.includeInLayout = true; maps.frmAddress.visible = true; maps.submit_btn.visible = true; }else{ maps.start_txt.text = Choose Your Airport; maps.frmAddress.includeInLayout = false; maps.frmAddress.visible = false; maps.frmAirport.includeInLayout = true; maps.frmAirport.visible = true; maps.submit_btn.visible = true; } } I did import and create a variable for the 'maps' component in which this panel is inside. import edu.umich.body.Maps; private var maps:Maps; Is there something I am missing? If you need a visual reference you can see the concept site at http://www.med.umich.edu/prmc/landing/helipad From: Tim Hoff timh...@... Sent: Wednesday, June 24, 2009 8:04 AM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: Extending Custom Panel with RadioButtons - Help Hi Wally, Pretty close, just a few minor tweaks needed: // add the event parameter public function changeStartType( event:Event ): void // change to group addressRB.group = startLocation ; airportRB.group = startLocation ; protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number): void { super .updateDisplayList(unscaledWidth, unscaledHeight); // gap between label and edges of button var margin:int = 4; // set the sizes addressRB.setActualSize(addressRB.getExplicitOrMeasuredWidth(), addressRB.getExplicitOrMeasuredHeight()); airportRB.setActualSize(airportRB.getExplicitOrMeasuredWidth
re: [flexcoders] Re: Extending Custom Panel with RadioButtons - Help
Thanks that worked like a charm. I had a feeling I wanted to do a dispatched event, I just forgot that I then get it in the panel MXML attributes! You're the best! From: Tim Hoff timh...@aol.com Sent: Wednesday, June 24, 2009 9:54 AM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: Extending Custom Panel with RadioButtons - Help Ok, so take maps out of the RadioButtonPanel AS component and make the startLocation RadioButtonGroup public. Next create a Event in the component, that will be dispatched when the radio buttons are clicked: After the import statements add: [ Event(name= changeMap,type= flash.events.Event)] Then in changeStartType(), replace the if statement with: var event:Event = new Event( changeMap ); dispatchEvent( event ); Now you can listen for the event: wallyk:RadioButtonPanel changeMap= handleChangeMap( event ) / The event handler would then perform the changes, from outside of the component: private function handleChangeMap( event:Event ): void { if (event.currentTarget.startLocation.selectedValue == address ){ start_txt.text = Enter Starting Address; } else{ start_txt.text = Choose Your Airport; } } It makes sense to do it this way because the content of the panel could change and you might want to re-use your component.. -TH --- In flexcoders@yahoogroups.com, Wally Kolcz wko...@... wrote: How can I do that? maps is the 'page' that this panel is on. I need to control the elements that are inside the panel: wallyk:RadioButtonPanel width=100% height=20% title=Start Address Type: paddingLeft=5 includeInLayout=true visible=true mx:Label id=start_txt / mx:Form id=frmAddress width=100% height=100% mx:FormItem label=Street Address: fontWeight=bold mx:TextInput id=address_txt fontWeight=normal / /mx:FormItem mx:FormItem label=City: fontWeight=bold mx:TextInput id=city_txt fontWeight=normal / /mx:FormItem mx:FormItem label=State: fontWeight=bold mx:TextInput id=state_txt fontWeight=normal maxChars=2 / /mx:FormItem mx:FormItem label=Zip Code: fontWeight=bold mx:TextInput id=zip_txt fontWeight=normal maxChars=5/ /mx:FormItem mx:Button label=Get Directions click=showDirections(address_txt.text, city_txt.text, state_txt.text, zip_txt.text); / /mx:Form mx:Form width=100% id=frmAirport height=100% includeInLayout=false visible=false mx:ComboBox id=addresscbb labelField=label fontWeight=normal mx:ArrayCollection mx:Object label=Capital Region International Airport address=4100 Capital City Boulevard city=Lansing state=MI zipcode=48906/ mx:Object label=Kalamazoo/Battle Creek International Airport address=5235 Portage Road city=Kalamazoo state=MI zipcode=49002/ mx:Object label=Gerald R. Ford International Airport address=5500 44th St SE city=Grand Rapids state=MI zipcode=49512/ mx:Object label=Bishop International Airport address=3425 W Bristol Road city=Flint state=MI zipcode=48507/ mx:Object label=Detroit Metropolitan Wayne County Airport address=9000 Middlebelt Road city=Romulus state=MI zipcode=48174/ mx:Object label=Capital Region International Airport address=655 Aviation Drive city=Mason state=MI zipcode=48854/ /mx:ArrayCollection /mx:ComboBox /mx:Form mx:Button label=Map Route id=submit_btn visible=false / /wallyk:RadioButtonPanel From: Tim Hoff timh...@... Sent: Wednesday, June 24, 2009 8:56 AM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: Extending Custom Panel with RadioButtons - Help You need to add maps as a child in createChildren(). -TH --- In flexcoders@yahoogroups.com, Wally Kolcz wkolcz@ wrote: Thanks! The labels are now showing perfectly! However, I am getting an error when I attempt to check the radio buttons: TypeError: Error #1009: Cannot access a property or method of a null object reference. at com.wallykolcz.views.components::RadioButtonPanel/changeStartType()[D:\w\ kolcz\My Documents\Flex3\landingPage\src\com\wallykolcz\views\components\RadioBut\ tonPanel.as:34] Line 34 (in this case since I chose Airport to make this error) is part of this: public function changeStartType(e:Event):void { if (startLocation.selectedValue == address){ maps.start_txt.text = Enter Starting Address; maps.frmAirport.includeInLayout = false; maps.frmAirport.visible = false; maps.frmAddress.includeInLayout = true; maps.frmAddress.visible = true; maps.submit_btn.visible = true; }else{ maps.start_txt.text = Choose Your Airport; maps.frmAddress.includeInLayout = false; maps.frmAddress.visible = false; maps.frmAirport.includeInLayout = true; maps.frmAirport.visible = true; maps.submit_btn.visible = true