Yahoo Json Services Sample (Smart GWT) : JSON « GWT « Java






Yahoo Json Services Sample (Smart GWT)

Yahoo Json Services Sample (Smart GWT)
   

/*
 * 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.DataSourceField;
import com.smartgwt.client.data.XJSONDataSource;
import com.smartgwt.client.data.fields.DataSourceImageField;
import com.smartgwt.client.data.fields.DataSourceIntegerField;
import com.smartgwt.client.data.fields.DataSourceLinkField;
import com.smartgwt.client.types.FieldType;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.form.SearchForm;
import com.smartgwt.client.widgets.form.fields.ButtonItem;
import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.widgets.grid.ListGrid;

import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
public class Showcase implements EntryPoint {
  public void onModuleLoad() {
    RootPanel.get().add(getViewPanel());
  }

  public Canvas getViewPanel() {

    Canvas canvas = new Canvas();

    Canvas yahooAttribution = new Canvas();
    yahooAttribution.setHeight(31);
    yahooAttribution.setContents("<a href='http://developer.yahoo.net/about'>"
        + "<img src='http://us.dev1.yimg.com/us.yimg.com/i/us/nt/bdg/websrv_88_1.gif' border='0'>"
        + "</a>");
    canvas.addChild(yahooAttribution);

    XJSONDataSource yahooDS = new XJSONDataSource();
    yahooDS
        .setDataURL("http://api.search.yahoo.com/ImageSearchService/V1/imageSearch?appid=YahooDemo&output=json");
    yahooDS.setRecordXPath("/ResultSet/Result");
    DataSourceImageField thumbnail = new DataSourceImageField("Thumbnail", "Thumbnail");
    thumbnail.setWidth(150);
    thumbnail.setImageHeight("imageHeight");
    thumbnail.setImageWidth("imageWidth");
    thumbnail.setValueXPath("Thumbnail/Url");

    DataSourceIntegerField imageWidth = new DataSourceIntegerField("imageWidth");
    imageWidth.setValueXPath("Thumbnail/Width");
    imageWidth.setAttribute("hidden", true);

    DataSourceIntegerField imageHeight = new DataSourceIntegerField("imageHeight");
    imageHeight.setValueXPath("Thumbnail/Height");
    imageHeight.setAttribute("hidden", true);

    DataSourceField title = new DataSourceField("Title", FieldType.TEXT);
    DataSourceField summary = new DataSourceField("Summary", FieldType.TEXT);

    DataSourceLinkField fullImage = new DataSourceLinkField("link", "Full Image");
    fullImage.setValueXPath("Url");
    fullImage.setAttribute("target", "_blank");

    yahooDS.addField(thumbnail);
    yahooDS.addField(imageWidth);
    yahooDS.addField(imageHeight);
    yahooDS.addField(title);
    yahooDS.addField(summary);
    yahooDS.addField(fullImage);

    final ListGrid grid = new ListGrid();
    grid.setTop(120);
    grid.setWidth100();
    grid.setHeight(300);
    grid.setWrapCells(true);
    grid.setFixedRecordHeights(false);
    grid.setShowAllRecords(true);
    grid.setAlternateRecordStyles(true);
    grid.setDataSource(yahooDS);

    final SearchForm form = new SearchForm();
    form.setTop(50);
    form.setNumCols(3);
    TextItem query = new TextItem();
    query.setName("query");
    query.setTitle("Query");
    query.setDefaultValue("snowboarding");

    ButtonItem button = new ButtonItem();
    button.setTitle("Search");
    button.setStartRow(false);
    button.addClickHandler(new ClickHandler() {
      public void onClick(ClickEvent event) {
        grid.fetchData(form.getValuesAsCriteria());
      }
    });

    form.setItems(query, button);

    canvas.addChild(form);
    canvas.addChild(grid);
    return canvas;

  }

}

   
    
    
  








SmartGWT.zip( 9,880 k)

Related examples in the same category

1.Class that acts as a client to a JSON service
2.DataSources can bind directly to JSON data where records appear as an Array of JavaScript Objects with field values (Smart GWT)DataSources can bind directly to JSON data where records appear as an Array of JavaScript Objects with field values (Smart GWT)
3.DataSources can extract field values from complex JSON structures via XPath expressions (Smart GWT)DataSources can extract field values from complex JSON structures via XPath expressions (Smart GWT)
4.Load json data to gridLoad json data to grid