If you want that clicking a button will show a visualization, then the onclick of the button should call query.send(handleQueryResponse), and start rolling the visualization. Is this what you mean?
On Wed, Aug 4, 2010 at 6:17 AM, beejon <[email protected]> wrote: > Hello... I have a basic Visualizations project comprised of a JSP and > servlet. The JSP is an HTML form allowing the user to query a DB and > build a datatable and annotated time with input variables. Everything > works fine if the JSP is requested (by browser). The JavaScript will > call the DispatcherServlet and the visualization is displayed as > expected. However, if the user makes a GET request by submitting the > <form action="/DispatcherServlet" method="get"> it calls the servlet > and only the JSON is returned to the browser. > > I am not correctly understanding how to manage the interaction of the > controller servlet getting / sending the datatable and javascript > instantiating an instance to get the datatable. I have tried adding > the datatable to the response and using the RequestDispatcher forward > method() but cannot figure it out. > > I appreciate any help or suggestions. Thanks. > > DispatcherServlet.java > ************************************************ > > public class DispatcherServlet extends DataSourceServlet { > @Override > protected void doGet(HttpServletRequest req, HttpServletResponse > resp) throws IOException { > DataSourceRequest dsRequest = null; > > try { > > dsRequest = new DataSourceRequest(req); > > QueryPair query = > DataSourceHelper.splitQuery(dsRequest.getQuery(), > Capabilities.SELECT); > > DataTable data = > generateDataTable(query.getDataSourceQuery(), req); > > DataTable newData = > DataSourceHelper.applyQuery(query.getCompletionQuery(), data, > dsRequest.getUserLocale()); > > DataSourceHelper.setServletResponse(newData, dsRequest, > resp); > > } catch (Exception e) { System.out.println(e); } > > } > > @Override > public DataTable generateDataTable(Query query, HttpServletRequest > req) { > > DataTable data = new DataTable(); > // MySQL query ... build data table > // req.getParameter("") is used to build the query > return data; > > } > } > > > index.jsp ************************************************ > > google.load('visualization', '1', {'packages': ['table', > 'annotatedtimeline']}); > google.setOnLoadCallback(init); > function init() { > var query = new google.visualization.Query('DispatcherServlet'); > query.send(handleQueryResponse); > } > > function handleQueryResponse(response) { > if (response.isError()) { > alert('Error in query: ' + response.getMessage() + ' ' + > response.getDetailedMessage()); > return; > } > var data = response.getDataTable(); > var table = new > google.visualization.Table(document.getElementById('table_div')); > table.draw(data); > } > > <form action="DispatcherServlet" method="get" > name="object_select"> ... </form> > <div id="table_div" style="width: 800px;height:300px;"></div> > > -- > 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.
