1:
31: package ;
32:
33: import ;
34:
35:
40: public class TableReportData implements ReportData
41: {
42: private TableModel tableModel;
43: private int cursor;
44: private int rowMax;
45: private int rowMin;
46: private int cursorMaxPosition;
47:
48: public TableReportData(final TableModel tableModel)
49: {
50: this(tableModel, 0, tableModel.getRowCount());
51: }
52:
53: public TableReportData(final TableModel tableModel, final int start, final int length)
54: {
55: this.tableModel = tableModel;
56: this.rowMax = start + length;
57: this.rowMin = start;
58: this.cursorMaxPosition = length;
59: }
60:
61: public int getColumnCount() throws DataSourceException
62: {
63: return tableModel.getColumnCount();
64: }
65:
66: public boolean isReadable() throws DataSourceException
67: {
68: return cursor > 0 && cursor <= cursorMaxPosition ;
69: }
70:
71: public boolean setCursorPosition(final int row) throws DataSourceException
72: {
73: if (row > cursorMaxPosition)
74: {
75: return false;
76: }
77: else if (row < 0)
78: {
79: return false;
80: }
81: cursor = row;
82: return true;
83: }
84:
85:
93: public boolean isAdvanceable() throws DataSourceException
94: {
95: return cursor < cursorMaxPosition;
96: }
97:
98: public String getColumnName(final int column) throws DataSourceException
99: {
100: return tableModel.getColumnName(column);
101: }
102:
103: public Object get(final int column) throws DataSourceException
104: {
105: if (isReadable() == false)
106: {
107: throw new DataSourceException("Unable to read from datasource");
108: }
109: return tableModel.getValueAt(cursor - 1, column);
110: }
111:
112: public boolean next() throws DataSourceException
113: {
114: if (cursor >= cursorMaxPosition)
115: {
116: return false;
117: }
118:
119: cursor += 1;
120: return true;
121: }
122:
123: public void close() throws DataSourceException
124: {
125:
126: }
127:
128: public int getCursorPosition() throws DataSourceException
129: {
130: return cursor;
131: }
132: }