01: /*
02: * Copyright 2006-2007 Pentaho Corporation. All rights reserved.
03: * This software was developed by Pentaho Corporation and is provided under the terms
04: * of the Mozilla Public License, Version 1.1, or any later version. You may not use
05: * this file except in compliance with the license. If you need a copy of the license,
06: * please go to http://www.mozilla.org/MPL/MPL-1.1.txt.
07: *
08: * Software distributed under the Mozilla Public License is distributed on an "AS IS"
09: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. Please refer to
10: * the license for the specific language governing your rights and limitations.
11: *
12: * Additional Contributor(s): Martin Schmid gridvision engineering GmbH
13: */
14: package org.pentaho.reportdesigner.crm.report.datasetplugin.jdbc;
15:
16: import org.jetbrains.annotations.NotNull;
17: import org.pentaho.reportdesigner.crm.report.connection.ColumnInfo;
18:
19: import javax.swing.table.AbstractTableModel;
20: import java.util.ArrayList;
21:
22: /**
23: * User: Martin
24: * Date: 19.01.2006
25: * Time: 08:37:37
26: */
27: public class ReportDataTableModel extends AbstractTableModel {
28:
29: @NotNull
30: private ColumnInfo[] columnInfos;
31: @NotNull
32: private ArrayList<ArrayList<Object>> data;
33: @NotNull
34: private Class<?>[] columnClasses;
35:
36: public ReportDataTableModel(@NotNull
37: ColumnInfo[] columnInfos, @NotNull
38: ArrayList<ArrayList<Object>> data) {
39: this .columnInfos = columnInfos;
40: this .data = data;
41:
42: columnClasses = new Class<?>[columnInfos.length];
43: for (int i = 0; i < columnInfos.length; i++) {
44: columnClasses[i] = columnInfos[i].getColumnClass();
45: }
46: }
47:
48: @NotNull
49: public String getColumnName(int column) {
50: return columnInfos[column].getColumnName();
51: }
52:
53: @NotNull
54: public Class<?> getColumnClass(int columnIndex) {
55: return columnClasses[columnIndex];
56: }
57:
58: public int getRowCount() {
59: return data.size();
60: }
61:
62: public int getColumnCount() {
63: return columnInfos.length;
64: }
65:
66: @NotNull
67: public Object getValueAt(int rowIndex, int columnIndex) {
68: return data.get(rowIndex).get(columnIndex);
69: }
70: }
|