Re: [flexcoders] Variable Type for Web Service Result

2006-08-24 Thread Ethan Miller
Thanks, that worked perfectly and I learned a lot =)

cheers, ethan
 Ethan,

 Yup, that was it. This works (although it's certainly not the only  
 way to
 do it)...

 ?xml version=1.0 encoding=utf-8?
 mx:Application xmlns:mx=http://www.adobe.com/2006/mxml;  
 layout=absolute
 creationPolicy=all

 mx:Script
 ![CDATA[
 [Bindable]
 public var blogResult : Object;

 public function changeVS() : void{
 postKeywords.text = ;
 postTypeVS.selectedIndex = (whatPostsCB.selectedItem.data ==  
 popular)
 ? 1 : 0 ;
 refresh();
 }

 public function refresh() : void {
 if (whatPostsCB.selectedItem.data == popular)
 blogAggrWS.getMostPopularPosts.send();
 else
 blogAggrWS.search.send();
 }
 ]]
 /mx:Script

 mx:WebService id=blogAggrWS
 wsdl=http://weblogs.macromedia.com/mxna/webservices/mxna2.cfc?wsdl;
 useProxy=false showBusyCursor=true

 mx:operation name=getMostPopularPosts
 result=blogResult=event.result;
 mx:request
 daysBack{daysBackCB.value}/daysBack
 limit{numPostsCB.value}/limit
 /mx:request
 /mx:operation

 mx:operation name=search result=blogResult=event.result;
 mx:request
 offset0/offset
 limit50/limit
 searchTerms{postKeywords.text}/searchTerms
 sortByrelevance/sortBy
 languageIds1/languageIds
 /mx:request
 /mx:operation

 mx:operation name=getLanguages
 mx:request/
 /mx:operation

 /mx:WebService

 mx:Panel width=850 height=400 layout=absolute  
 horizontalCenter=0
 verticalCenter=0 title=Adobe Blogs Post Finder

 mx:HBox horizontalCenter=0 top=20 verticalAlign=middle

 mx:Label text=Get:/

 mx:ComboBox id=whatPostsCB change=changeVS()
 mx:Object label=Posts By Keyword data=search /
 mx:Object label=Most Popular Posts data=popular /
 /mx:ComboBox

 mx:ViewStack id=postTypeVS width=400

 mx:HBox verticalAlign=middle
 mx:TextInput id=postKeywords text=/
 mx:Button label=Search click=refresh()/
 /mx:HBox

 mx:HBox verticalAlign=middle width=372

 mx:Spacer width=10/

 mx:Label text=Show:/
 mx:ComboBox id=numPostsCB change=refresh() selectedIndex=0
 mx:Object label=Top 5 Posts data=5 /
 mx:Object label=Top 10 Posts data=10 /
 mx:Object label=Top 15 Posts data=15 /
 /mx:ComboBox

 mx:Spacer width=10/

 mx:Label text=In Last:/
 mx:ComboBox id=daysBackCB change=refresh() selectedIndex=0
 mx:Object label=30 Days data=30 /
 mx:Object label=60 Days data=60 /
 mx:Object label=90 Days data=90 /
 /mx:ComboBox

 /mx:HBox

 /mx:ViewStack

 /mx:HBox

 mx:DataGrid left=20 right=20 top=62 bottom=20 id=keyPostsDG
 dataProvider={blogResult}
 mx:columns
 mx:DataGridColumn headerText=Post Title textAlign=left
 mx:itemRenderer
 mx:Component
 mx:LinkButton label={data.postTitle}
 click=navigateToURL(new URLRequest(data.postLink))
 color=blue/
 /mx:Component
 /mx:itemRenderer
 /mx:DataGridColumn
 mx:DataGridColumn headerText=Clicks dataField=clicks width=50
 textAlign=right/
 mx:DataGridColumn headerText=Post Excerpt dataField=postExcerpt
 wordWrap=true/
 /mx:columns
 /mx:DataGrid

 /mx:Panel

 /mx:Application

 Darren

 From: Darren Houle [EMAIL PROTECTED]
 Reply-To: flexcoders@yahoogroups.com
 To: flexcoders@yahoogroups.com
 Subject: RE: [flexcoders] Variable Type for Web Service Result
 Date: Wed, 23 Aug 2006 22:44:48 -0400
 
 Ethan,
 
 I don't think it's your typing, I think it's your timing. Looks like
 you're
 flipping your postTyper() when the combobox is changed, but that's  
 not
 firing a new send() like the original blogger example did. Try  
 changing
 your code so that changing the combobox triggers the send() and  
 the send
 result= handler triggers the postTyper(). That way you'll have the
 correct data in lastResult when you change your blogResult  
 variable. That
 change should then be noticed by the bindings.
 
 Darren
 
 
  From: Ethan Miller [EMAIL PROTECTED]
  Reply-To: flexcoders@yahoogroups.com
  To: flexcoders@yahoogroups.com
  Subject: [flexcoders] Variable Type for Web Service Result
  Date: Wed, 23 Aug 2006 16:13:19 -0700
  
  Greetings -
  
  Expanding on the Connecting to Web Services tutorial, I added a
  combo box for switching between methods of the API to the Adobe  
 blog
  aggregator, ie from getMostPopularPosts to search.
  
  As both methods return the same columns, the data grid  
 displaying the
  result can stay the same, other than needing a different value for
  data provider, ie:
  
 myWebService.getMostPopularPosts.lastResult
  vs
 myWebService.search.lastResult
  
  I was hoping therefore to bind the dataGrid dataProvider value to a
  variable which I'd set when users change the value of the comboBox
  (which selects which method to use). However I think I'm typing the
  variable which stores the value of the service result wrong, as  
 I get
  null whenever I try and set the value (blogResult), show below:
  
  ?xml version=1.0 encoding=utf-8?
  mx:Application
 xmlns:mx=http://www.adobe.com/2006/mxml;
 layout=absolute
  
  mx:Script
 ![CDATA[
  
 [Bindable]
 public var blogResult:Object = null;
  
 public function postTyper(event:Event):void

[flexcoders] Variable Type for Web Service Result

2006-08-23 Thread Ethan Miller
Greetings -

Expanding on the Connecting to Web Services tutorial, I added a  
combo box for switching between methods of the API to the Adobe blog  
aggregator, ie from getMostPopularPosts to search.

As both methods return the same columns, the data grid displaying the  
result can stay the same, other than needing a different value for  
data provider, ie:

myWebService.getMostPopularPosts.lastResult
vs
myWebService.search.lastResult

I was hoping therefore to bind the dataGrid dataProvider value to a  
variable which I'd set when users change the value of the comboBox  
(which selects which method to use). However I think I'm typing the  
variable which stores the value of the service result wrong, as I get  
null whenever I try and set the value (blogResult), show below:

?xml version=1.0 encoding=utf-8?
mx:Application
xmlns:mx=http://www.adobe.com/2006/mxml;
layout=absolute

mx:Script
![CDATA[

[Bindable]
public var blogResult:Object = null;

public function postTyper(event:Event):void{
if (event.currentTarget.selectedItem.data == popular){
postTypeVS.selectedIndex=1;
blogResult = 
blogAggrWS.getMostPopularPosts.lastResult;
trace (blogResult);
}
else{
postTypeVS.selectedIndex=0;
blogResult = blogAggrWS.search.lastResult;
trace (blogResult); 
}
}
]]
/mx:Script

mx:WebService id=blogAggrWS
wsdl=http://weblogs.macromedia.com/mxna/webservices/mxna2.cfc? 
wsdl
useProxy=false

mx:operation name=getMostPopularPosts
mx:request
daysBack{daysBackCB.value}/daysBack
limit{numPostsCB.value}/limit
/mx:request
/mx:operation

mx:operation name=search
mx:request
offset0/offset
limit50/limit
searchTerms{postKeywords.text}/searchTerms
sortByrelevance/sortBy
languageIds1/languageIds
/mx:request
/mx:operation

mx:operation name=getLanguages
mx:request/
/mx:operation

/mx:WebService

mx:Panel
width=850 height=400
layout=absolute
horizontalCenter=0 verticalCenter=0
title=Adobe Blogs Post Finder

mx:HBox horizontalCenter=0 top=20 verticalAlign=middle

mx:Label text=Get:/

mx:ComboBox id=whatPostsCB
change=postTyper(event)
mx:Object label=Posts By Keyword 
data=search /
mx:Object label=Most Popular Posts 
data=popular /
/mx:ComboBox

mx:ViewStack id=postTypeVS width=400

mx:HBox verticalAlign=middle

mx:TextInput id=postKeywords 
text=/   
mx:Button label=Search 
click=blogAggrWS.search.send()/
/mx:HBox

mx:HBox verticalAlign=middle width=372

creationComplete=blogAggrWS.getMostPopularPosts.send()

mx:Spacer width=10/ 


mx:Label text=Show:/

mx:ComboBox id=numPostsCB

change=blogAggrWS.getMostPopularPosts.send()
mx:Object label=Top 5 Posts 
data=5 /
mx:Object label=Top 10 Posts 
data=10 /
mx:Object label=Top 15 Posts 
data=15 /
/mx:ComboBox

mx:Spacer width=10/ 

 

RE: [flexcoders] Variable Type for Web Service Result

2006-08-23 Thread Darren Houle
Ethan,

I don't think it's your typing, I think it's your timing.  Looks like you're 
flipping your postTyper() when the combobox is changed, but that's not 
firing a new send() like the original blogger example did.  Try changing 
your code so that changing the combobox triggers the send() and the send 
result= handler triggers the postTyper().  That way you'll have the 
correct data in lastResult when you change your blogResult variable.  That 
change should then be noticed by the bindings.

Darren


From: Ethan Miller [EMAIL PROTECTED]
Reply-To: flexcoders@yahoogroups.com
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Variable Type for Web Service Result
Date: Wed, 23 Aug 2006 16:13:19 -0700

Greetings -

Expanding on the Connecting to Web Services tutorial, I added a
combo box for switching between methods of the API to the Adobe blog
aggregator, ie from getMostPopularPosts to search.

As both methods return the same columns, the data grid displaying the
result can stay the same, other than needing a different value for
data provider, ie:

   myWebService.getMostPopularPosts.lastResult
vs
   myWebService.search.lastResult

I was hoping therefore to bind the dataGrid dataProvider value to a
variable which I'd set when users change the value of the comboBox
(which selects which method to use). However I think I'm typing the
variable which stores the value of the service result wrong, as I get
null whenever I try and set the value (blogResult), show below:

?xml version=1.0 encoding=utf-8?
mx:Application
   xmlns:mx=http://www.adobe.com/2006/mxml;
   layout=absolute

mx:Script
   ![CDATA[

   [Bindable]
   public var blogResult:Object = null;

   public function postTyper(event:Event):void{
   if (event.currentTarget.selectedItem.data == popular){
   postTypeVS.selectedIndex=1;
   blogResult = 
 blogAggrWS.getMostPopularPosts.lastResult;
   trace (blogResult);
   }
   else{
   postTypeVS.selectedIndex=0;
   blogResult = blogAggrWS.search.lastResult;
   trace (blogResult);
   }
   }
   ]]
/mx:Script

   mx:WebService id=blogAggrWS
   wsdl=http://weblogs.macromedia.com/mxna/webservices/mxna2.cfc?
wsdl
   useProxy=false

   mx:operation name=getMostPopularPosts
   mx:request
   daysBack{daysBackCB.value}/daysBack
   limit{numPostsCB.value}/limit
   /mx:request
   /mx:operation

   mx:operation name=search
   mx:request
   offset0/offset
   limit50/limit
   searchTerms{postKeywords.text}/searchTerms
   sortByrelevance/sortBy
   languageIds1/languageIds
   /mx:request
   /mx:operation

   mx:operation name=getLanguages
   mx:request/
   /mx:operation

   /mx:WebService

   mx:Panel
   width=850 height=400
   layout=absolute
   horizontalCenter=0 verticalCenter=0
   title=Adobe Blogs Post Finder

   mx:HBox horizontalCenter=0 top=20 verticalAlign=middle

   mx:Label text=Get:/

   mx:ComboBox id=whatPostsCB
   change=postTyper(event)
   mx:Object label=Posts By Keyword 
 data=search /
   mx:Object label=Most Popular Posts 
 data=popular /
   /mx:ComboBox

   mx:ViewStack id=postTypeVS width=400

   mx:HBox verticalAlign=middle
   mx:TextInput id=postKeywords 
 text=/
   mx:Button label=Search 
 click=blogAggrWS.search.send()/
   /mx:HBox

   mx:HBox verticalAlign=middle width=372
   
 creationComplete=blogAggrWS.getMostPopularPosts.send()

   mx:Spacer width=10/

   mx:Label text=Show:/
   mx:ComboBox id=numPostsCB
   
 change=blogAggrWS.getMostPopularPosts.send()
   mx:Object label=Top 5 Posts 
 data=5 /
   mx:Object label=Top 10 Posts 
 data=10 /
   mx:Object label=Top 15 Posts 
 data=15 /
   /mx:ComboBox

RE: [flexcoders] Variable Type for Web Service Result

2006-08-23 Thread Darren Houle
/mx:DataGridColumn
mx:DataGridColumn headerText=Clicks 
dataField=clicks width=50 
textAlign=right/
mx:DataGridColumn headerText=Post Excerpt 
dataField=postExcerpt 
wordWrap=true/
/mx:columns
/mx:DataGrid

/mx:Panel

/mx:Application


Darren








From: Darren Houle [EMAIL PROTECTED]
Reply-To: flexcoders@yahoogroups.com
To: flexcoders@yahoogroups.com
Subject: RE: [flexcoders] Variable Type for Web Service Result
Date: Wed, 23 Aug 2006 22:44:48 -0400

Ethan,

I don't think it's your typing, I think it's your timing.  Looks like 
you're
flipping your postTyper() when the combobox is changed, but that's not
firing a new send() like the original blogger example did.  Try changing
your code so that changing the combobox triggers the send() and the send
result= handler triggers the postTyper().  That way you'll have the
correct data in lastResult when you change your blogResult variable.  That
change should then be noticed by the bindings.

Darren


 From: Ethan Miller [EMAIL PROTECTED]
 Reply-To: flexcoders@yahoogroups.com
 To: flexcoders@yahoogroups.com
 Subject: [flexcoders] Variable Type for Web Service Result
 Date: Wed, 23 Aug 2006 16:13:19 -0700
 
 Greetings -
 
 Expanding on the Connecting to Web Services tutorial, I added a
 combo box for switching between methods of the API to the Adobe blog
 aggregator, ie from getMostPopularPosts to search.
 
 As both methods return the same columns, the data grid displaying the
 result can stay the same, other than needing a different value for
 data provider, ie:
 
  myWebService.getMostPopularPosts.lastResult
 vs
  myWebService.search.lastResult
 
 I was hoping therefore to bind the dataGrid dataProvider value to a
 variable which I'd set when users change the value of the comboBox
 (which selects which method to use). However I think I'm typing the
 variable which stores the value of the service result wrong, as I get
 null whenever I try and set the value (blogResult), show below:
 
 ?xml version=1.0 encoding=utf-8?
 mx:Application
  xmlns:mx=http://www.adobe.com/2006/mxml;
  layout=absolute
 
 mx:Script
  ![CDATA[
 
  [Bindable]
  public var blogResult:Object = null;
 
  public function postTyper(event:Event):void{
  if (event.currentTarget.selectedItem.data == popular){
  postTypeVS.selectedIndex=1;
  blogResult = 
  blogAggrWS.getMostPopularPosts.lastResult;
  trace (blogResult);
  }
  else{
  postTypeVS.selectedIndex=0;
  blogResult = blogAggrWS.search.lastResult;
  trace (blogResult);
  }
  }
  ]]
 /mx:Script
 
  mx:WebService id=blogAggrWS
  wsdl=http://weblogs.macromedia.com/mxna/webservices/mxna2.cfc?
 wsdl
  useProxy=false
 
  mx:operation name=getMostPopularPosts
  mx:request
  daysBack{daysBackCB.value}/daysBack
  limit{numPostsCB.value}/limit
  /mx:request
  /mx:operation
 
  mx:operation name=search
  mx:request
  offset0/offset
  limit50/limit
  searchTerms{postKeywords.text}/searchTerms
  sortByrelevance/sortBy
  languageIds1/languageIds
  /mx:request
  /mx:operation
 
  mx:operation name=getLanguages
  mx:request/
  /mx:operation
 
  /mx:WebService
 
  mx:Panel
  width=850 height=400
  layout=absolute
  horizontalCenter=0 verticalCenter=0
  title=Adobe Blogs Post Finder
 
  mx:HBox horizontalCenter=0 top=20 verticalAlign=middle
 
  mx:Label text=Get:/
 
  mx:ComboBox id=whatPostsCB
  change=postTyper(event)
  mx:Object label=Posts By Keyword 
  data=search /
  mx:Object label=Most Popular Posts 
  data=popular /
  /mx:ComboBox
 
  mx:ViewStack id=postTypeVS width=400
 
  mx:HBox verticalAlign=middle
  mx:TextInput id=postKeywords 
  text=/
  mx:Button label=Search 
  click=blogAggrWS.search.send()/
  /mx:HBox
 
  mx:HBox verticalAlign=middle width=372
  
  creationComplete=blogAggrWS.getMostPopularPosts.send()
 
  mx:Spacer width=10