package org.geogebra.desktop.gui.view.data;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.SystemColor;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import javax.swing.table.DefaultTableModel;
import org.geogebra.common.kernel.statistics.AlgoFrequencyTable;
import org.geogebra.desktop.main.AppD;
public class FrequencyTablePanel extends JPanel implements StatPanelInterface {
private static final long serialVersionUID = 1L;
protected AppD app;
// protected DataAnalysisViewD statDialog;
// private int mode;
protected StatTable statTable;
// private StatPanelSettings settings;
public FrequencyTablePanel(AppD app) {
this.app = app;
statTable = new StatTable(app);
this.setLayout(new BorderLayout());
this.add(statTable, BorderLayout.CENTER);
statTable.setBorder(BorderFactory.createMatteBorder(1, 0, 0, 0,
SystemColor.controlShadow));
setBorder(BorderFactory.createEmptyBorder());
}
public void setTableFromGeoFrequencyTable(AlgoFrequencyTable algo,
boolean useClasses) {
String[] strValue = algo.getValueString();
String[] strFrequency = algo.getFrequencyString();
String[] strHeader = algo.getHeaderString();
statTable.setStatTable(strValue.length, null, 2, strHeader);
DefaultTableModel model = statTable.getModel();
if (useClasses) {
for (int row = 0; row < strValue.length - 1; row++) {
model.setValueAt(strValue[row] + " - " + strValue[row + 1], row,
0);
model.setValueAt(strFrequency[row], row, 1);
}
} else {
for (int row = 0; row < strValue.length; row++) {
model.setValueAt(strValue[row], row, 0);
model.setValueAt(strFrequency[row], row, 1);
}
}
setTableSize();
}
private void setTableSize() {
Dimension d = statTable.getPreferredSize();
this.setPreferredSize(d);
int numRows = Math.min(8, statTable.getTable().getRowCount());
d.height = numRows * statTable.getTable().getRowHeight();
this.setMaximumSize(d);
statTable.revalidate();
updateFonts(app.getPlainFont());
}
@Override
public void updatePanel() {
// do nothing
}
@Override
public void updateFonts(Font font) {
statTable.updateFonts(font);
}
@Override
public void setLabels() {
// statTable.setLabels(null, getColumnNames());
}
}