A reminder that Royale emphasizes PAYG and has to live with DAYG (do as you 
go).  For PAYG reasons, the simplest ComboBox probably shouldn't have to 
support custom itemRenderers.  Some subclass is more than welcome to.  And I 
don't think anyone has done it yet so volunteers are welcome.

HTH,
-Alex

On 7/22/19, 11:12 AM, "Frost, Andrew" <[email protected]> wrote:

    Thanks - yes we can try that, the issue being that we don't want all combo 
box lists to appear the same way hence trying to have something embedded into 
each bit of mxml...  
    
    
    
    We'll take a proper look and see what we can get :-)
    
    cheers
    
    
    -----Original Message-----
    From: Yishay Weiss <[email protected]> 
    Sent: 22 July 2019 18:17
    To: [email protected]
    Subject: [EXTERNAL] RE: ComboBox list-item renderer
    
    Note that the overridden css is of ComboBoxList, which is by default the 
list created in runtime, not ComboBox, which is the button that creates the 
list.
    
    
    
    ________________________________
    From: Yishay Weiss <[email protected]>
    Sent: Monday, July 22, 2019 8:13:31 PM
    To: [email protected] <[email protected]>
    Subject: RE: ComboBox list-item renderer
    
    Actually, have you tried something like this in your css?
    
    ComboBoxList
    {
       IItemRenderer: ClassReference("com.ccc.myRenderer");
    }
    From: Yishay Weiss<mailto:[email protected]>
    Sent: Monday, July 22, 2019 8:08 PM
    Subject: RE: ComboBox list-item renderer
    
    Oh, it looks like you're one step ahead of me. Didn't read your mail 
carefully enough. I think you can safely open a bug, or try to write the bead 
yourself.
    
    From: Frost, Andrew<mailto:[email protected]>
    Sent: Monday, July 22, 2019 7:53 PM
    To: [email protected]<mailto:[email protected]>
    Subject: RE: ComboBox list-item renderer
    
    Thanks - yes, happy to adjust our code to that sort of format, but we 
continue to hit the issue that this is a renderer for a list, being set on the 
list, and we want to have a renderer for the list that's being created at 
runtime from the combo box.
    
    It might be that we can set the itemRenderer property of the list object as 
it's created by the combo box's view object, but this feels a little hacky and 
it would be nicer if we could accomplish this just via MXML or CSS..
    
    cheers
    
    
    -----Original Message-----
    From: Yishay Weiss <[email protected]>
    Sent: 22 July 2019 17:43
    To: [email protected]
    Subject: [EXTERNAL] RE: ComboBox list-item renderer
    
    Another option is to specify the renderer class as an mxml att [1]. 
ItemRenderers are not beads, so adding them to the beads list has no effect (it 
should actually cause an RTE).
    
    
    
    [1] 
https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Froyale-asjs%2Fblob%2Ff637c857122d56f838bab21314a11900ed0add8e%2Fexamples%2Froyale%2FTodoListSampleApp%2Fsrc%2Fmain%2Froyale%2Fsample%2Ftodo%2Fviews%2FTodoListView.mxml%23L169&amp;data=02%7C01%7Caharui%40adobe.com%7Cd3872c0a305540bd0c8d08d70ed0241a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636994159504560528&amp;sdata=zMXZrtGppirdF8kCbxK3nO4VjQaAULy2bK2SdcXn%2FvI%3D&amp;reserved=0
    
    
    
    ________________________________
    From: Carlos Rovira <[email protected]>
    Sent: Monday, July 22, 2019 6:32:27 PM
    To: [email protected] <[email protected]>
    Subject: Re: ComboBox list-item renderer
    
    Hi Andrew,
    
    for this one in Royale it use to be done in CSS. For example in tour de 
jewel for List we do:
    
    Source code in GitHub
    
<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Froyale-asjs%2Fblob%2Fdevelop%2Fexamples%2Froyale%2FTourDeJewel%2Fsrc%2Fmain%2Froyale%2FListPlayGround.mxml&amp;data=02%7C01%7Caharui%40adobe.com%7Cd3872c0a305540bd0c8d08d70ed0241a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636994159504560528&amp;sdata=trSVUXGoZpSb2duv9nvXZSk9kW69g%2BaEv%2Bq6spx9d6E%3D&amp;reserved=0>
    
    <j:List id="iconList" width="200" height="300" className="
    iconListItemRenderer" labelField="label">
    
    and in iconListItemRenderer you can find
    
    .iconListItemRenderer
    {
    IItemRenderer: ClassReference("itemRenderers.IconListItemRenderer");
    }
    
    but as well we should can do as inline in MXML, so if that does not work 
it's a bug to solve I think...
    
    HTH
    
    Carlos
    
    
    El lun., 22 jul. 2019 a las 17:14, Frost, Andrew (<[email protected]>)
    escribió:
    
    > Hi again
    >
    > Just in case someone's already done this and knows already how to set 
    > it
    > up: we want to have an itemRenderer for the ListView part of a 
    > ComboBox control, i.e. when you click on the ComboBox button and it 
    > creates the ListView, we need a custom renderer. Currently it's 
    > defaulting to StringItemRenderer (from the call [1] within the default 
    > ItemRendererClassFactory), but we want it instead to use the inline 
    > MXML [2].
    >
    > I'm hoping that we can set this up by adding a bead of some sort to 
    > the ComboBox element that will tell it what item renderer to use; all 
    > the item renderer examples I can find are just using a list view 
    > directly rather than being something that's set up via a ComboBox. So 
    > far we've created a custom View for the ComboBox and we are 
    > controlling the creation of the ListView, but this creation doesn't 
    > then set up any of the MXMLDescriptor values which are needed for this to 
work...
    >
    > Hope that makes sense. Don't worry if not, we'll get to the bottom of 
    > it, but I wondered if someone already had done this and knew how to do 
    > it :-)
    >
    > thanks
    >
    >    Andrew
    >
    >
    >
    > [1] Current way ItemRenderClassFactory selects the item renderer:
    > if (_strand is IItemRendererProvider && (_strand as
    > IItemRendererProvider).itemRenderer) { ... } else {
    >     var itemRendererClass:Class =
    > ValuesManager.valuesImpl.getValue(_strand, "iItemRenderer") as Class; 
    > <<<<< we're getting StringItemRenderer here
    >     if (itemRendererClass) { ... }
    >     else if (!MXMLDescriptor) { ... }
    >     <<< we want it to hit this point i.e. not get set up because it 
    > falls through and then uses the MXMLDescriptor value
    >
    > [2] Our code:
    >   <mx:ComboBox width="100" dataProvider="{val}" labelField="subval1">
    >     <mx:itemRenderer>
    >       <js:ItemRendererClassFactory>  <<<< was "fx:Component"
    >         <mx:HBox width="100%" horizontalScrollPolicy="off"> ... layout 
    > in here ...  </mx:HBox>
    >       </js:ItemRendererClassFactory>
    >     </mx:itemRenderer>
    >   </mx:ComboBox>
    >
    >
    >
    >
    >
    
    --
    Carlos Rovira
    
https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7Cd3872c0a305540bd0c8d08d70ed0241a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636994159504560528&amp;sdata=XM0FOjMnt9V1F12WJgOnO3z1sP8E5%2FR7%2BtOnB1UkGmE%3D&amp;reserved=0
    
    

Reply via email to