DrogoNevets
DrogoNevets

Reputation: 1575

Why can't I add my control bar to my panel

var panel:Panel = new Panel();
panel.title = source.displayValue + "-" + data.displayValue;
panel.percentWidth = 100;

var upButton:Button = new Button();
//  upButton.setStyle("icon", upIcon);

upButton.label="test";


var downButton:Button = new Button();
var closeButton:Button = new Button();

var controlBar:ControlBar = new ControlBar();
controlBar.addChild(upButton);
controlBar.addChild(downButton);
controlBar.addChild(closeButton);

controlBar.height = 50;

//panel.addChild(chart);
panel.addChild(controlBar);

I Have the above code, looking at all the examples I canf ind online I have done everything correctly, yet, i still dont have my control bar

when inspection the number of children each element has in eclipse, the control bar numChildren property goes up, but the panel doesn't so its as if its not getting added. Please help :|

Upvotes: 0

Views: 664

Answers (2)

a.s.t.r.o
a.s.t.r.o

Reputation: 3338

Flex 3 version of my previous answer:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" minWidth="955" minHeight="600">

    <mx:Script>
        <![CDATA[
            import mx.containers.ControlBar;
            import mx.containers.Panel;
            import mx.containers.VBox;
            import mx.controls.Label;

            protected function button_clickHandler(event:MouseEvent):void
            {
                var panel:Panel = new Panel();
                panel.title = "Hello Panel";
                panel.percentWidth = 100;

                var upButton:Button = new Button();
                upButton.label="upButton";
                var downButton:Button = new Button();
                downButton.label="downButton";
                var closeButton:Button = new Button();
                closeButton.label="closeButton";

                var controlBar:ControlBar = new ControlBar();
                controlBar.addChild(upButton);
                controlBar.addChild(downButton);
                controlBar.addChild(closeButton);

                var vBox:VBox = new VBox();
                vBox.percentWidth = 100;
                vBox.height = 100;
                var lbl:Label = new Label();
                lbl.text = "This is content";
                vBox.addChild(lbl);
                panel.addChild(vBox);

                panel.addChild(controlBar);
                addChild(panel);
            }
        ]]>
    </mx:Script>

    <mx:Button top="" label="createPanel" click="button_clickHandler(event)" />

</mx:Application>

Upvotes: 1

a.s.t.r.o
a.s.t.r.o

Reputation: 3338

If you are using flex 4 you can just specify the controlBarContent property on the panel:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">

    <fx:Script>
        <![CDATA[
            import spark.components.Panel;

            protected function button_clickHandler(event:MouseEvent):void
            {
                var panel:Panel = new Panel();
                panel.title = "Hello Panel";
                panel.percentWidth = 100;

                var upButton:Button = new Button();
                upButton.label="upButton";
                var downButton:Button = new Button();
                downButton.label="downButton";
                var closeButton:Button = new Button();
                closeButton.label="closeButton";

                panel.controlBarContent = [upButton, downButton, closeButton];
                addElement(panel);
            }
        ]]>
    </fx:Script>

    <s:Button label="createPanel" click="button_clickHandler(event)" />
</s:Application>

Hope that helps.

Upvotes: 1

Related Questions