Skip navigation
BBG112
Currently Being Moderated

No class registered for interface 'mx.styles::IStyleManager2'.

Jan 29, 2014 4:30 AM

when i run this code in flex3.2

<?xml version="1.0" encoding="utf-8"?>

<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300" creationComplete="init()">

<mx:Script>

<![CDATA[

import mx.controls.Alert;

import mx.co

[Bindable]

private var permissionsXML:XML =

<permissions>

  <permission pId="1" pName="Security Permissions" pParentID="0" checked="0">

  <permission pId="2" pName="User Create" pParentID="1" checked="0"/>

  <permission pId="3" pName="User Edit" pParentID="1" checked="0"/>

  <permission pId="4" pName="User Group Create" pParentID="1" checked="0"/>

  <permission pId="5" pName="User Group Edit" pParentID="1" checked="0">

      <permission pId="48" pName="Edit Group Members" pParentID="5" checked="0"/>

      <permission pId="49" pName="Edit Group Permissions" pParentID="5" checked="0"/>

  </permission>

</permission>

  <permission pId="11" pName="Content Permissions" pParentID="0" checked="0">

      <permission pId="12" pName="Content Create" pParentID="11" checked="0"/>

      <permission pId="13" pName="Content View" pParentID="11" checked="0"/>

      <permission pId="14" pName="Content Edit" pParentID="11" checked="0">

      <permission pId="54" pName="Edit Content Date" pParentID="14" checked="0"/>

      <permission pId="55" pName="Edit Content Creator" pParentID="14" checked="0"/>

      <permission pId="56" pName="Edit Content Status" pParentID="14" checked="0"/>

      <permission pId="58" pName="Edit Content Image" pParentID="14" checked="0"/>

      </permission>

  </permission>

</permissions>

          

 

private function save():void{

   //create an XMLList of all 'Permission' nodes whose 'checked'

   //attribute is set to 1...

   var xList:XMLList = permissionsXML.descendants().(@checked == "1");

   var str:String = new String();

   str = "The following permissions are checked.\n";

   //loop through xList and add the 'pDisplayName' attribute

   //to the string...     

   for (var x:uint=0; x < xList.length(); x++){

      str+=xList[x].@pName + "\n"; 

   }

   Alert.show(str);

}

]]>

</mx:Script>

    <mx:Button label="SAVE" click="save()"/>

    <mx:Tree id="trPermissions" dataProvider="{permissionsXML}"

        itemRenderer="PermissionsTreeItemRendererV2"

        showRoot="false"

        paddingTop="5"

        labelField="@pName"

        height="100%"

        width="300"

        backgroundAlpha="0"

        folderClosedIcon="{null}"

        folderOpenIcon="{null}"

        defaultLeafIcon="{null}"

        />

</mx:VBox>

 

 

Tree item renderer:

package

{

    import mx.controls.treeClasses.TreeItemRenderer;

    import flash.events.Event;

    import flash.events.MouseEvent;

    import mx.controls.CheckBox;

    import mx.controls.treeClasses.*;

 

    public class PermissionsTreeItemRendererV2 extends TreeItemRenderer{

        public var chk:CheckBox;

        public var itemXml:XML;

        public function PermissionsTreeItemRendererV2(){

            super();

            mouseEnabled = false;

        }

        override public function set data(value:Object):void{

            if(value != null){

                super.data = value;

               

                this.itemXml = XML(value);

                if(this.itemXml.@checked == "1"){

                    this.chk.selected = true;

                }else{

                    this.chk.selected = false;

                }

            }

        }

        override protected function createChildren():void{

            super.createChildren();

            chk = new CheckBox();

            chk.addEventListener(MouseEvent.CLICK, handleChkClick);

            addChild(chk);

        }

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

            super.updateDisplayList(unscaledWidth,unscaledHeight);

            if(super.data){

                var tld:TreeListData = TreeListData(super.listData);

                //In some cases you only want a checkbox to appear if an

 

                //item is a leaf

                //if so, then keep the following block uncommented,

                //otherwise you can comment it out to display the checkbox

 

                //for branch nodes

                if(tld.hasChildren){

                    this.chk.visible = false;

                }else{

                    //You HAVE to have the else case to set visible to true

                    //even though you'd think the default would be visible

                    //it's an issue with itemrenderers...

                    this.chk.visible = true;

                }

                if(chk.visible){

                    //if the checkbox is visible then

                    //reposition the controls to make room for checkbox

                    this.chk.x = super.label.x

                    super.label.x = this.chk.x + 17;

                    this.chk.y = super.label.y+8;

                }

            }

        }

              

        private function handleChkClick(evt:MouseEvent):void{

            if(this.chk.selected){

                //this.checked = true;

                this.itemXml.@checked = "1";

            }else{

                //this.checked = false;

                this.itemXml.@checked = "0";

            }

        }

    }

}

 
Replies

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points