Does your button reload the libraries or just resends the query ?


On Fri, Jul 9, 2010 at 4:35 AM, kawanka <[email protected]> wrote:

> Hello,
>
> I am using GWT and its visualization API wrapper. I am using GWT
> 2.1.0.M2 and gwt-visualization-1.1.0. Things work perfectly when I
> load my application for the first time, in the browser and click a
> button to load the visualization API and display it in the GUI.
> However it only works from the initial page load. If I navigate a bit
> and click the button again to re-load the data, I get a timeout
> error.
>
> If I use a google datasource like :
>
>
> http://spreadsheets.google.com/tq?key=pWiorx-0l9mwIuwX5CbEALA&range=A1:B12&gid=0&headers=-1
>
> My app can reload the content and never times out.
>
>
>
> Has anyone ever seen this before?
>
>
> I have a servlet which returns a string:
>
> Here is the servlet code :
>
>
> protected void doGet(HttpServletRequest request, HttpServletResponse
> response) throws ServletException, IOException {
>
> response.setContentType("application/json");
>
>
> response.getWriter().write("google.visualization.Query.setResponse({version:'0.6',reqId:'0',status:'ok',sig:'106459472',table:
> {cols:[{id:'A',label:'Source',type:'string',pattern:''},
> {id:'B',label:'Percent',type:'number',pattern:'#0.01%'}],rows:[{c:
> [{v:'This'},{v:0.37,f:'37.00%'}]},{c:[{v:'That'},{v:0.25,f:'25.00%'}]},
> {c:[{v:'The Other'},{v:0.23,f:'23.00%'}]},{c:[{v:'Thing'},{v:
> 0.06,f:'6.00%'}]},{c:[{v:'Biomass'},{v:0.04,f:'4.00%'}]},{c:
> [{v:'Hydro'},{v:0.03,f:'3.00%'}]},{c:[{v:'Solar Heat'},{v:
> 0.005,f:'0.50%'}]},{c:[{v:'Wind'},{v:0.003,f:'0.30%'}]},{c:
> [{v:'Geothermal'},{v:0.002,f:'0.20%'}]},{c:[{v:'Biofuels'},{v:
> 0.002,f:'0.20%'}]},{c:[{v:'Solar photovoltaic'},{v:
> 4.0E-4,f:'0.04%'}]}]}});");
>
> }
>
> I have another project: An eclipse GWT project which uses the
> visualization API wrapper to fetch this data source. The
> VerticalPanel's constructor looks like this :
>
>
> public AlertsListPanel() {
>        initWidget(uiBinder.createAndBindUi(this));
>        String dataUrl = "http://localhost:8080/TestServlet/Test";;
>        OnLoadAPIForTable onLoadCallback = new OnLoadAPIForTable(dataUrl);
>        VisualizationUtils.loadVisualizationApi(onLoadCallback,
> Table.PACKAGE);
> }
>
>
>
> The callback class looks like this :
>
>
>        private class OnLoadAPIForTable implements Runnable{
>                private StatusPopUp popUp;
>                private String url;
>
>                public OnLoadAPIForTable (String url){
>                        this.popUp = new StatusPopUp("Loading");
>                        this.url = url;
>                }
>
>                @Override
>                public void run(){
>              Query query = Query.create(url);
>
>              // Send the query.
>              query.send(new Callback() {
>                public void onResponse(QueryResponse response) {
>                  if (response.isError()) {
>                    Window.alert(response.getMessage());
>                    popUp.clean();
>                  } else {
>                    // Get the data from the QueryResponse.
>                    DataTable data = response.getDataTable();
>
>                    // Create the Options object.
>                    Options options = createTableOptions();
>
>                    // Create a PieChart and add it to a panel.
>                    Table tbl = new Table(data, options);
>                    tbl.addSelectHandler(createSelectHandler(tbl));
>                    dataVisualization.add(tbl);
>                    popUp.clean();
>                  }
>                }
>              });
>                }
>
>                private Table.Options createTableOptions() {
>                        Table.Options options = Table.Options.create();
>                        options.setAlternatingRowStyle(true);
>                        options.setHeight("400px");
>                        options.setWidth("800");
>                        options.setPage(Table.Options.Policy.ENABLE);
>                        options.setPageSize(10);
>                        return options;
>                }
>
>                private SelectHandler createSelectHandler(final Table chart)
> {
>                    return new SelectHandler() {
>                      @Override
>                      public void onSelect(SelectEvent event) {
>                        String message = "";
>
>                        // May be multiple selections.
>                        JsArray<Selection> selections =
> chart.getSelections();
>
>                        for (int i = 0; i < selections.length(); i++) {
>                          // add a new line for each selection
>                          message += i == 0 ? "" : "\n";
>
>                          Selection selection = selections.get(i);
>
>                          if (selection.isCell()) {
>                            // isCell() returns true if a cell has been
> selected.
>
>                            // getRow() returns the row number of the
> selected cell.
>                            int row = selection.getRow();
>                            // getColumn() returns the column number of the
> selected
> cell.
>                            int column = selection.getColumn();
>                            message += "cell " + row + ":" + column + "
> selected";
>                          } else if (selection.isRow()) {
>                            // isRow() returns true if an entire row has
> been
> selected.
>
>                            // getRow() returns the row number of the
> selected row.
>                            int row = selection.getRow();
>                            message += "row " + row + " selected";
>                          } else {
>                            // unreachable
>                            message += "Pie chart selections should be
> either row
> selections or cell selections.";
>                            message += "  Other visualizations support
> column
> selections as well.";
>                          }
>                        }
>
>                        Window.alert(message);
>                      }
>                    };
>                  }
>        }
>
> Thanks in advance for any suggestions on helping me understand this
> timeout issue.
>
> R.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google Visualization API" group.
> To post to this group, send email to
> [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-visualization-api%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-visualization-api?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-visualization-api?hl=en.

Reply via email to