package com.telcordia.xbt.refdata.client.testonly;

/*
 * Smart GWT (GWT for SmartClient)
 * Copyright 2008 and beyond, Isomorphic Software, Inc.
 *
 * Smart GWT is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License version 3
 * as published by the Free Software Foundation.  Smart GWT is also
 * available under typical commercial license terms - see
 * http://smartclient.com/license
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 */

import com.google.gwt.core.client.EntryPoint;
import com.smartgwt.client.types.Autofit;
import com.smartgwt.client.types.ListGridEditEvent;
import com.smartgwt.client.types.RowEndEditAction;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.IButton;
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.grid.ListGridField;
import com.smartgwt.client.data.Record;
import com.smartgwt.client.widgets.layout.VLayout;

public class CellSavedIssueSample implements EntryPoint {

    public void onModuleLoad() {

        CountryRecord[] data = new CountryRecord[]{
                new CountryRecord("US", "United States", 298444215),
                new CountryRecord("CH", "China", 1313973713),
                new CountryRecord("JA", "Japan", 127463611)
        };

        final ListGrid countryGrid = new ListGrid();
        countryGrid.setWidth(500);
        countryGrid.setAutoFitMaxRecords(6);
        countryGrid.setAutoFitData(Autofit.VERTICAL);
        countryGrid.setCanEdit(true);
        countryGrid.setEditEvent(ListGridEditEvent.CLICK);
        countryGrid.setListEndEditAction(RowEndEditAction.NEXT);

        ListGridField countryCodeField = new ListGridField("countryCode", "Country Code");
        ListGridField nameField = new ListGridField("countryName", "Country");
        ListGridField populationField = new ListGridField("population", "Population");

        countryGrid.setFields(countryCodeField, nameField, populationField);
        countryGrid.setData(data);

        countryGrid.addCellSavedHandler(new com.smartgwt.client.widgets.grid.events.CellSavedHandler() {   
			public void onCellSaved(com.smartgwt.client.widgets.grid.events.CellSavedEvent event) { 
				Record record = event.getRecord();
				SC.say("just saved cell:  " + record.getAttribute("countryCode"));
			}
		});  

        IButton button = new IButton("Edit New");
        button.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                countryGrid.startEditingNew();
            }
        });

        VLayout vLayout = new VLayout(20);
        vLayout.setLeft(50);
        vLayout.setTop(50);
        vLayout.addMember(countryGrid);
        vLayout.addMember(button);

        vLayout.draw();
    }

}