package org.geogebra.desktop.main; import javax.swing.table.DefaultTableModel; import org.geogebra.common.main.App; import org.geogebra.common.main.SpreadsheetTableModel; /** * Desktop implementation of AbstractTableModel. To handle the abstract table * methods an instance of the Swing DefaultTableModel class is constructed. This * DefaultTableModel is used by the spreadsheet as the data model for MyTable * (an extended JTable). * * @author G. Sturr * */ public class SpreadsheetTableModelD extends SpreadsheetTableModel { private DefaultTableModel defaultTableModel; /** * Constructor * * @param app * application * @param rows * number of rows * @param columns * number of columns */ public SpreadsheetTableModelD(App app, int rows, int columns) { super(app); defaultTableModel = new DefaultTableModel(rows, columns); attachView(); isIniting = false; } /** * Gets the JTable table model. * * @return instance of Swing DefaultTableModel class */ public DefaultTableModel getDefaultTableModel() { return defaultTableModel; } @Override public int getRowCount() { return defaultTableModel.getRowCount(); } @Override public int getColumnCount() { return defaultTableModel.getColumnCount(); } @Override public void setRowCount(int rowCount) { defaultTableModel.setRowCount(rowCount); } @Override public void setColumnCount(int columnCount) { defaultTableModel.setColumnCount(columnCount); } @Override public Object getValueAt(int row, int column) { return defaultTableModel.getValueAt(row, column); } @Override public void setValueAt(Object value, int row, int column) { // update column count if needed if (column >= defaultTableModel.getColumnCount()) { defaultTableModel.setColumnCount(column + 1); } defaultTableModel.setValueAt(value, row, column); } @Override public boolean hasFocus() { return false; } @Override public boolean isShowing() { return false; } @Override public boolean suggestRepaint() { return false; // only for web } }