Thanks a lot.
On Mon, Aug 30, 2010 at 2:55 PM, MC Get Vizzy <[email protected]> wrote:
> Hi Gopalsamy. You are adding the same columns again and again as you loop
> over the rows. You should add the columns only once, and then loop over the
> rows to set the values, like this:
>
>
> private AbstractDataTable createTable(String xmldata) {
> DataTable data = DataTable.create();
>
> data.addColumn(ColumnType.STRING, "Year");
>
> // XML PARSE
> final Document xmlDoc = XMLParser.parse(xmldata);
> final Element root = xmlDoc.getDocumentElement();
> XMLParser.removeWhitespace(xmlDoc);
> final NodeList profiles = root.getElementsByTagName("DATA");
>
> int rowIndex = 0, columnIndex = -1;
>
> for (int j = 0; j < noofEmp; j++) {
> ++columnIndex;
> final Element emp = (Element)
> year.getElementsByTagName("INDIVIDUALS").item(j);
> final Element emp_name = (Element)
> emp.getElementsByTagName("NAME").item(0);
>
> data.addColumn(ColumnType.NUMBER,
> emp_name.getFirstChild().getNodeValue());
> }
> data.addRows(profiles.getLength());
> columnIndex = -1;
>
> for (int i = 0; i < profiles.getLength(); i++) {
> data.addRow();
> final Element year = (Element) profiles.item(i);
>
> int noofEmp =
> year.getElementsByTagName("INDIVIDUALS").getLength();
>
> data.setValue(rowIndex, ++columnIndex, year
>
> .getAttributeNode("YEAR").getValue());
> for (int j = 0; j < noofEmp; j++) {
> ++columnIndex;
> final Element emp = (Element)
> year.getElementsByTagName(
> "INDIVIDUALS").item(j);
> final Element emp_leave = (Element)
> emp.getElementsByTagName(
> "T_LEAVE").item(0);
> data.setValue(rowIndex, columnIndex,
> Integer.parseInt(emp_leave
>
> .getFirstChild().getNodeValue()));
> }
> rowIndex++;
> columnIndex = -1;
> }
> return data;
> }
>
> Or, if you know ahead of time that the only employees are Gopal, Shanthi
> and Senthi, you can skip the addColumn() loop and just do this:
>
>
> private AbstractDataTable createTable(String xmldata) {
> DataTable data = DataTable.create();
>
> data.addColumn(ColumnType.STRING, "Year");
>
> // XML PARSE
> final Document xmlDoc = XMLParser.parse(xmldata);
> final Element root = xmlDoc.getDocumentElement();
> XMLParser.removeWhitespace(xmlDoc);
> final NodeList profiles = root.getElementsByTagName("DATA");
>
> int rowIndex = 0, columnIndex = -1;
>
> data.addRows(profiles.getLength());
> for (int i = 0; i < profiles.getLength(); i++) {
> data.addRow();
> final Element year = (Element) profiles.item(i);
>
> int noofEmp =
> year.getElementsByTagName("INDIVIDUALS").getLength();
>
> data.setValue(rowIndex, ++columnIndex, year
>
> .getAttributeNode("YEAR").getValue());
> for (int j = 0; j < noofEmp; j++) {
> ++columnIndex;
> final Element emp = (Element)
> year.getElementsByTagName(
> "INDIVIDUALS").item(j);
> final Element emp_leave = (Element)
> emp.getElementsByTagName(
> "T_LEAVE").item(0);
> data.setValue(rowIndex, columnIndex,
> Integer.parseInt(emp_leave
>
> .getFirstChild().getNodeValue()));
> }
> rowIndex++;
> columnIndex = -1;
> }
> return data;
>
> }
>
> On Mon, Aug 30, 2010 at 8:59 AM, Gopalsamy Ponnuraj <
> [email protected]> wrote:
>
>> i faced issue of add columns in column chart dynamically.
>> My code is
>> private AbstractDataTable createTable(String xmldata) {
>> DataTable data = DataTable.create();
>>
>> data.addColumn(ColumnType.STRING, "Year");
>> data.addColumn(ColumnType.NUMBER, "Gopal","0");
>> data.addColumn(ColumnType.NUMBER, "Shanthi","1");
>> data.addColumn(ColumnType.NUMBER, "Senthil","2");
>>
>> // XML PARSE
>> final Document xmlDoc = XMLParser.parse(xmldata);
>> final Element root = xmlDoc.getDocumentElement();
>> XMLParser.removeWhitespace(xmlDoc);
>> final NodeList profiles =
>> root.getElementsByTagName("DATA");
>>
>> int rowIndex = 0, columnIndex = -1;
>>
>> //data.addRows(profiles.getLength());
>> for (int i = 0; i < profiles.getLength(); i++) {
>> data.addRow();
>> final Element year = (Element) profiles.item(i);
>>
>> int noofEmp =
>> year.getElementsByTagName("INDIVIDUALS").getLength();
>>
>> data.setValue(rowIndex, ++columnIndex, year
>>
>> .getAttributeNode("YEAR").getValue());
>> for (int j = 0; j < noofEmp; j++) {
>> ++columnIndex;
>> final Element emp = (Element)
>> year.getElementsByTagName(
>> "INDIVIDUALS").item(j);
>> final Element emp_leave = (Element)
>> emp.getElementsByTagName(
>> "T_LEAVE").item(0);
>> final Element emp_name = (Element)
>> emp.getElementsByTagName(
>> "NAME").item(0);
>>
>> //Window.alert("Num of Record"+noofEmp);
>> // data.addColumn(ColumnType.NUMBER, emp_name
>> //
>> .getFirstChild().getNodeValue());
>>
>> data.setColumnLabel(columnIndex,emp_name
>>
>> .getFirstChild().getNodeValue());
>>
>> //Window.alert("Name :
>> "+emp_name
>> //
>> .getFirstChild().getNodeValue());
>>
>> data.setValue(rowIndex, columnIndex,
>> Integer.parseInt(emp_leave
>>
>> .getFirstChild().getNodeValue()));
>> //Window.alert("row
>> Column"+data.getValueInt(rowIndex,
>> columnIndex));
>>
>> }
>> rowIndex++;
>> columnIndex = -1;
>> }
>> //Window.alert("Row Count ,Column
>> Count"+data.getNumberOfRows()+"
>> "+data.getNumberOfColumns());
>>
>>
>> return data;
>> }
>>
>> --
>> 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]<google-visualization-api%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-visualization-api?hl=en.
>
--
Thanks,
Regards
Gopalsamy Ponnuraj
Mobile: 9941399631
--
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.