[improve] add LoadingWrapper to GameListFrame
This commit is contained in:
@@ -17,6 +17,7 @@ import ru.m.puzzlez.view.PuzzleImageView;
|
|||||||
|
|
||||||
@:view("images") var imagesView:ActionDataView<ImageId, PuzzleImageView, Action>;
|
@:view("images") var imagesView:ActionDataView<ImageId, PuzzleImageView, Action>;
|
||||||
@:view("pages") var pagesView:DataView<Int, ToggleButtonView>;
|
@:view("pages") var pagesView:DataView<Int, ToggleButtonView>;
|
||||||
|
private var loading:LoadingWrapper;
|
||||||
|
|
||||||
@:provide var switcher:FrameSwitcher;
|
@:provide var switcher:FrameSwitcher;
|
||||||
@:provide var storage:GameStorage;
|
@:provide var storage:GameStorage;
|
||||||
@@ -26,15 +27,16 @@ import ru.m.puzzlez.view.PuzzleImageView;
|
|||||||
|
|
||||||
private var data(default, set):DataPage<ImageId>;
|
private var data(default, set):DataPage<ImageId>;
|
||||||
|
|
||||||
private function set_data(value) {
|
private function set_data(value:DataPage<ImageId>):DataPage<ImageId> {
|
||||||
data = value;
|
data = value;
|
||||||
imagesView.data = data.data;
|
imagesView.data = data.data;
|
||||||
pagesView.data = [for (i in 0...Std.int(data.total / data.page.count) + 1) i];
|
pagesView.data = [for (i in 0...Std.int((data.total - 1) / data.page.count) + 1) i];
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function new() {
|
public function new() {
|
||||||
super(ID);
|
super(ID);
|
||||||
|
loading = new LoadingWrapper(imagesView);
|
||||||
page = {index: 0, count: 6, order: [{key: "date", reverse: true}]};
|
page = {index: 0, count: 6, order: [{key: "date", reverse: true}]};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,7 +58,12 @@ import ru.m.puzzlez.view.PuzzleImageView;
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function refresh():Void {
|
private function refresh():Void {
|
||||||
storage.getIndexPage(page).then(data -> this.data = data);
|
data = {
|
||||||
|
page: page,
|
||||||
|
total: 0,
|
||||||
|
data: [],
|
||||||
|
};
|
||||||
|
loading.promise = storage.getIndexPage(page).then(data -> this.data = data);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function onAction(imageId:ImageId, action:Action):Void {
|
private function onAction(imageId:ImageId, action:Action):Void {
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ views:
|
|||||||
$type: haxework.view.data.ActionDataView
|
$type: haxework.view.data.ActionDataView
|
||||||
layout:
|
layout:
|
||||||
$type: haxework.view.layout.TailLayout
|
$type: haxework.view.layout.TailLayout
|
||||||
|
rowSize: 3
|
||||||
margin: 5
|
margin: 5
|
||||||
vAlign: middle
|
vAlign: middle
|
||||||
geometry.stretch: true
|
geometry.stretch: true
|
||||||
|
|||||||
Reference in New Issue
Block a user