haxeui-core
haxeui-core copied to clipboard
ListView defined by XML doesn't renderer/behave the same when defined by code
Expected Behavior
Define a ListView by XML or Code should
- give the same visual renderer
- dispatch ItemEvent.COMPONENT_EVENT
Current Behavior
By code, the renderer is totally different and basic, ItemEvent.COMPONENT_EVENT isn't fired
Possible Solution
- autoload correct style by default on listView creation by code
- no solution for event not firing
Steps to Reproduce (for bugs)
XML:
<listview id="lv1" width="500" selectedIndex="0">
<item-renderer layoutName="horizontal" width="100%">
<label id="value" width="100%" />
</item-renderer>
<data>
<item value="item0" />
<item value="item1" />
<item value="item2" />
</data>
</listview>
Code:
typedef DataInfo =
{
var value:String;
}
var v:VBox = new VBox();
v.percentHeight = 100;
v.percentWidth = 100;
var ib = new Box();
ib.percentWidth = 100;
var lb = new Label();
lb.id = value;
lb.percentWidth = 100;
var ir = new ItemRenderer();
ir.percentWidth = 100;
ib.addComponent( lb);
ir.addComponent( ib );
lv1 = new ListView();
lv1.width = 500;
lv1.itemRenderer = ir;
var data = new ArrayDataSource<DataInfo>();
data.add( { value:"item1"} );
data.add( { value:"item2"} );
data.add( { value:"item3"} );
lv1.dataSource = data;
//lv1.registerEvent( ItemEvent.COMPONENT_EVENT, onItemChange);
v.addComponent( lv1 );
button1 = new Button();
button1.text="Annuler";
button1.registerEvent(MouseEvent.CLICK, onButton1);
v.addComponent( button1 );
addComponent(v);
lv1.onComponentEvent = function(e) {
trace(e.data);
}
Media
XML

Code

(sorry, I didn't capture the right XML version)
Test app / minimal test case
see below
Context
Trying to write an all in one hx file for better bug sharing (!)
Your Environment
OSX, hxWidget backend