Skip to content

Commit

Permalink
v1.057 12/26/2020
Browse files Browse the repository at this point in the history
#12 Changing Games To Win parameter should reload Match Panel and
GameTableWindowPanel
Cap "Games to Win" at 6.
Fix bug if no names set and announce match winner triggered.
  • Loading branch information
hsgarn committed Dec 27, 2020
1 parent c89c4e3 commit 0c23807
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 16 deletions.
6 changes: 6 additions & 0 deletions src/com/midsouthfoosball/foosobsplus/main/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -567,7 +567,13 @@ public void actionPerformed(ActionEvent e) {
}
private class SettingsSaveListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
int oldGamesToWin = settings.getGamesToWin();
parametersPanel.saveSettings(settings);
int newGamesToWin = settings.getGamesToWin();
if (oldGamesToWin != newGamesToWin) {
matchPanel.resizeGameTable();
gameTableWindowPanel.resizeGameTable();
}
JComponent comp = (JComponent) e.getSource();
Window win = SwingUtilities.getWindowAncestor(comp);
win.dispose();
Expand Down
21 changes: 16 additions & 5 deletions src/com/midsouthfoosball/foosobsplus/model/Match.java
Original file line number Diff line number Diff line change
Expand Up @@ -339,20 +339,31 @@ public int incrementScore(int teamNbr, String gameTime) {
public boolean incrementGameCount(Team team) {
team.incrementGameCount();
boolean matchWon = checkForMatchWin(team);
String name;
String name = null;
if(matchWon) {
clearMeatball();
if (settings.getAnnounceWinner()==1) {
boolean skipMatchWinnerDisplay = false;
if (team.getTeamName() == null || team.getTeamName().isEmpty()) {
if (team.getGoalieName().isEmpty()) {
name = team.getForwardName();
if (team.getGoalieName() == null || team.getGoalieName().isEmpty()) {
if (team.getForwardName() == null || team.getForwardName().isEmpty()) {
skipMatchWinnerDisplay = true;
} else {
name = team.getForwardName();
}
} else {
name = team.getForwardName() + ", " + team.getGoalieName();
if (team.getForwardName() == null || team.getForwardName().isEmpty()) {
name = team.getGoalieName();
} else {
name = team.getForwardName() + ", " + team.getGoalieName();
}
}
} else {
name = team.getTeamName();
}
writeMatchWinner(settings.getWinnerPrefix() + name + settings.getWinnerSuffix());
if (!skipMatchWinnerDisplay) {
writeMatchWinner(settings.getWinnerPrefix() + name + settings.getWinnerSuffix());
}
}
resetScores();
// resetGameCounts();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,13 @@ public class GameTableWindowPanel extends JPanel {
private int currentGameNumber = 1;
private int gameWinners[] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
private int maxGameCount = 5;
private Settings settings;

/**
* Create the panel.
*/
public GameTableWindowPanel(Settings settings) {
this.settings = settings;
this.maxGameCount = settings.getGamesToWin()*2-1;
setLayout(new MigLayout("", "[430.00]", "[80.00]"));
gameWinners = new int[maxGameCount];
Expand All @@ -59,7 +61,6 @@ public GameTableWindowPanel(Settings settings) {
gameTableColumnModel.getColumn(i).setPreferredWidth((int) (300/maxGameCount));
}
add(gameTable);

}
public void setTeams(String name1, String name2) {
gameTable.setValueAt(name1, 1, 0);
Expand All @@ -72,7 +73,10 @@ public void setMatchWinner(int matchWinner) {
this.matchWinner = matchWinner;
}
public void setTime(String time) {
gameTable.setValueAt(time, 3, currentGameNumber);
int gameNumber = currentGameNumber;
int maxGameNumber = settings.getGamesToWin()*2-1;
if (gameNumber > maxGameNumber) gameNumber = maxGameNumber;
gameTable.setValueAt(time, 3, gameNumber);
gameTable.repaint();
}
public void updateGameTable(String[] scoresTeam1, String[] scoresTeam2, String[] times, int currentGameNumber) {
Expand All @@ -84,6 +88,11 @@ public void updateGameTable(String[] scoresTeam1, String[] scoresTeam2, String[]
}
gameTable.repaint();
}
public void resizeGameTable() {
GameTableModel tableModel = new GameTableModel(settings.getGamesToWin()*2-1);
gameTable.setModel(tableModel);
maxGameCount = settings.getGamesToWin()*2-1;
}
public class GameTableCellRenderer extends DefaultTableCellRenderer
{
public GameTableCellRenderer() {
Expand Down
13 changes: 9 additions & 4 deletions src/com/midsouthfoosball/foosobsplus/view/MatchPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,11 @@ public MatchPanel(Settings settings) {

layoutComponents();
}
public void createNewGameTable() {
gameTable = new JTable(new GameTableModel(settings.getGamesToWin()*2-1));
gameTable.setDefaultRenderer(Object.class, new GameTableCellRenderer());
public void resizeGameTable() {
GameTableModel tableModel = new GameTableModel(settings.getGamesToWin()*2-1);
gameTable.setModel(tableModel);
maxGameCount = settings.getGamesToWin()*2-1;
return;
}
public void layoutComponents() {
setLayout(new GridBagLayout());
Expand Down Expand Up @@ -216,7 +218,10 @@ public void updateGameTime(String gameTime) {
lblGameTime.setText(gameTime);
}
public void setTime(String time) {
gameTable.setValueAt(time, 3, currentGameNumber);
int gameNumber = currentGameNumber;
int maxGameNumber = settings.getGamesToWin()*2-1;
if (gameNumber > maxGameNumber) gameNumber = maxGameNumber;
gameTable.setValueAt(time, 3, gameNumber);
gameTable.repaint();
}

Expand Down
22 changes: 17 additions & 5 deletions src/com/midsouthfoosball/foosobsplus/view/ParametersPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ of this software and associated documentation files (the "Software"), to deal
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
Expand Down Expand Up @@ -67,6 +68,9 @@ public class ParametersPanel extends JPanel {
private JTextField txtSide1Color;
private JTextField txtSide2Color;
private JButton btnSave;
private JButton btnCancel;
private JButton btnRestoreDefaults;
private final Integer maxGamesToWin = 6;

public ParametersPanel(Settings settings) throws IOException {

Expand Down Expand Up @@ -300,7 +304,7 @@ public ParametersPanel(Settings settings) throws IOException {
btnSave = new JButton("Save");
add(btnSave, "cell 1 20,alignx center");

JButton btnCancel = new JButton("Cancel");
btnCancel = new JButton("Cancel");
btnCancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JComponent comp = (JComponent) e.getSource();
Expand All @@ -310,7 +314,7 @@ public void actionPerformed(ActionEvent e) {
});
add(btnCancel, "cell 2 20,alignx center");

JButton btnRestoreDefaults = new JButton("Restore Defaults");
btnRestoreDefaults = new JButton("Restore Defaults");
btnRestoreDefaults.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
restoreDefaults(settings);
Expand All @@ -319,15 +323,17 @@ public void actionPerformed(ActionEvent arg0) {
btnRestoreDefaults.setHorizontalAlignment(SwingConstants.RIGHT);
add(btnRestoreDefaults, "cell 3 20,alignx center");
}

private void restoreDefaults(Settings settings) {
txtPointsToWin.setText(Integer.toString(settings.getDefaultPointsToWin()));
txtShotTime.setText(Integer.toString(settings.getDefaultShotTime()));
txtMaxWin.setText(Integer.toString(settings.getDefaultMaxWin()));
txtPassTime.setText(Integer.toString(settings.getDefaultPassTime()));
txtWinBy.setText(Integer.toString(settings.getDefaultWinBy()));
txtTimeOutTime.setText(Integer.toString(settings.getDefaultTimeOutTime()));
txtGamesToWin.setText(Integer.toString(settings.getDefaultGamesToWin()));
Integer checkValue = settings.getDefaultGamesToWin();
if (checkValue > maxGamesToWin) checkValue = maxGamesToWin;
txtGamesToWin.setText(Integer.toString(checkValue));
txtGameTime.setText(Integer.toString(settings.getDefaultGameTime()));
txtMaxTimeOuts.setText(Integer.toString(settings.getDefaultMaxTimeOuts()));
txtRecallTime.setText(Integer.toString(settings.getDefaultRecallTime()));
Expand Down Expand Up @@ -382,7 +388,13 @@ public void saveSettings(Settings settings) {
settings.setWinBy(Integer.parseInt(txtWinBy.getText()));
}
if (isValidInteger(txtGamesToWin.getText())) {
settings.setGamesToWin(Integer.parseInt(txtGamesToWin.getText()));
Integer checkValue = Integer.parseInt(txtGamesToWin.getText());
if (checkValue > maxGamesToWin) {
checkValue = maxGamesToWin;
JOptionPane.showMessageDialog(null,"Games To Win can not exceed " + maxGamesToWin + ". Setting to " + maxGamesToWin + ".");
}
txtGamesToWin.setText(Integer.toString(checkValue));
settings.setGamesToWin(Integer.parseInt(txtGamesToWin.getText()));
}
if (isValidInteger(txtMaxTimeOuts.getText())) {
settings.setMaxTimeOuts(Integer.parseInt(txtMaxTimeOuts.getText()));
Expand Down

0 comments on commit 0c23807

Please sign in to comment.