vzwhaley
08-06-2007, 09:01 PM
In the following code, I cannot for the life of me get the Tree to expand at the root node upon loading. Any help would be appreciated.
XML EXAMPLE:
<tearsheets>
<pubDate aname="Wednesday, August 01, 2007">
<section aname="A">
<page aname="02" date="20070801" sectionID="A" image="tearsheets/2007/08/01/jpg/20070801_A_02.jpg" pdf="tearsheets/2007/08/01/pdf/20070801_A_02.pdf"/>
<page aname="03" date="20070801" sectionID="A" image="tearsheets/2007/08/01/jpg/20070801_A_03.jpg" pdf="tearsheets/2007/08/01/pdf/20070801_A_03.pdf"/>
</section>
</pubDate>
</tearsheets>
<?xml version="1.0" encoding="utf-8"?>
<!-- controls\date\DateChooserEvent.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" borderStyle="none" borderThickness="2"
layout="absolute" horizontalAlign="left" verticalAlign="top" backgroundGradientColors="[#666666, #ffffff]">
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.controls.Text;
import mx.controls.DataGrid;
import mx.events.CalendarLayoutChangeEvent;
import mx.collections.XMLListCollection;
[Bindable]
private var sectionList:XMLList;
private function buildListHandler(event:ResultEvent):void
{
sectionList = event.result..pubDate;
}
private function populateForm(event:Event):void
{
var node:XML=event.target.selectedItem;
if(node.@pdf != undefined)
{
sectionID.text = node.@sectionID;
pageNumber.text = node.@aname;
theForm.visible = true;
}
else
{
theForm.visible = false;
sectionID.text = "";
pageNumber.text = "";
}
}
public function useDate(eventObj:CalendarLayoutChangeEvent):void
{
// Make sure selectedDate is not null.
if (eventObj.currentTarget.selectedDate == null) {
return
} else {
userRequest.send();
}
//Access the Date object from the event object.
var day:Text;
var date:Text;
var month:Text;
var year:Text;
var wholeDate:Text;
day.text=eventObj.currentTarget.selectedDate.getDa y();
date.text=eventObj.currentTarget.selectedDate.getD ate();
month.text=eventObj.currentTarget.selectedDate.get Month();
year.text=eventObj.currentTarget.selectedDate.getF ullYear();
wholeDate.text=
eventObj.currentTarget.selectedDate.getFullYear() +
"/" +
(eventObj.currentTarget.selectedDate.getMonth()+1) +
"/" + eventObj.currentTarget.selectedDate.getDate();
}
private function onUserRequestResult(e:Event) :void
{
buildList.send();
}
private function initTree():void {
sectionsTree.expandItem(sl2.getItemAt(0), true);
}
]]>
</mx:Script>
<mx:DateFormatter id="df" formatString="YYYY_MM_DD"/>
<mx:DateFormatter id="df2" formatString="EEEE, MMMM DD, YYYY"/>
<mx:DateChooser id="dateChooser" change="useDate(event)" showToday="true" x="10" y="103" cornerRadius="14" yearNavigationEnabled="true"
disabledRanges="{[ {rangeEnd: new Date(2006, 4, 0)} ]}"/>
<mx:HTTPService id="userRequest" result="onUserRequestResult(event)" url="tearsheets/Sections_XML.php?Date={df.format(dateChooser.selec tedDate)}"
showBusyCursor="true" useProxy="false" method="POST"></mx:HTTPService>
<mx:HTTPService id="buildList" url="tearsheets/Tearsheets.xml" showBusyCursor="true" result="buildListHandler(event)" resultFormat="e4x"/>
<mx:XMLListCollection id="sl2" source="{sectionList}" />
<mx:Panel id="leftPanel" title="Tearsheets for {buildList.lastResult.pubDate.@aname}" width="390" height="228" layout="absolute" x="10" y="293">
<mx:Tree id="sectionsTree"
dataProvider="{sl2}"
labelField="@aname"
width="100%"
height="100%"
borderThickness="0"
change="populateForm(event)" x="0" y="0"
creationComplete="initTree()"/>
</mx:Panel>
<!-- Effects -->
<mx:Fade id="fadeIn" duration="3000" alphaFrom="0" alphaTo="1"/>
<mx:Fade id="fadeOut" duration="3000" alphaFrom="1" alphaTo="0"/>
<!-- User Interface -->
<mx:Panel title="Tearsheets Preview for {df2.format(dateChooser.selectedDate)}" width="550" height="100%" x="408" y="10">
<mx:Form id="theForm" visible="false">
<mx:FormItem label="Section">
<mx:TextInput id="sectionID"/>
</mx:FormItem>
<mx:FormItem label="Page">
<mx:TextInput id="pageNumber"/>
</mx:FormItem>
</mx:Form>
<mx:Tile width="100%" height="100%">
<mx:Repeater id="photos" dataProvider="{buildList.lastResult.pubDate.section.page}">
<mx:VBox
xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalAlign="center"
>
<mx:Image
id="myImage"
source="{photos.currentItem.@image}"
buttonMode = "true"
completeEffect="{fadeIn}"
click="navigateToURL(new URLRequest(event.currentTarget.getRepeaterItem().@ pdf), '_blank');"
/>
</mx:VBox>
</mx:Repeater>
</mx:Tile>
</mx:Panel>
</mx:Application>
XML EXAMPLE:
<tearsheets>
<pubDate aname="Wednesday, August 01, 2007">
<section aname="A">
<page aname="02" date="20070801" sectionID="A" image="tearsheets/2007/08/01/jpg/20070801_A_02.jpg" pdf="tearsheets/2007/08/01/pdf/20070801_A_02.pdf"/>
<page aname="03" date="20070801" sectionID="A" image="tearsheets/2007/08/01/jpg/20070801_A_03.jpg" pdf="tearsheets/2007/08/01/pdf/20070801_A_03.pdf"/>
</section>
</pubDate>
</tearsheets>
<?xml version="1.0" encoding="utf-8"?>
<!-- controls\date\DateChooserEvent.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" borderStyle="none" borderThickness="2"
layout="absolute" horizontalAlign="left" verticalAlign="top" backgroundGradientColors="[#666666, #ffffff]">
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.controls.Text;
import mx.controls.DataGrid;
import mx.events.CalendarLayoutChangeEvent;
import mx.collections.XMLListCollection;
[Bindable]
private var sectionList:XMLList;
private function buildListHandler(event:ResultEvent):void
{
sectionList = event.result..pubDate;
}
private function populateForm(event:Event):void
{
var node:XML=event.target.selectedItem;
if(node.@pdf != undefined)
{
sectionID.text = node.@sectionID;
pageNumber.text = node.@aname;
theForm.visible = true;
}
else
{
theForm.visible = false;
sectionID.text = "";
pageNumber.text = "";
}
}
public function useDate(eventObj:CalendarLayoutChangeEvent):void
{
// Make sure selectedDate is not null.
if (eventObj.currentTarget.selectedDate == null) {
return
} else {
userRequest.send();
}
//Access the Date object from the event object.
var day:Text;
var date:Text;
var month:Text;
var year:Text;
var wholeDate:Text;
day.text=eventObj.currentTarget.selectedDate.getDa y();
date.text=eventObj.currentTarget.selectedDate.getD ate();
month.text=eventObj.currentTarget.selectedDate.get Month();
year.text=eventObj.currentTarget.selectedDate.getF ullYear();
wholeDate.text=
eventObj.currentTarget.selectedDate.getFullYear() +
"/" +
(eventObj.currentTarget.selectedDate.getMonth()+1) +
"/" + eventObj.currentTarget.selectedDate.getDate();
}
private function onUserRequestResult(e:Event) :void
{
buildList.send();
}
private function initTree():void {
sectionsTree.expandItem(sl2.getItemAt(0), true);
}
]]>
</mx:Script>
<mx:DateFormatter id="df" formatString="YYYY_MM_DD"/>
<mx:DateFormatter id="df2" formatString="EEEE, MMMM DD, YYYY"/>
<mx:DateChooser id="dateChooser" change="useDate(event)" showToday="true" x="10" y="103" cornerRadius="14" yearNavigationEnabled="true"
disabledRanges="{[ {rangeEnd: new Date(2006, 4, 0)} ]}"/>
<mx:HTTPService id="userRequest" result="onUserRequestResult(event)" url="tearsheets/Sections_XML.php?Date={df.format(dateChooser.selec tedDate)}"
showBusyCursor="true" useProxy="false" method="POST"></mx:HTTPService>
<mx:HTTPService id="buildList" url="tearsheets/Tearsheets.xml" showBusyCursor="true" result="buildListHandler(event)" resultFormat="e4x"/>
<mx:XMLListCollection id="sl2" source="{sectionList}" />
<mx:Panel id="leftPanel" title="Tearsheets for {buildList.lastResult.pubDate.@aname}" width="390" height="228" layout="absolute" x="10" y="293">
<mx:Tree id="sectionsTree"
dataProvider="{sl2}"
labelField="@aname"
width="100%"
height="100%"
borderThickness="0"
change="populateForm(event)" x="0" y="0"
creationComplete="initTree()"/>
</mx:Panel>
<!-- Effects -->
<mx:Fade id="fadeIn" duration="3000" alphaFrom="0" alphaTo="1"/>
<mx:Fade id="fadeOut" duration="3000" alphaFrom="1" alphaTo="0"/>
<!-- User Interface -->
<mx:Panel title="Tearsheets Preview for {df2.format(dateChooser.selectedDate)}" width="550" height="100%" x="408" y="10">
<mx:Form id="theForm" visible="false">
<mx:FormItem label="Section">
<mx:TextInput id="sectionID"/>
</mx:FormItem>
<mx:FormItem label="Page">
<mx:TextInput id="pageNumber"/>
</mx:FormItem>
</mx:Form>
<mx:Tile width="100%" height="100%">
<mx:Repeater id="photos" dataProvider="{buildList.lastResult.pubDate.section.page}">
<mx:VBox
xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalAlign="center"
>
<mx:Image
id="myImage"
source="{photos.currentItem.@image}"
buttonMode = "true"
completeEffect="{fadeIn}"
click="navigateToURL(new URLRequest(event.currentTarget.getRepeaterItem().@ pdf), '_blank');"
/>
</mx:VBox>
</mx:Repeater>
</mx:Tile>
</mx:Panel>
</mx:Application>