Skip to content

Instantly share code, notes, and snippets.

@maryokhin
Created July 9, 2013 08:21
Show Gist options
  • Save maryokhin/5955627 to your computer and use it in GitHub Desktop.
Save maryokhin/5955627 to your computer and use it in GitHub Desktop.
bug logging
package main.helper;
import main.Criterion;
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
/**
* custom class for criteria table
*/
public class CriteriaTable extends JTable {
public CriteriaTable(DefaultTableModel tm) {
setModel(tm);
setDefaultValues();
setRowHeight(20); // height set for spinners in cells
setAutoCreateRowSorter(false);
getTableHeader().setDefaultRenderer(new HeaderRenderer(this));
}
private void setDefaultValues() {
final TableColumnModel tcm = getColumnModel();
for (int j = 0; j < getRowCount(); j++) {
setValueAt(("Cr." + (j + 1)), j, 0);
}
for (int i = 1; i < tcm.getColumnCount(); i++) {
final TableColumn tc = tcm.getColumn(i); // custom spinner editor to all cells
tc.setCellEditor(new SpinnerEditor(this));
for (int j = 0; j < getRowCount(); j++) {
setValueAt(SpinnerValue.PLUS, j, i); // filling all cells with starting values
}
}
}
public Criterion getCriterionFromRow(int row) {
int[] values = new int[getColumnCount() - 1];
for (int i = 0; i < values.length; i++) {
values[i] = SpinnerValue.fromString((String) getCellEditor(row, i + 1).getCellEditorValue());
System.out.println("Spinner values:" + values[i]);
}
return new Criterion(values);
}
@Override
public Component prepareRenderer(final TableCellRenderer renderer, int row, int col) {
Component component = super.prepareRenderer(renderer, row, col);
if (col == 0) {
component = this.getTableHeader().getDefaultRenderer()
.getTableCellRendererComponent(this,
this.getValueAt(row, col), false, false, row, col);
}
return component;
}
private /**
* class to draw double headers
*/
class HeaderRenderer implements TableCellRenderer {
private final TableCellRenderer renderer;
public HeaderRenderer(JTable jTable1) {
renderer = jTable1.getTableHeader().getDefaultRenderer();
}
@Override
public Component getTableCellRendererComponent(
JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int col) {
return renderer.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, col);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment