package com.sksamuel.jqm4gwt.examples.dynotable;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Widget;
import com.sksamuel.jqm4gwt.JQMPage;
import com.sksamuel.jqm4gwt.button.JQMButton;
import com.sksamuel.jqm4gwt.form.elements.JQMSelect;
import com.sksamuel.jqm4gwt.layout.JQMTable;
public class DynTableUiBinder {
@UiField JQMSelect select;
@UiField JQMButton addBtn;
@UiField JQMTable table;
@UiField JQMButton cellBtn1;
@UiField JQMButton cellBtn2;
@UiField JQMButton cellBtn3;
private final JQMPage page;
interface DynTableUiBinderUiBinder extends UiBinder<JQMPage, DynTableUiBinder> {}
private static DynTableUiBinderUiBinder uiBinder = GWT.create(DynTableUiBinderUiBinder.class);
public DynTableUiBinder() {
page = uiBinder.createAndBindUi(this);
select.addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> event) {
int size = Integer.parseInt(select.getValue());
table.setColumns(size);
}});
addBtn.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
addCell();
}});
addCellBtnClickHandler(cellBtn1);
addCellBtnClickHandler(cellBtn2);
addCellBtnClickHandler(cellBtn3);
}
public JQMPage getPage() {
return page;
}
protected void addCell() {
JQMButton btn = new JQMButton("Remove me");
table.add(btn);
addCellBtnClickHandler(btn);
}
private void addCellBtnClickHandler(final JQMButton btn) {
btn.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Widget cell = btn.getParent();
table.remove(cell);
}});
}
}