This commit is contained in:
2014-07-07 13:53:58 +04:00
parent 9e4b7b0556
commit d1ef73c6f6
4 changed files with 13 additions and 29 deletions

View File

@@ -57,8 +57,8 @@
"views":[ "views":[
{ {
"id":"list", "type":"haxework.gui.list.VListView", "id":"list", "type":"haxework.gui.list.VListView",
"renderer":{ "factory":{
"type":"ru.m.armageddon.client.frames.person.PersonRenderer" "type":"~ru.m.armageddon.client.frames.person.PersonView"
}, },
"scroll":{ "scroll":{
"type":"haxework.gui.list.VScrollView", "type":"haxework.gui.list.VScrollView",

View File

@@ -1,7 +1,6 @@
package ru.m.armageddon.client.frames; package ru.m.armageddon.client.frames;
import haxework.frame.IFrameSwitcher; import haxework.frame.IFrameSwitcher;
import protohx.MessageUtils;
import ru.m.armageddon.proto.PersonSelectResponse; import ru.m.armageddon.proto.PersonSelectResponse;
import ru.m.armageddon.proto.PersonSelectRequest; import ru.m.armageddon.proto.PersonSelectRequest;
import haxework.gui.list.ListView; import haxework.gui.list.ListView;
@@ -13,15 +12,14 @@ import haxework.provider.Provider;
import ru.m.armageddon.proto.Person; import ru.m.armageddon.proto.Person;
import haxework.gui.list.VListView; import haxework.gui.list.VListView;
import haxework.gui.HGroupView; import haxework.gui.HGroupView;
import ru.m.armageddon.client.frames.person.PersonRenderer;
class PersonFrame extends HGroupView implements IPacketHandler implements ListViewListener<PersonView, Person> { class PersonFrame extends HGroupView implements IPacketHandler implements ListViewListener<Person> {
private static inline var TAG = "PersonFrame"; private static inline var TAG = "PersonFrame";
public static inline var ID = "person"; public static inline var ID = "person";
private var list:VListView<PersonView, Person>; private var list:VListView<Person>;
public function new() { public function new() {
super(); super();
@@ -37,7 +35,7 @@ class PersonFrame extends HGroupView implements IPacketHandler implements ListVi
Provider.get(IConnection).packetHandler = this; Provider.get(IConnection).packetHandler = this;
} }
public function onListItemClick(item:ListItem<PersonView, Person>):Void { public function onListItemClick(item:IListItemView<Person>):Void {
Provider.get(IConnection).send(new PersonSelectRequest().setPersonId(item.data.id)); Provider.get(IConnection).send(new PersonSelectRequest().setPersonId(item.data.id));
} }

View File

@@ -1,16 +0,0 @@
package ru.m.armageddon.client.frames.person;
import ru.m.armageddon.proto.Person;
import haxework.gui.list.VListView;
import haxework.gui.list.ListView;
class PersonRenderer implements IRenderer<VListView<PersonView, Person>, PersonView, Person> {
public function factory():ListItem<PersonView, Person> {
return {view:new PersonView()};
}
public function render(list:VListView<PersonView, Person>, item:ListItem<PersonView, Person>):Void {
item.view.person = item.data;
}
}

View File

@@ -1,13 +1,15 @@
package ru.m.armageddon.client.frames.person; package ru.m.armageddon.client.frames.person;
import haxework.gui.list.ListView.IListItemView;
import haxework.gui.LabelView; import haxework.gui.LabelView;
import ru.m.armageddon.proto.Person; import ru.m.armageddon.proto.Person;
import haxework.gui.skin.ColorSkin; import haxework.gui.skin.ColorSkin;
import haxework.gui.HGroupView; import haxework.gui.HGroupView;
class PersonView extends HGroupView { class PersonView extends HGroupView implements IListItemView<Person> {
public var person(default,set):Person; public var item_index(default, default):Int;
public var data(default, set):Person;
private var nameLabel:LabelView; private var nameLabel:LabelView;
@@ -21,9 +23,9 @@ class PersonView extends HGroupView {
addView(nameLabel); addView(nameLabel);
} }
private function set_person(value:Person):Person { private function set_data(value:Person):Person {
this.person = value; this.data = value;
nameLabel.text = this.person.name; nameLabel.text = this.data.name;
return this.person; return this.data;
} }
} }