Tree generates 1502 error


i using mx: tree tag display tree has 1442 child nodes (and child nodes have nested children). when try expand nodes nearer bottom of tree, there delay , 1502 error generated, shown in stack trace below.

i sure not managing lifecycle of tree properly, appreciate issue.



error: error #1502: script has executed longer default timeout period of 15 seconds.
@ mx.controls.treeclasses::hierarchicalviewcursor/seek()
@ mx.controls.listclasses::listbase/mx.controls.listclasses:listbase::scrollvertically()
@ mx.controls::list/mx.controls:list::scrollhandler()
@ mx.controls::tree/mx.controls:tree::scrollhandler()
@ flash.events::eventdispatcher/flash.events:eventdispatcher::dispatcheventfunction()
@ flash.events::eventdispatcher/dispatchevent()
@ mx.controls.scrollclasses::scrollbar/ http://www.adobe.com/2006/flex/mx/internal::dispatchscrollevent()
@ mx.controls.scrollclasses::scrollthumb/::mousemovehandler()


<?xml version="1.0" encoding="utf-8"?>
<mx:application xmlns:mx=" http://www.adobe.com/2006/mxml"
layout="absolute" creationcomplete="cursormanager.setbusycursor();getglobaltypesrpc.send();">

<mx:httpservice id="getglobaltypesrpc"
url="@contextroot()/niem-services/getglobaltypes.do"
resultformat="e4x" showbusycursor="true" method="post"
fault="alert.show(event.fault.faultstring)"
result="getglobaltypesrpchandler(event)">
<mx:request>
<namespaceuri>{domains.selecteditem.data}</namespaceuri>
</mx:request>
</mx:httpservice>
<mx:xmllistcollection id="globaltypes"
source="{getglobaltypesrpc.lastresult.type}" />

<mx:httpservice id="getchildrentypesrpc"
url="@contextroot()/niem-services/getchildrentypes.do"
resultformat="e4x" showbusycursor="true" method="post"
fault="alert.show(event.fault.faultstring)"
result="getchildrentypesrpchandler(event)">
<mx:request>
<localname>{selectedtype.@name}</localname>
<namespaceuri>{selectedtype.@namespaceuri}</namespaceuri>
</mx:request>
</mx:httpservice>
<mx:xmllistcollection id="childrentypes"
source="{getchildrentypesrpc.lastresult.type}" />

<mx:script>
<![cdata[
import mx.events.*;
import mx.controls.*;
import mx.rpc.events.resultevent;
import mx.controls.treeclasses.*;
import mx.collections.xmllistcollection;
import mx.managers.cursormanager;

[bindable]
public var domainlist: array = [
{label:"emergency management", data:" http://niem.gov/niem/domains/emergencymanagement/1.0"},
{label:"immigration", data:" http://niem.gov/niem/domains/immigration/1.0"},
{label:"infrastructure protection", data:" http://niem.gov/niem/domains/infrastructureprotection/1.0"},
{label:"intelligence", data:" http://niem.gov/niem/domains/intelligence/1.0"},
{label:"international trade", data:" http://niem.gov/niem/domains/internationaltrade/1.0"},
{label:"justice", data:" http://niem.gov/niem/domains/justice/1.0"},
{label:"person screening", data:" http://niem.gov/niem/domains/screening/1.0"} ];

[bindable]
private var selecteddomain:object;

[bindable]
private var selectedtype:object;

[bindable]
private var selectednode:object;

private function showdesc(event:event):void{
var selectednode:object = event.target.selecteditem;
type.text = selectednode.@type;
desc.text = selectednode.@annotation;
}

private function itemopen(event:treeevent):void {
cursormanager.setbusycursor();
selectednode = event.item;
selectedtype = selectednode;
var descriptor:itreedatadescriptor = tree.datadescriptor;

if (!descriptor.haschildren(selectednode)) {
getchildrentypesrpc.send();
}
}

private function getglobaltypesrpchandler(event:resultevent):void {
tree.dataprovider = globaltypes;
tree.selectedindex = 0;
type.text = tree.dataprovider[0].@type;
desc.text = tree.dataprovider[0].@annotation;
cursormanager.removebusycursor();
}

private function getchildrentypesrpchandler(event:resultevent):void {
(var i:int = 0; < childrentypes.length; i++) {
var newnode:xml = <type/>;
var child:object = childrentypes.getitemat(i);
newnode.@name = child.@name;
newnode.@type = child.@type;
newnode.@annotation = child.@annotation;
newnode.@isbranch = child.@isbranch;
newnode.@namespaceuri = child.@namespaceuri;
newnode.@isattribute = child.@isattribute;
newnode.@isabstract = child.@isabstract;
newnode.@isattributegroup = child.@isattributegroup;
newnode.@iselement = child.@iselement;
newnode.@ismodelgroup = child.@ismodelgroup;
newnode.@issimpletype = child.@issimpletype;
selectednode.appendchild(newnode);
}
cursormanager.removebusycursor();
}

[embed("icons/xsdcomplextype.gif")]
private var complextypeicon:class;
[embed("icons/xsdattribute.gif")]
private var attributetypeicon:class;
[embed("icons/xsdelement.gif")]
private var elementtypeicon:class;
[embed("icons/xsdsimpletype.gif")]
private var simpletypeicon:class;

private function treeiconfunc(item:object):class {
var doctype:class;

if(item.@iscomplextype == "true") {
doctype = complextypeicon;
} else if(item.@isattribute == "true") {
doctype = attributetypeicon;
} else if(item.@iselement == "true") {
doctype = elementtypeicon;
} else if(item.@issimpletype == "true") {
doctype = simpletypeicon;
}

return doctype;
}

private function treelabelfunc(item:object) : string
{
var node:xml = xml(item);
if( node.@isabstract == "true" )
return node.@name + "(abstract)";
else
return node.@name;
}

private function domainsclose(event:event):void {
cursormanager.setbusycursor();
selecteddomain=combobox(event.target).selecteditem;
getglobaltypesrpc.send();
}
]]>
</mx:script>

<mx:panel layout="absolute" left="0" right="0" bottom="0" top="0">

<mx:combobox id="domains" left="10" right="10" top="10" rowcount="7"
dataprovider="{domainlist}"
close="domainsclose(event);">
</mx:combobox>

<mx:label x="10" y="40" text="type" />
<mx:textinput y="38" right="10" left="81" editable="false"
id="type" />
<mx:textarea y="66" height="50" right="10" left="81" id="desc"
editable="false" horizontalscrollpolicy="auto" />
<mx:label x="7" y="67" text="description" />

<mx:tree id="tree" top="124" bottom="10" right="10" left="10"
labelfield="@name"
itemopen="itemopen(event)"
change="showdesc(event)"
verticalscrollpolicy="auto"
disclosureclosedicon="@embed(source='icons/expandall.gif')"
disclosureopenicon="@embed(source='icons/collapseall.gif')"
itemrenderer="niemtreeitemrenderer" iconfunction="treeiconfunc"
labelfunction="treelabelfunc">
</mx:tree>
</mx:panel>

</mx:application>
quote:

text

no, large tree, hitting default flash player timeout.

the default 15 seconds, can set high 60 seconds using property on application tag: scripttimelimit. see docs more info:
http://livedocs.macromedia.com/flex/2/langref/mx/core/application.html

tracy


More discussions in Flex (Read Only)


adobe

Comments

Popular posts from this blog

Thread: PKI Client 5.00 install (for eToken Pro)

ATmega2560-Arduino Pin Mapping

Crossfader Arduino Tutorial