Hallo zusammen,
ich kämpfe wieder mal mit GWT.
So sieht meine View aus:
Das ist der Aufruf in der Haupt-View:
Beim Debbugen ist das Object vorhanden, es wird jedoch nicht angezeigt.
Vielen Dank.
ich kämpfe wieder mal mit GWT.
So sieht meine View aus:
Java:
package client.views;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.TextBox;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.Record;
import com.smartgwt.client.data.fields.DataSourceIntegerField;
import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.widgets.Button;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.layout.HLayout;
import client.controller.PersonController;
import client.views.display.Display;
import tools.sql.SqlStringBuilder;
import java.util.List;
public final class PersonView extends Canvas implements Display {
private PersonController controller;
private HLayout searchLayout;
private TextBox txtPerson;
private Button btnSearch;
private Label lblMessage;
private DataSource personDS;
private ListGrid grid;
public PersonView(PersonController controller) {
super();
this.controller = controller;
this.init();
}
@Override
public void init() {
setWidth100();
setHeight100();
searchLayout = new HLayout();
searchLayout.setMembersMargin(3);
txtPerson = new TextBox();
searchLayout.addMember(txtPerson);
btnSearch = new Button("Suchen");
btnSearch.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
SqlStringBuilder query = new SqlStringBuilder();
query.appendSearchText("PERSON", txtPerson.getText());
controller.search(query.toString());
}
});
searchLayout.addMember(btnSearch);
addChild(searchLayout);
personDS = PersonXmlDS.getInstance();
grid = new ListGrid();
grid.setWidth100();
grid.setHeight("50%");
grid.setDataSource(personDS);
grid.setShowResizeBar(true);
grid.setAutoFetchData(true);
addChild(grid);
lblMessage = new Label();
addChild(lblMessage);
}
public void refreshData(List<Record> records) {
for (Record item : records) {
grid.addData(item);
}
}
public void setErrorMessage(String message) {
lblMessage.setText(message);
}
}
class PersonXmlDS extends DataSource {
private static PersonXmlDS instance = null;
public static PersonXmlDS getInstance() {
if (instance == null) {
instance = new PersonXmlDS("personDS");
}
return instance;
}
public PersonXmlDS(String id) {
setID(id);
DataSourceIntegerField pkField = new DataSourceIntegerField("ID");
pkField.setHidden(true);
pkField.setPrimaryKey(true);
DataSourceTextField personField = new DataSourceTextField("PERSON", "Person");
personField.setRequired(true);
setFields(pkField, personField);
setClientOnly(true);
}
}
Das ist der Aufruf in der Haupt-View:
Java:
public void addTab(String name, Canvas view) {
Tab tab = new Tab(name);
tab.setCanClose(true);
tab.setPane(view);
mainTabControl.addTab(tab);
}
Beim Debbugen ist das Object vorhanden, es wird jedoch nicht angezeigt.
Vielen Dank.