Cassa-DSU/src/puntocassa/MyTableModel.java

225 lines
5.7 KiB
Java

package puntocassa;
import javax.swing.table.AbstractTableModel;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Marco
*/
public class MyTableModel extends AbstractTableModel{
private String[] columnNames ;
private Object[][] data;
private Boolean editable=false;
private Boolean modificato=false;
private int[] colModificabile;
private int[] colBoolean;
private Object[]row;
public Double somma(int col) {
Double tot = 0.0;
if (data != null) {
for (int i = 0; i < data.length; i++) {
if (data[i][col] != null) {
tot = tot + Double.valueOf(data[i][col].toString());
}
}
}
return tot;
}
public int sommaInt(int col) {
int tot = 0;
if (data != null) {
for (int i = 0; i < data.length; i++) {
if (data[i][col] != null) {
tot = tot + (int) data[i][col];
}
}
}
return tot;
}
public Object[] getRow(int Row) {
row=data[Row];
return row;
}
public void addRow(Object[] rowData) {
Object[][] data2;
if (data != null) {
data2 = new Object[data.length+1][];
int r = 0;
for (int i = 0; i < data.length; i++) {
data2[r] = data[i];
r++;
}
data2[r] = rowData;
}else{
data2=new Object[1][];
data2[0] = rowData;
}
this.data = data2;
fireTableDataChanged();
}
public void setRow(Object[] row) {
Object[][] data2;
try {
data2 = new Object[data.length + 1][];
for (int i = 0; i < data.length; i++) {
data2[i] = data[i];
}
data2[data.length] = row;
this.data = data2;
} catch (Exception ex) {
}
}
public void deleteRow(int row) {
if (data.length > 0) {
Object[][] data2;
data2 = new Object[data.length - 1][];
int r=0;
for (int i = 0; i < data.length; i++) {
if (i != row) {
data2[r] = data[i];
r++;
}
}
this.data = data2;
this.fireTableDataChanged();
}
}
public int[] isColBoolean() {
return colBoolean;
}
public void setColBoolean(int[] colBoolean) {
this.colBoolean = colBoolean;
}
public int[] getColModificabile() {
return colModificabile;
}
public void setColModificabile(int[] colModificabile) {
this.colModificabile = colModificabile;
}
public Boolean isModificato() {
return modificato;
}
public void setModificato(Boolean modificato) {
this.modificato = modificato;
}
public Boolean isEditable() {
return editable;
}
public void setEditable(Boolean editable) {
this.editable = editable;
}
public void setColumname(String[] colnames){
columnNames=colnames;
}
public void setData(Object[][] rowdata){
data=rowdata;
}
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
int rows=0;
try{rows=data.length;}catch(Exception ex){}
return rows;
}
public String getColumnName(int col) {
return columnNames[col];
}
public Object getValueAt(int row, int col) {
try{
return data[row][col];
}catch(Exception ex){
return "";
}
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
@Override
public void setValueAt(Object value, int row, int col) {
if (colBoolean != null) {
for (int i = 0; i < colBoolean.length; i++) {
if (colBoolean[i] == col) {
//data[row][col] = value;
//fireTableCellUpdated(row, col);
return;
}
}
}
if (colModificabile != null) {
for (int i = 0; i < colModificabile.length; i++) {
if (colModificabile[i] == col) {
data[row][col] = value;
fireTableCellUpdated(row, col);
return;
}
}
} else {
data[row][col] = value;
fireTableCellUpdated(row, col);
return;
}
}
@Override
public boolean isCellEditable(int row, int col) {
if (editable) {
boolean M = false;
for (int i = 0; i < colModificabile.length; i++) {
if (col == colModificabile[i]) {
if (data[row][col].toString().equalsIgnoreCase("true") || data[row][col].toString().equalsIgnoreCase("false")) {
data[row][col] = !(Boolean) data[row][col];
} else {
}
M = true;
}
}
modificato = M;
return M;
} else {
return false;
}
}
}