package games.strategy.triplea.ui;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.FlowLayout;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import games.strategy.engine.framework.VerifiedRandomNumbers;
import games.strategy.engine.random.RemoteRandom;
import games.strategy.triplea.formatter.MyFormatter;
public class VerifiedRandomNumbersDialog extends JDialog {
private static final long serialVersionUID = 439577498545812164L;
public VerifiedRandomNumbersDialog(final Component parent) {
super(JOptionPane.getFrameForComponent(parent), "Verified Random Numbers", false);
init();
pack();
}
private void init() {
final List<VerifiedRandomNumbers> verified = RemoteRandom.getVerifiedRandomNumbers();
final String[][] tableValues = getTableValues(verified);
final DefaultTableModel model = new DefaultTableModel(tableValues, new String[] {"Reason", "Dice Rolls"}) {
private static final long serialVersionUID = 8876974698508561554L;
@Override
public boolean isCellEditable(final int row, final int column) {
return false;
}
};
final JTable table = new JTable(model);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);
final JPanel buttons = new JPanel();
buttons.setLayout(new FlowLayout(FlowLayout.CENTER));
getContentPane().add(buttons, BorderLayout.SOUTH);
final JButton close = new JButton("Close");
close.addActionListener(e -> setVisible(false));
buttons.add(close);
}
private String[][] getTableValues(final List<VerifiedRandomNumbers> verified) {
if (verified.isEmpty()) {
return new String[][] {{"", ""}};
}
final String[][] tableValues = new String[verified.size()][2];
for (int i = 0; i < verified.size(); i++) {
final VerifiedRandomNumbers number = verified.get(i);
tableValues[i][0] = number.getAnnotation();
tableValues[i][1] = MyFormatter.asDice(number.getValues());
}
return tableValues;
}
}