scaleListModel = new AbstractTableModel() {
private static final long serialVersionUID = 2185335569490907099L;
public Class<?> getColumnClass(int col) {
if(col == 0){
return String.class;
}else{
return Double.class;
}
}
public int getColumnCount(){
return 3;
}
public int getRowCount(){
return 3;
}
public String getColumnName(int column) {
switch(column) {
case 0:
return " ";
case 1:
return "Scala assoluta";
case 2:
return "Scala relativa";
default:
return "";
}
}
public boolean isCellEditable(int row, int col) {
if(col == 2){
return true;
}
else{
return false;
}
}
public Object getValueAt(int row, int col) {
if(body!=null){
values1[0] = scaleAbsVector.x;
values1[1] = scaleAbsVector.y;
values1[2] = scaleAbsVector.z;
values2[0] = scaleRelVector.x;
values2[1] = scaleRelVector.y;
values2[2] = scaleRelVector.z;
}
if(col == 0)
return labels[row];
else if (col == 1)
return (Math.rint(values1[row]*1000))/1000;
else
return (Math.rint(values2[row]*1000))/1000;
}
public void setValueAt(Object value, int row, int col) {
if(body == null){
setWarningMessage("E' necessario selezionare un oggetto da scalare", Color.yellow);
return;
}
values2[row] = (Double)value;
scaleRelVector.set(values2[0], values2[1], values2[2]);
body.setRelativeScale(scaleRelVector);
updateScale();
fireTableCellUpdated(row, col);
}
};
scaleListTable = new JTable(scaleListModel);
scaleListTable.setSelectionForeground(Color.black) ;
scaleListTable.setShowHorizontalLines(false);
scaleListTable.setDefaultRenderer(Object.class, new PanelTableCellRenderer());
scaleListTable.setDefaultRenderer(Double.class, new PanelTableCellRenderer());
TableColumn column2 = scaleListTable.getColumnModel().getColumn(2);
column2.setCellEditor( new PanelTableCellEditor(scene3D));
TableColumn column0 = scaleListTable.getColumnModel().getColumn(0);
column0.setPreferredWidth(35);
scaleListTable.getColumnModel().setColumnSelection Allowed(true);
jScrollPane = new JScrollPane(scaleListTable);
jScrollPane.setBounds(new Rectangle(350,50,305,scaleListTable.getRowHeight() *4 + 2));
this.add(jScrollPane);