purple-businessperson-14467
08/02/2022, 6:32 PMgifted-dream-38721
08/02/2022, 7:00 PMhaxeui-heaps
to work. I get the following errors after creating the project and attempting to run it:
C:\HaxeToolkit\haxe\lib\haxeui-heaps/1,4,0/haxe/ui/backend/TextDisplayImpl.hx:107: characters 14-23 : h2d.Text has no field lineBreak
C:\HaxeToolkit\haxe\lib\haxeui-heaps/1,4,0/haxe/ui/backend/TextDisplayImpl.hx:36: characters 49-58 : h2d.Text has no field lineBreak
C:\HaxeToolkit\haxe\lib\haxeui-heaps/1,4,0/haxe/ui/backend/TextDisplayImpl.hx:37: characters 24-33 : h2d.Text has no field lineBreak
C:\HaxeToolkit\haxe\lib\haxeui-heaps/1,4,0/haxe/ui/backend/TextInputImpl.hx:16: characters 19-28 : h2d.TextInput has no field lineBreak
This is using the latest version of Haxe, Heaps, and HaxeUI (all installed today).
Any ideas?bright-gpu-74537
08/02/2022, 7:18 PMbright-gpu-74537
08/02/2022, 7:19 PMgifted-dream-38721
08/02/2022, 7:20 PMbright-gpu-74537
08/02/2022, 7:48 PMpurple-businessperson-14467
08/02/2022, 7:50 PMbright-gpu-74537
08/02/2022, 7:50 PMItemEvent.COMPONENT_EVENT
when an interactive component is clicked or changed)bright-gpu-74537
08/02/2022, 7:55 PMpurple-businessperson-14467
08/02/2022, 7:56 PMbright-gpu-74537
08/02/2022, 7:56 PMthis.dataSource.removeAt(cast(event, haxe.ui.events.ItemEvent).itemIndex)
- but thats just for the xml. It seems the function it builds is just using a UIEvent, not the correct ItemEvent - but im going to fix thisbright-gpu-74537
08/02/2022, 7:56 PMpurple-businessperson-14467
08/02/2022, 7:56 PMpurple-businessperson-14467
08/02/2022, 7:57 PMpurple-businessperson-14467
08/02/2022, 7:58 PMpurple-businessperson-14467
08/02/2022, 7:58 PMbright-gpu-74537
08/02/2022, 7:58 PMMySuperCustomItemRenderer
you could do anything ofc (event wise)purple-businessperson-14467
08/02/2022, 7:59 PMbright-gpu-74537
08/02/2022, 8:41 PMUIEvent
), eg: http://haxeui.org/builder/?fzodaepurple-businessperson-14467
08/03/2022, 2:00 AMhaxe
class DeleteRenderer extends ItemRenderer {
public function new() {
super();
deleteBtn.onClick=(e)->{
Dialogs.messageBox('Deleting a note is permanent. Are you sure?', 'Question', 'yesno', true, (e) -> {
if (e == "{{yes}}") {
var event = new ItemEvent(ItemEvent.COMPONENT_EVENT, false, data);
//this.findAncestor(TableView).dataSource.remove(data); //worked!!
//btn.dispatch(new ItemEvent(event); //didntwork
//deleteBtn.dispatch(event); //didnt
this.findAncestor(TableView).dispatch(event); //worked
}
});
}
}
}
purple-businessperson-14467
08/03/2022, 2:29 AMhaxe
notesTable.onComponentEvent = (e:ItemEvent)->{
if (e.sourceEvent.target.id == "deleteBtn"){
notesTable.dataSource.remove(e.data);
}
}
bright-gpu-74537
08/03/2022, 6:31 AMthis.dispatch
best-agent-85158
08/03/2022, 7:06 AMbright-gpu-74537
08/03/2022, 7:15 AMbright-gpu-74537
08/03/2022, 7:33 AMbright-gpu-74537
08/03/2022, 7:37 AMbright-gpu-74537
08/03/2022, 7:37 AMhaxe
@:xml('
<item-renderer width="100%" layoutName="horizontal" autoRegisterInteractiveEvents="false">
<label id="myText" width="100%" verticalAlign="center" />
<button id="myAction" text="Remove" />
</item-renderer>
')
class MyCustomRenderer extends ItemRenderer {
@:bind(myAction, MouseEvent.CLICK)
private function onMyAction(event:MouseEvent) {
Dialogs.messageBox("You sure you want to delete?", "Confirm", MessageBoxType.TYPE_YESNO, function(button) {
if (button == DialogButton.YES) {
trace("DO DELETE", this.data);
var e = new ItemEvent(ItemEvent.COMPONENT_EVENT);
e.bubble = true;
e.source = event.target;
e.sourceEvent = event;
e.itemIndex = itemIndex;
e.data = _data;
dispatch(e);
}
});
}
}
bright-gpu-74537
08/03/2022, 7:38 AMxml
<listview id="myList" width="200" height="200">
<my-custom-renderer />
<data>
<item myText="Item 1" />
<item myText="Item 2" />
<item myText="Item 3" />
<item myText="Item 4" />
<item myText="Item 5" />
<item myText="Item 6" />
<item myText="Item 7" />
<item myText="Item 8" />
<item myText="Item 9" />
</data>
</listview>
bright-gpu-74537
08/03/2022, 7:38 AMhaxe
myList.onComponentEvent = function(e) {
trace("onComponentEvent - " + e.source.id);
myList.dataSource.removeAt(e.itemIndex);
}
bright-gpu-74537
08/03/2022, 7:41 AMMessageBoxType.TYPE_YESNO
and DialogButton.YES
rather than their string values, as these may change