Hello,

 

I built an extension to the tree component but I'm having problems when
adding it to the stage under a viewstack it tells me viewstack is not a
valid parent for that kind of item.

 

Heres the component below, Thanks:

 

package com.EIPTasks

{

                import mx.controls.Tree;

                import mx.controls.Button;

                import mx.events.ListEvent;

                import flash.events.MouseEvent;

                import mx.controls.Alert;

                import com.events.ObjectEvt;

                import flash.events.KeyboardEvent;

                import mx.events.CloseEvent;

                import mx.core.ClassFactory;

                import com.EIPTask.classes.TIRFolderLines;

                import mx.core.UIComponent;

                

                [Event(name="treeAddBtnEvt", type="
com.events.ObjectEvt")]

                [Event(name="treeDeleteBtnEvt", type="
com.events.ObjectEvt")]

                [Event(name="treeClickEvt", type="
com.events.ObjectEvt")]

                [Event(name="treeChangeEvt", type="
com.events.ObjectEvt")]

                

                public class EIPTree extends Tree

                {

                                

                                private var addButton:Button;

                                private var deleteButton:Button;

                                

                                [Inspectable] [Bindable] public var
treeType:String = ""; 

                                [Inspectable] [Bindable] public var
dataField:String = "@data"; 

                                

                                public function EIPTree():void

                                {

                                                super();

 
this.addEventListener(ListEvent.ITEM_CLICK, enableButtons);

                                                this.itemRenderer = new
ClassFactory(TIRFolderLines);

                                }

                                

                                protected override function
createChildren():void

                                {

                                                super.createChildren();

                                                

                                                // Create add Button

                                                addButton = new
Button();

                                                addButton.label = "Add";

                                                addButton.enabled =
false;

                                                addChild(addButton);

                                                

                                                // Create Delete Button

                                                deleteButton = new
Button();

                                                deleteButton.label =
"Delete";

                                                deleteButton.enabled =
false;

                                                addChild(deleteButton);

                                                

                                                // Event Listeners

 
addButton.addEventListener(MouseEvent.CLICK, addButton_clickHandler);

 
deleteButton.addEventListener(MouseEvent.CLICK,
deleteButton_clickHandler);

 
this.addEventListener(KeyboardEvent.KEY_DOWN, keyboard_keyHandler);

 
this.addEventListener(MouseEvent.CLICK, broadcast_clickHandler);

 
this.addEventListener(ListEvent.CHANGE, broadcast_changeHandler);

                                }

                                

                                protected override function
updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void

                                {

 
super.updateDisplayList(unscaledWidth, unscaledHeight-25);

 
deleteButton.setActualSize(unscaledWidth/2, 22);

            deleteButton.move(0, unscaledHeight-22);

            addButton.setActualSize(unscaledWidth/2, 22);

            addButton.move(unscaledWidth/2, unscaledHeight-22);

                                }

                                

                                private function
enableButtons(event:ListEvent):void

                                {

                                                addButton.enabled =
true;

                                                deleteButton.enabled =
true;

                                }

                                

                                private function
deleteConfirm(event:CloseEvent):void

                                {

                                                if(event.detail ==
Alert.YES)

                                                {

 
dispatchEventData("treeDeleteBtnEvt");

                                                }

                                }

                                

                                private function
dispatchEventData(type:String):void

                                {

                                                dispatchEvent(new
ObjectEvt(this.selectedItem[dataField], type));

                                }

                                

                                // Event Handlers

                                

                                private function
addButton_clickHandler(event:MouseEvent):void

                                {

 
dispatchEventData("treeAddBtnEvt");

                                }

                                

                                private function
deleteButton_clickHandler(event:MouseEvent):void

                                {

                                                Alert.show("Do you want
to delete this " + treeType + " ?", "Delete " + treeType + " (" +
[EMAIL PROTECTED] + ")", 3, this, deleteConfirm);

                                }

                                

                                private function
keyboard_keyHandler(event:KeyboardEvent):void

                                {

                                                if(event.keyCode == 46
&& this.selectedItem != null)

 
Alert.show("Do you want to delete this " + treeType + " ?", "Delete " +
treeType + " (" + [EMAIL PROTECTED] + ")", 3, this,
deleteConfirm);

                                                else if (event.keyCode
== 45 && this.selectedItem != null)

 
dispatchEventData("treeAddBtnEvt");

                                }

                                

                                private function
broadcast_clickHandler(event:MouseEvent):void

                                {

 
dispatchEventData("treeClickEvt");

                                }

                                

                                private function
broadcast_changeHandler(event:ListEvent):void

                                {

 
dispatchEventData("treeChangeEvt");

                                }

                                

                }

}

 



-----------------------------------------
Under Florida law, e-mail addresses are public records. If you do
not want your e-mail address released in response to a public
records request, do not send electronic mail to this entity.
Instead, contact this office by phone or in writing.

Reply via email to