/* * Isomorphic SmartGWT web presentation layer * Copyright 2000 and beyond Isomorphic Software, Inc. * * OWNERSHIP NOTICE * Isomorphic Software owns and reserves all rights not expressly granted in this source code, * including all intellectual property rights to the structure, sequence, and format of this code * and to all designs, interfaces, algorithms, schema, protocols, and inventions expressed herein. * * If you have any questions, please email
. * * This entire comment must accompany any portion of Isomorphic Software source code that is * copied or moved from this file. */ package com.smartgwt.sample.showcase.client.shuttles; import com.smartgwt.client.data.DataSource; import com.smartgwt.client.data.DSCallback; import com.smartgwt.client.data.DSRequest; import com.smartgwt.client.data.DSResponse; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.layout.VLayout; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.form.fields.ShuttleItem; import com.smartgwt.client.widgets.form.fields.SubmitItem; import com.smartgwt.client.widgets.form.fields.events.ClickEvent; import com.smartgwt.client.widgets.form.fields.events.ClickHandler; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridRecord; import com.smartgwt.client.widgets.grid.events.SelectionUpdatedEvent; import com.smartgwt.client.widgets.grid.events.SelectionUpdatedHandler; import com.smartgwt.client.types.SelectionStyle; import com.google.gwt.core.client.EntryPoint; public class OneToManyShuttleSample implements EntryPoint { @Override public void onModuleLoad() { DataSource ds = DataSource.get("countrySQL_oneToManySample"); ListGrid countriesGrid = new ListGrid(); DynamicForm countryForm = new DynamicForm(); countryForm.setDataSource(ds); countryForm.disable(); TextItem countryNameItem = new TextItem("countryName"); ShuttleItem citiesItem = new ShuttleItem("cities"); citiesItem.setCanEdit(true); citiesItem.setValueField("cityId"); SubmitItem submitButtonItem = new SubmitItem(); submitButtonItem.setTitle("Save"); submitButtonItem.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { countryForm.saveData(new DSCallback() { @Override public void execute(DSResponse dsResponse, Object data, DSRequest dsRequest) { countriesGrid.invalidateCache(); } }); } }); countryForm.setFields(countryNameItem,citiesItem,submitButtonItem); countriesGrid.setDataSource(ds); countriesGrid.setAutoFetchData(true); countriesGrid.setHeight(200); countriesGrid.setShowResizeBar(true); countriesGrid.setSelectionType(SelectionStyle.SINGLE); countriesGrid.addSelectionUpdatedHandler(new SelectionUpdatedHandler() { @Override public void onSelectionUpdated(SelectionUpdatedEvent event) { ListGridRecord rec = countriesGrid.getSelectedRecord(); if (rec == null) { countryForm.clearValues(); countryForm.disable(); } else { countryForm.enable(); countryForm.editRecord(rec); } } }); VLayout vLayout = new VLayout(); vLayout.setWidth100(); vLayout.setHeight100(); vLayout.setMembers(countriesGrid, countryForm); vLayout.draw(); } }