Again you are close, and having the tile list get its data from
httpservice complicates things only slightly.

 

First, Do not bind to lastResult. Ever.  It is just too hard to debug,
and it is confusing, and it won't work for what you need to do.
Instead, use a result handler function.  See my previous post for code
snippets.

 

Do you want the tree to initially display with a particular node
selected?  Which, the first? If so, do you want to display that nodes
thumbnails in the HL?  If so, then in the handler, you need to set the
tree.selectedItem to the first node.

  myTree.selectedItem = _xmlData[0];  //You may need to call this with
callLater, depending on how/when you set the dataProvider

 

Do you want the children of the first node expanded?  It is probably
closed by default.  Do this also in the handler.

 

Create a function to invoke the send() on the thumbnail data call:

private function getThumbnailData(sUrl:String):void {

  srv.url = sUrl;

  srv.send();
  ...

 

When you initialize the tree, in the result handler function, call that
function to get the thumbnails for the first node:

 var sUrl:String = [EMAIL PROTECTED];

  getThumbnailData(sUrl)

 

Create a "change" event handler for the tree, and in it call the dat
send function for the thumbnails:

private function onChangeTree(oEvent:Event):void  {

  var xmlNode:XML = XML(oEvent.target.selectedItem);

  var sUrl:String = [EMAIL PROTECTED];

  getThumbnailData();

 

Set up a result handler and instance variable for the thumbnail HL data
and away you go

 

Tracy

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of shawn.gibson
Sent: Tuesday, March 13, 2007 5:16 PM
To: [email protected]
Subject: [flexcoders] Re: HTTPService-driven Tree

 

This is actually, uh, slightly, more complex that I thought. 

The SHORT answer is, I get what you are saying I need to do: 
initialize the first gallery to be loaded into the thumbnail/HL 
thing, and use a tree change event method to pass to that providing 
the proper gURL file in galleriesData.xml for the selected node. But 
I can't change the data providor for the HorizontalList, because it 
falls apart.

In English:

I have my galleries_module. It does this with the tree: 

<mx:Tree id="myTree" width="100%" height="90%" labelField="@label" 
showRoot="false" dataProvider="{galXMLsrv.lastResult.root}" 
change="treeChanged(event)"/>

where it's 'fed' this:

<mx:HTTPService id="galXMLsrv" url="model/galleriesData.xml" 
useProxy="false" resultFormat="e4x" />

Here's what that file looks like: 
http://shawngibson.com/faceitphoto.ca/shawn/model/galleriesData.xml
<http://shawngibson.com/faceitphoto.ca/shawn/model/galleriesData.xml> 

(view source, I don't know why it throws errors, it works fine)

Part 2, that xml file, has gURL for each item node, meant to fire off 
as I say my HorizontalList and load a new thumbnail file, let's say 
Catherine.xml (it is in the /model directory)...but that HL is 
comprised of the following:

<mx:HorizontalList dataProvider="{srv.lastResult.gallery.piece}" 
height="100%" width="100%" itemRenderer="Thumbnail" rowHeight="130" 
columnWidth="175" backgroundAlpha="0.0" borderStyle="none"/>

and is fed by:

<mx:HTTPService id="srv" url="model/animals.xml" useProxy="false"/>

Note the itemRenderer="Thumbnail"

I use animals.xml as it's easy..."onLoad" it should grab the first 
node item's gURL file as the file that loads initially into the 
thumbscroller. Now that's the problem. What you want me to do, I lose 
the binding on my HL, and the problem is that it's actually being fed 
a component called Thumbnail, which I'll include here in it's 
entirety:

<?xml version="1.0"?>
<!-- dpcontrols/Thumbnail.mxml -->
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml
<http://www.adobe.com/2006/mxml> "
width="100%" height="100%" verticalAlign="middle" 
verticalGap="0"
verticalScrollPolicy="off" horizontalAlign="center" 
backgroundColor="#000000" backgroundAlpha="0.0">
<mx:Image id="img" height="75" width="100" 
source="{data.piclink}"/>
</mx:HBox>

So, I'm lost. What it needs to do, based on what I can get from your 
help so far is this: first, it needs to read the first XML gURL 
value, and populate the HL/Thumbnail.mxml 'thinagamajig', i.e., in a 
manner I'd say is '<BODY onLoad="somefunction();"' in html-speak - it 
would load the first gURL in galleriesData.xml, first item node. 

>From there, I think it needs to have a Tree change event, and do what 
you said, provide the proper notification TO THE PROPER RECEIVER 
(which isn't the HL, it seems) that 'hey, this is the new datasource 
for the HL/Thumbnail thing, so please reload it to THAT Tree node's 
gURL whatever.xml file.

If this is clear as mud, I apologize. If the visual helps, my site is 
here, and just navigate to galleries, then in the accordion, navigate 
to the accordion header. It will make sense. 

I've set View Source to the whole thing if you are inclined to please 
help get me started here. This knowledge will be applicable to most 
of what I need to do to finish this site, and I would be greatly 
appreciative. I've read thousands of pages since November, but I seem 
to be needing some pretty non-standard stuff done.

Here's my site in progress

http://shawngibson.com/faceitphoto.ca/shawn/index.html
<http://shawngibson.com/faceitphoto.ca/shawn/index.html> 

I want this project to open source, free and available to anyone who 
wants it. I've had it in my head for years, and I really hope someone 
finds it valuable when I'm done. But I will need help because I'm 
really a designer, and a photographer, so this heavy-duty coding, 
while I find it extremely interesting and I'm passionate towards it, 
it's just sometimes totally outside my ability to 'think like'. 

I've wanted to build an application for many many years...I'm at 
least 1/3 of the way there, with this, I hope. At least for version 
1:)

The reason I want everything XML-HTTPService driven, is that I'd like 
to be able to give it to photographers who are not at all inclined to 
be recompiling Flex Applications. Stage 2 will be to use the CF/Flex 
wizard to populate the ACTUAL database (Access, MySQL, and hopefully 
MS SQL if I can find $14,000 for the frigging licencing) and I 
already have the CFC component to GENERATE the XML on the fly - 
everything excluding the Tree, which requires coding for a Nested Set 
or Adjacency model - I will most likely have to pay someone to build 
that, the XML generator for the Tree (i.e., the galleriesData.xml 
file), it's WAY out of my league. I have the database though, that 
part is easy as pie, already works. In short, the photographer goes 
in to the Admin section, gets the Flex/CF Wizard interface, does 
his/her thing, then runs a CFC to regenerate the changed XML. This 
frees up the server, it allows the photog to not have to be a coder, 
and the only drawback is that the user must have a CF hosting service.

I hope I've not ruined anyone's day with a bunch of useless reading:)

Shawn

--- In [email protected] <mailto:flexcoders%40yahoogroups.com>
, "Tracy Spratt" <[EMAIL PROTECTED]> wrote:
>
> "get the tree selected items to pass over into the horizontallist 
item
> renderer-thingamajig"
> 
> 
> 
> Two ways. Use a "change" handler on the tree and set the
> dataProvider=event.target.selectedItem. Or, bind to the 
selectedItem:
> <myHorizontalList dataProvider="{myTree.selectedItem}" .../>
> 
> 
> 
> Tracy
> 
> 
> 
> ________________________________
> 
> From: [email protected] <mailto:flexcoders%40yahoogroups.com>

[mailto:[email protected] <mailto:flexcoders%40yahoogroups.com>
] On
> Behalf Of shawn.gibson
> Sent: Monday, March 12, 2007 8:13 PM
> To: [email protected] <mailto:flexcoders%40yahoogroups.com> 
> Subject: [flexcoders] Re: HTTPService-driven Tree
> 
> 
> 
> Woo hoo. I did it, thanks to you, Tracy. The only thing I didn't 
for 
> the life of me realize, is that you have to use the .send method 
upon 
> creation completion - so for all I know, all these times I've been 
> trying, that was my biggest mistake. As I've been doing a lot of 
> pasting from the examples, it never occured to me to go all the 
way 'up 
> there' LOL!
> 
> I used exactly the kind of code you provided me...thank you!
> 
> Now I just need to figure out how to get the tree selected items to 
> pass over into the horizontallist item renderer-
thingamajig...live...so 
> it changes the thumbs to the appropriate gallery when the user 
selects 
> the gallery via the tree. Then about a billion other things to 
learn, 
> then...
> 
> :)
> 
> Thanks for your help Tracy, it worked, the only missing piece was 
my 
> own ignorance...
> 
> Shawn
>

 

Reply via email to