Viz Kid --- You are definitely on the right track. It looks like the
package I am using expects to see strings only. This is the output I
get:

google.visualization.Query.setResponse
({version:'0.6',status:'ok',sig:'1758220977',table:{cols:
[{id:'Col0',label:'string',type:'string',pattern:''},
{id:'Col1',label:'number',type:'string',pattern:''}],rows:[{c:
[{v:'Memory'},{v:'80'}]},{c:[{v:'CPU'},{v:'55'}]},{c:[{v:'Network'},
{v:'68'}]}]}});

The first cloumn in the csv file is a string and the second is a
number. This is returning them both as strings.  The culprit seems to
be the CsvDataSourceHelper. I am using the code from the examples,
specifically CsvDataSourceServlet. In this code is the following
comments:

// Note: We assume that all the columns in the CSV file are text
columns. In cases where the
      // column types are known in advance, this behavior can be
overridden by passing a list of
      // ColumnDescription objects specifying the column types. See
CsvDataSourceHelper.read() for
      // more details.
      dataTable = CsvDataSourceHelper.read(reader, null, true,
requestLocale);

So it looks like I need to change the options from the
CsvDataSourceHelper. From the documentation the fields are defined as:

    reader - The CSV input Reader from which to read.
    columnDescriptions - The column descriptions. If
columnDescriptions is null, then it is assumed that all values are
strings, and the number of the columns is equal to the number of the
columns in the first line of the reader. If headerRow is set to true,
and the columnDescriptions does not contain the labels of the columns,
then the headerRow values are used as the column labels.
    headerRow - True if there is an header row. In that case, the
first line of the csv is taken as the header row.
    locale - An optional locale in which to parse the input csv file.
If null, uses the default from LocaleUtil#getDefaultLocale.

So it looks like the columnDescriptions needs to be changed to specify
the data types. I cannot seem to find an example of what the syntax
would look like for this code.

Can you show me what the syntax looks like or where I can look at an
example.

As you may have guess by now, I am not much of a java expert -- more
of a php guy  :-)

....George


On Nov 30, 8:20 am, Viz Kid <[email protected]> wrote:
> First, in order to make sure that the problem indeed lies with the second
> column type, you can look at the response itself and verify what are the
> returned column types (this should be in json format). If indeed both
> columns are strings, you need to look at your code which generates the
> DataTable from the csv file. Otherwise, the problem is someplace else.
>
> If you are using our external Java library to create the DataTable from the
> csv, you need to specify the the column types (this is not part of the csv
> file itself). The general documentation of the library is
> here<http://code.google.com/apis/visualization/documentation/dev/dsl_javad...>,
> you can look inside the package
> com.google.visualization.datasource.util<com/google/visualization/datasource/util/package-frame.html>
> , and specifically, the CsvDataSourceHelper <CsvDataSourceHelper.html> class
> which can construct the DataTable from the csv file/url. The read function
> also expects a the type for each of the columns.
>
> Hope it will work now,
>   Viz Kid.
>
> On Mon, Nov 30, 2009 at 3:01 PM, gman <[email protected]> wrote:
> > Thanks Viz Kid --- That would make sense. I just created the csv file
> > using the linux vi editor and saving as a .csv file.
>
> > Does it have to be created a special way?
>
> > I thought a csv file was just a text file with comma separating the
> > data fields, with each record on a new line. Am I missing something?.
>
> > On Nov 29, 5:26 pm, Viz Kid <[email protected]> wrote:
> > > Hi.
>
> > > Is it possible that the data table which is constructed from the csv has
> > > both columns type to be 'string' and not one 'string' and one 'number'?
> > If
> > > this is the case, the outcome is indeed that no gauge is being displayed.
>
> > > Viz Kid
>
> > > On Sun, Nov 29, 2009 at 2:26 PM, gman <[email protected]> wrote:
> > > > I just started playing with this yesterday and have run into a problem
> > > > I just cannot seem to get by.
>
> > > > Using the sample code for gauges I can display the gauges fine. When I
> > > > get the data from a csv file, no gauges are displayed. However if I
> > > > change to display a table, it displays just fine. The csv file looks
> > > > like this:
>
> > > > Label,Value
> > > > Memory,80
> > > > CPU,55
> > > > Network,68
>
> > > > This does work:
>
> > > > //    var data = response.getDataTable();
> > > >  var data = new google.visualization.DataTable();
> > > >         data.addColumn('string', 'Label');
> > > >         data.addColumn('number', 'Value');
> > > >         data.addRows(3);
> > > >         data.setValue(0, 0, 'Memory');//         data.setValue(0, 1,
> > > > 80);
> > > >         data.setValue(1, 0, 'CPU');//         data.setValue(1, 1,
> > > > 55);
> > > >         data.setValue(2, 0, 'Network');
> > > >         data.setValue(2, 1, 68);
>
> > > >        var chart = new google.visualization.Gauge
> > > > (document.getElementById('char
> > > > t_div'));
> > > >        chart.draw(data, null);
>
> > > > This does not work:
>
> > > >    var data = response.getDataTable();
> > > > // var data = new google.visualization.DataTable();
> > > > //         data.addColumn('string', 'Label');
> > > > //         data.addColumn('number', 'Value');
> > > > //         data.addRows(3);
> > > > //         data.setValue(0, 0, 'Memory');//         data.setValue(0,
> > > > 1, 80);
> > > > //         data.setValue(1, 0, 'CPU');//         data.setValue(1, 1,
> > > > 55);
> > > > //         data.setValue(2, 0, 'Network');
> > > > //         data.setValue(2, 1, 68);
>
> > > >        var chart = new google.visualization.Gauge
> > > > (document.getElementById('char
> > > > t_div'));
> > > >        chart.draw(data, null);
>
> > > > Yet --- Exactly the same code, but changing to a table does work:
>
> > > >    var data = response.getDataTable();
> > > > // var data = new google.visualization.DataTable();
> > > > //         data.addColumn('string', 'Label');
> > > > //         data.addColumn('number', 'Value');
> > > > //         data.addRows(3);
> > > > //         data.setValue(0, 0, 'Memory');//         data.setValue(0,
> > > > 1, 80);
> > > > //         data.setValue(1, 0, 'CPU');//         data.setValue(1, 1,
> > > > 55);
> > > > //         data.setValue(2, 0, 'Network');
> > > > //         data.setValue(2, 1, 68);
>
> > > >        var chart = new google.visualization.Table
> > > > (document.getElementById('char
> > > > t_div'));
> > > >        chart.draw(data, null);
>
> > > > Any ideas or suggestions?
>
> > > > --
>
> > > > 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]>
> > <google-visualization-api%[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]<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