As a quick and dirty...

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
layout="vertical"
     xmlns:custom="Components.*">
     <mx:Script>
         <![CDATA[
             import mx.collections.ArrayCollection;

             [Bindable] private var staffArrColl:ArrayCollection;
         ]]>
     </mx:Script>
     <mx:Repeater id="myStaff" dataProvider="{staffArrColl}">
         <custom:CheckBoxComponent id="checkBoxs"
person="{Person(myStaff.currentItem)}" />
     </mx:Repeater>
</mx:Application>

CheckBoxComponent.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml";
creationComplete="onCreationComplete()">
     <mx:Script>
         <![CDATA[
             import ValueObjects.Person;

             public var person:Person;

             private function onCreationComplete():void
             {
                 // From person object make a remote object call to get
Modules and Queues
                 // When remote object calls return, create checkboxes
appropriately
             }
         ]]>
     </mx:Script>
</mx:VBox>

Person.as:
package ValueObjects
{
     [RemoteClass(alias="Classes.Testing.Person")]
     [Bindable]
     public class Person
     {
         //instance variables
         private var _name:String;
         private var _id:String;

         //accessor methods
         public function get name():String {return _name;}
         public function get id():String {return _id;}

         //mutator methods
         public function set name(name:String):void {_name = name;}
         public function set id(id:String):void {_id = id;}
     } // end class
}//end package

I have not included any remote object calls or result handlers. I'll
leave that up to you.

Keep in mind that Flex is object oriented. One of the ideas behind OOP
is encapsulation. If you can encapsulate all the properties and methods
of something and then repeat that, the possibilities are endless.


HTH



Steve

--- In flexcoders@yahoogroups.com, "postwick" <p...@...> wrote:
>
> Can you give me a brief example of code that would achieve the part
where you say "create a component"?
>
> Keep in mind the number of checkboxes and their labels is not static. 
There are three tables involved: staff, modules, and queues.  The
checkboxes are created dynamically from the records returned from the
modules and queues tables.
>
> --- In flexcoders@yahoogroups.com, "valdhor" valdhorlists@ wrote:
> >
> > I use repeaters quite a lot and like them.
> >
> > What I do is to create a component (Which sometimes contains other
components) and the repeat that.
> >
> > In your situation, I would create a component with all of your check
boxes and save button. This component would have all of the
functionality to display which check boxes are selected as well as the
save button click handler. It would also have a public property that
would take a data object. On creation complete of this component, it
would check the values of the data object and set the check boxes
appropriately.
> >
> > Then, I would repeat this component passing in the data objects
returned from the remote object call...
> >
> > <mx:Repeater id="myStaff" dataProvider="{staffArrColl}">
> > <custom:CheckBoxComponent id="checkBoxs"
person="{Person(myStaff.currentItem)}" />
> > </mx:Repeater>
> >
> >
> > HTH
> >
> >
> >
> > Steve
> >
> >
> > --- In flexcoders@yahoogroups.com, "postwick" <paul@> wrote:
> > >
> > > I don't like repeaters.  They are too clumsy.  The biggest
drawback is an inability to access values after the repeater has finish
executing.  It's not the same as, for example, looping over values and
generating static HTML using ColdFusion.  I seem to always end up having
to navigate up and down through the parents/children of the objects and
storing values I need in properties like name, automationName, etc. 
This is clumsy and messy.
> > >
> > > As an example, I have a section of my application where I want to
list the names of people from a table, and for each person generate a
set of checkboxes that designate access to certain areas of the
application.  For example: http://www.ubeek.com/images/staffrepeater.jpg
> > >
> > > That is one main repeater that loops through the staff (records
returned from remoteObject) and inside that repeater two other repeaters
(also from remoteObjects) that generate the checkboxes.
> > >
> > > I can't simply pass the primary key of the staff for which the
Save button was clicked, by putting
click="saveClick({staffRepeater.currentItem.SEQ})" into the button
object.  When I do that and click it I get an error about "repeater is
not currently executing" or something like that.
> > >
> > > I don't want to resort to a datagrid and then "click to edit" then
bring up a form kind of process.  I want it as few clicks as possible.
> > >
> > > Is there a better way to display data in a custom way like this,
without using repeaters, so that I can more easily access the child
objects and their properties?
> > >
> > > Thanks,
> > > Paul
> > >
> >
>

Reply via email to