package com.activequant.timeseries;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import com.activequant.trading.datamodel.AQTableDataBase;
/**
* Provides the table model for displaying a TSContainer2 in a VisualTable.
* Inject a different SimpleDateFormat to change the format of timestamps.
* Inject a TSContainer2 to display the information in it.
*
*
* @author GhostRider
*
*/
public class TSContainerViewer extends AQTableDataBase {
private static final long serialVersionUID = 1L;
private TSContainer2 container;
private SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
private Object[][] data = new Object[][] {};
private String[] header = new String[] {};;
public void setTSContainer2(TSContainer2 container) {
this.container = container;
data = new Object[container.getNumRows()][container.getNumColumns() + 1];
for (int row = 0; row < container.getNumRows(); row++) {
for (int col = 0; col < (container.getNumColumns()+1); col++) {
if (col == 0) {
data[row][col] = sdf.format(container.getTimeStamps()
.get(row).getCalendar().getTime());
} else {
data[row][col] = container.getColumns().get(col - 1)
.get(row);
}
}
}
List<String> headers = new ArrayList<String>();
headers.add("TimeStamp");
headers.addAll(container.getColumnHeaders());
header = headers.toArray(new String[] {});
super.fireTableStructureChanged();
}
@Override
public Object[][] getData() {
return data;
}
@Override
public String[] getHeader() {
return header;
}
public SimpleDateFormat getSdf() {
return sdf;
}
public void setSdf(SimpleDateFormat sdf) {
this.sdf = sdf;
}
}