package org.traccar.web.client.view; import org.traccar.web.shared.model.Device; import com.google.gwt.core.client.GWT; import com.google.gwt.editor.client.Editor; import com.google.gwt.editor.client.SimpleBeanEditorDriver; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.user.client.ui.Widget; import com.sencha.gxt.widget.core.client.Window; import com.sencha.gxt.widget.core.client.event.SelectEvent; import com.sencha.gxt.widget.core.client.form.TextField; public class DeviceDialog implements Editor { private static DeviceDialogUiBinder uiBinder = GWT.create(DeviceDialogUiBinder.class); interface DeviceDialogUiBinder extends UiBinder { } private DeviceDriver driver = GWT.create(DeviceDriver.class); interface DeviceDriver extends SimpleBeanEditorDriver { } public interface DeviceHandler { public void onSave(Device device); } private DeviceHandler deviceHandler; @UiField Window window; @UiField TextField name; @UiField TextField uniqueId; public DeviceDialog(Device device, DeviceHandler deviceHandler) { this.deviceHandler = deviceHandler; uiBinder.createAndBindUi(this); driver.initialize(this); driver.edit(device); } public void show() { window.show(); } public void hide() { window.hide(); } @UiHandler("saveButton") public void onLoginClicked(SelectEvent event) { window.hide(); deviceHandler.onSave(driver.flush()); } @UiHandler("cancelButton") public void onRegisterClicked(SelectEvent event) { window.hide(); } }