re: [flexcoders] Re: Extending Custom Panel with RadioButtons - Help

2009-06-24 Thread Wally Kolcz

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

2009-06-24 Thread Wally Kolcz
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

2009-06-24 Thread Wally Kolcz
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