orange-van-60470
12/01/2020, 5:50 PMorange-van-60470
12/01/2020, 5:51 PMorange-van-60470
12/01/2020, 5:52 PMbright-gpu-74537
12/01/2020, 5:52 PMbright-gpu-74537
12/01/2020, 5:53 PMbright-gpu-74537
12/01/2020, 5:53 PMorange-van-60470
12/01/2020, 5:56 PMorange-van-60470
12/01/2020, 5:57 PMorange-van-60470
12/01/2020, 5:58 PMorange-van-60470
12/01/2020, 5:58 PMorange-van-60470
12/01/2020, 5:59 PMbright-gpu-74537
12/01/2020, 5:59 PMorange-van-60470
12/01/2020, 6:01 PMorange-van-60470
12/01/2020, 6:02 PMorange-van-60470
12/01/2020, 6:04 PMbright-gpu-74537
12/01/2020, 6:05 PMorange-van-60470
12/01/2020, 6:05 PMbright-gpu-74537
12/01/2020, 6:05 PMorange-van-60470
12/01/2020, 6:06 PMbright-gpu-74537
12/01/2020, 6:07 PMorange-van-60470
12/01/2020, 6:18 PMorange-van-60470
12/01/2020, 6:19 PMbright-gpu-74537
12/01/2020, 6:20 PMbright-gpu-74537
12/01/2020, 6:20 PMbright-gpu-74537
12/01/2020, 6:20 PMxml
<vbox style="padding: 5px;">
<canvas width="100" height="100">
<data>
<box x="10" y="10" w="50" h="50">
</box>
<box x="20" y="20" w="30" h="30">
</box>
</data>
</canvas>
</vbox>bright-gpu-74537
12/01/2020, 6:21 PMbright-gpu-74537
12/01/2020, 6:22 PMbright-gpu-74537
12/01/2020, 6:22 PMhaxe
class Canvas extends Component implements IDataComponent {
private var _theCanvas:CanvasElement;
public function new() {
super();
}
private override function onReady() {
createCanvas();
invalidateComponent();
}
private override function validateComponentLayout() {
var b = super.validateComponentLayout();
if (_theCanvas != null && width > 0 && height > 0) {
_theCanvas.style.width = width + "px";
_theCanvas.style.height = height + "px";
}
return b;
}
private var _dataSource:DataSource<Dynamic> = null;
public var dataSource(get, set):DataSource<Dynamic>;
private function get_dataSource():DataSource<Dynamic> {
return _dataSource;
}
private function set_dataSource(value:DataSource<Dynamic>):DataSource<Dynamic> {
_dataSource = value;
draw();
return value;
}
private function draw() {
for (n in 0..._dataSource.size) {
var d = _dataSource.get(n);
trace(d);
}
}
private function createCanvas() {
if (_theCanvas != null) {
return;
}
_theCanvas = Browser.document.createCanvasElement();
this.element.appendChild(_theCanvas);
}
}orange-van-60470
12/01/2020, 6:23 PMbright-gpu-74537
12/01/2020, 6:24 PM