0
私はannotatedtimelinesの問題を扱っています。 ユーザーがいるタブに応じてグラフを描画する必要があるため、タブが変更されたときに現在のグラフを消去して新しいデータを描画します。しかし、それを行う方法?AnnotatedTimeline gwt視覚化チャートのクリーニング方法
今のところ、すべての行を削除していますが、動作していません。 誰かが私を助けることができますか?ここ
はコードです:
...
//Creating Columns
dataTable.addColumn(ColumnType.DATETIME, "Time");
dataTable.addColumn(ColumnType.NUMBER, "Realtime Consumption");
dataTable.addColumn(ColumnType.NUMBER, "Historical Consumption");
//Create options
options.setDisplayAnnotations(false);
options.setDisplayZoomButtons(false);
options.setScaleType(AnnotatedTimeLine.ScaleType.FIXED);
options.setLegendPosition(AnnotatedTimeLine.AnnotatedLegendPosition.SAME_ROW);
options.setAllowRedraw(true);
options.setDisplayRangeSelector(false);
options.setFill(30);
//to parse the time
DateTimeFormat dtf = DateTimeFormat.getFormat("hh:mm:ss");
//For each item of the list
for(int i = 0; i < list.size(); i++){
//get date
Date date = new Date(list.getTimeAt(i));
//get hh:mm:ss
String time = date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();
//add row
dataTable.addRow();
dataTable.setValue(dataTable.getNumberOfRows() - 1, 0, dtf.parse(time));
dataTable.setValue(dataTable.getNumberOfRows() - 1, 2, list.getDataAt(i));
}
/**
* To clean the chart
*/
public void cleanChart(){
//Remove all rows
this.dataTable.removeRows(0, dataTable.getNumberOfRows());
//Redraw the chart
this.draw(this.dataTable, this.options);
}
おかげで、 マウリシオ
それは非常に奇妙ですが、私はそれをやった(私は別のデータテーブルを作成したいので、それは、OKと思われます)、まだ動作していません。古いデータはそこに続いています。
私はAnnotatedTimeLineを拡張するクラスを持ち、かつクリーンな方法は以下のようになります。
/**
* Method to clean the annotated time line
*/
public void clean() {
//Create new table
this.dataTable = DataTable.create();
//Create columns
this.dataTable.addColumn(ColumnType.DATETIME, "Time");
this.dataTable.addColumn(ColumnType.NUMBER, "Data 1");
this.dataTable.addColumn(ColumnType.NUMBER, "Data 2");
//Redraw the chart with the same options
this.draw(this.dataTable, this.options);
}
任意のアイデア?
ありがとうございます!
のようなものを持っている
this.dataTable.removeRows(0, dataTable.getNumberOfRows());
を行う必要はありません 'ます。public voidクリーン(){ //新しいテーブルを作成します。 DataTable dataTable = DataTable.create(); //列を作成 this.dataTable.addColumn(ColumnType.DATETIME、 "Time"); this.dataTable.addColumn(ColumnType.NUMBER、 "Data 1"); this.dataTable.addColumn(ColumnType.NUMBER、 "Data 2"); //同じオプションを使用してグラフを再描画します this.draw(dataTable、this.options); } ' – Munawar
まだ動作しません。 'public void clean(){ DataTable data = DataTable.create(); data.addColumn(ColumnType.DATETIME、 "Time"); data.addColumn(ColumnType.NUMBER、 "リアルタイム消費"); data.addColumn(ColumnType.NUMBER、 "Historical Consumption"); this.draw(data、this.options); this.dataTable = data; } ' – banduk
他にアイデアはありませんか? – banduk