/*
* SmartGWT (GWT for SmartClient)
* Copyright 2008 and beyond, Isomorphic Software, Inc.
*
* SmartGWT 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. SmartGWT 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.
*/
package com.smartgwt.sample.showcase.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
import com.smartgwt.client.data.DSRequest;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.fields.DataSourceImageField;
import com.smartgwt.client.data.fields.DataSourceIntegerField;
import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.HTMLFlow;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.client.widgets.tile.TileGrid;
import com.smartgwt.client.widgets.tile.TileRecord;
import com.smartgwt.client.widgets.viewer.DetailViewerField;
public class Showcase implements EntryPoint {
public void onModuleLoad() {
RootPanel.get().add(getViewPanel());
}
public Canvas getViewPanel() {
TileGrid tileGrid = new TileGrid();
tileGrid.setWidth(500);
tileGrid.setHeight(400);
tileGrid.setTileWidth(150);
tileGrid.setTileHeight(150);
tileGrid.setCanAcceptDrop(true);
tileGrid.setCanDrag(true);
tileGrid.setData(new TileRecord[]{});
DetailViewerField pictureField = new DetailViewerField("picture");
pictureField.setType("image");
pictureField.setImageURLPrefix("animals/");
DetailViewerField commonNameField = new DetailViewerField("commonName");
tileGrid.setFields(pictureField, commonNameField);
ListGrid listGrid = new ListGrid();
listGrid.setWidth(300);
listGrid.setHeight(400);
listGrid.setDataSource(AnimalXmlDS.getInstance());
listGrid.setAutoFetchData(true);
listGrid.setCanDragRecordsOut(true);
listGrid.setCanAcceptDroppedRecords(true);
listGrid.setCanReorderRecords(true);
ListGridField commonNameField2 = new ListGridField("commonName");
ListGridField lifeSpanField = new ListGridField("lifeSpan");
lifeSpanField.setWidth(50);
ListGridField statusField = new ListGridField("status");
listGrid.setFields(commonNameField2, lifeSpanField, statusField);
VLayout vLayout = new VLayout(20);
vLayout.addMember(new HTMLFlow("DESCRIPTION"));
HLayout hLayout = new HLayout(10);
hLayout.addMember(listGrid);
hLayout.addMember(tileGrid);
vLayout.addMember(hLayout);
return vLayout;
}
}
class AnimalXmlDS extends DataSource {
private static AnimalXmlDS instance = null;
public static AnimalXmlDS getInstance() {
if (instance == null) {
instance = new AnimalXmlDS("animalDS");
}
return instance;
}
public AnimalXmlDS(String id) {
setID(id);
setRecordXPath("/List/Object");
DataSourceTextField commonNameField = new DataSourceTextField("commonName", "Animal");
DataSourceTextField scientificName = new DataSourceTextField("scientificName", "Scientific Name");
scientificName.setRequired(true);
scientificName.setPrimaryKey(true);
DataSourceIntegerField lifeSpanField = new DataSourceIntegerField("lifeSpan", "Life Span");
DataSourceTextField statusField = new DataSourceTextField("status", "Endangered Status");
statusField.setValueMap("Threatened", "Endangered", "Not Endangered", "Not currently listed",
"May become threatened","Protected");
DataSourceTextField dietField = new DataSourceTextField("diet", "Diet");
DataSourceTextField infoField = new DataSourceTextField("information", "Interesting Facts");
infoField.setLength(1000);
DataSourceImageField pictureField = new DataSourceImageField("picture", "Picture");
pictureField.setImageURLPrefix("animals/");
setFields(commonNameField, scientificName, lifeSpanField, statusField, dietField, infoField, pictureField);
setDataURL("ds/test_data/animals.data.xml");
setClientOnly(true);
}
protected Object transformRequest(DSRequest dsRequest) {
return super.transformRequest(dsRequest);
}
}
SmartGWT.zip( 9,880 k)