/* * This program is free software; you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software * Foundation. * * You should have received a copy of the GNU Lesser General Public License along with this * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html * or from the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * Copyright (c) 2001 - 2013 Object Refinery Ltd, Pentaho Corporation and Contributors.. All rights reserved. */ package org.pentaho.reporting.engine.classic.demo.ancient.demo.world; import javax.swing.table.AbstractTableModel; /** * A sample data source for the JFreeReport Demo Application. * * @author David Gilbert */ public class CountryDataTableModel extends AbstractTableModel { /** * Storage for the data. */ private final Object[][] data; /** * Default constructor - builds the sample data source using incomplete (and possibly inaccurate) data for countries * of the world. */ public CountryDataTableModel() { data = new Object[23][4]; data[0] = new Object[]{"Morocco", "MA", "Africa", new Integer(29114497)}; data[1] = new Object[]{"South Africa", "ZA", "Africa", new Integer(40583573)}; data[2] = new Object[]{"China", "CN", "Asia", new Integer(1254400000)}; data[3] = new Object[]{"Iran", "IR", "Asia", new Integer(66000000)}; data[4] = new Object[]{"Iraq", "IQ", "Asia", new Integer(19700000)}; data[5] = new Object[]{"Australia", "AU", "Australia", new Integer(18751000)}; data[6] = new Object[]{"Austria", "AT", "Europe", new Integer(8015000)}; data[7] = new Object[]{"Belgium", "BE", "Europe", new Integer(10213752)}; data[8] = new Object[]{"Estonia", "EE", "Europe", new Integer(1445580)}; data[9] = new Object[]{"Finland", "FI", "Europe", new Integer(5171000)}; data[10] = new Object[]{"France", "FR", "Europe", new Integer(60186184)}; data[11] = new Object[]{"Germany", "DE", "Europe", new Integer(82037000)}; data[12] = new Object[]{"Hungary", "HU", "Europe", new Integer(10044000)}; data[13] = new Object[]{"Italy", "IT", "Europe", new Integer(57612615)}; data[14] = new Object[]{"Norway", "NO", "Europe", new Integer(4445460)}; data[15] = new Object[]{"Poland", "PL", "Europe", new Integer(38608929)}; data[16] = new Object[]{"Portugal", "PT", "Europe", new Integer(9918040)}; data[17] = new Object[]{"Spain", "ES", "Europe", new Integer(39669394)}; data[18] = new Object[]{"Sweden", "SE", "Europe", new Integer(8854322)}; data[19] = new Object[]{"Switzerland", "CH", "Europe", new Integer(7123500)}; data[20] = new Object[]{"Canada", "CA", "North America", new Integer(30491300)}; data[21] = new Object[]{"United States of America", "US", "North America", new Integer(273866000)}; data[22] = new Object[]{"Brazil", "BR", "South America", new Integer(165715400)}; } /** * Returns the number of rows in the table model. * * @return the row count. */ public int getRowCount() { return data.length; } /** * Returns the number of columns in the table model. * * @return the column count. */ public int getColumnCount() { return 4; } /** * Returns the class of the data in the specified column. * * @param column the column (zero-based index). * @return the column class. */ public Class getColumnClass(final int column) { if (column == 3) { return Integer.class; } else { return String.class; } } /** * Returns the name of the specified column. * * @param column the column (zero-based index). * @return the column name. */ public String getColumnName(final int column) { if (column == 0) { return "Country"; } else if (column == 1) { return "ISO Code"; } else if (column == 2) { return "Continent"; } else if (column == 3) { return "Population"; } else { return null; } } /** * Returns the data value at the specified row and column. * * @param row the row index (zero based). * @param column the column index (zero based). * @return the value. */ public Object getValueAt(final int row, final int column) { return data[row][column]; } }