public void finalizeGame() throws GameNotDoneException { switch (result) { case PLAYERAWIN: playerA.addWin(); playerB.addLoss(); case PLAYERBWIN: playerA.addLoss(); playerB.addWin(); case DRAW: playerA.addDraw(); playerB.addDraw(); case TBD: throw new GameNotDoneException(); default: throw new AssertionError(result.name()); } }
/** * Constructor for panel. * * @param state The state for this panel. */ public ResultStatePanel(final ResultState state) { Game game = state.getGame(); boolean success = game.getGoal().isWon(game); // set look setOpaque(true); // set layout setLayout(null); // add text label TextLabel textLabel = new TextLabel("ECMO Results"); textLabel.setHorizontalAlignment(JLabel.CENTER); textLabel.setFont(textLabel.getFont().deriveFont(Font.BOLD, 36f)); textLabel.setLocation(100, 16); textLabel.setSize(600, 40); add(textLabel); // add title label JLabel titleLabel = new JLabel(game.getName()); titleLabel.setFont(titleLabel.getFont().deriveFont(Font.BOLD, 18f)); titleLabel.setLocation(30, 120); titleLabel.setSize(720, 30); add(titleLabel); // add result overview InternetTextPane infoArea = new InternetTextPane(); infoArea.setDefaultFont(InternetTextPane.FONT_TYPE_SANS_SERIF); String html = ResultReporter.getHTMLOverview(game); if (game.getGoal() instanceof BaselineGoal) { BaselineGoal goal = (BaselineGoal) game.getGoal(); if (success) { html = goal.getInfoSuccess().replace("\\n", "<br>") + "<br><br><br>" + html; } else { html = goal.getInfoFailure().replace("\\n", "<br>") + "<br><br><br>" + html; } } infoArea.addHTML(html); infoArea.setOpaque(false); infoArea.setEditable(false); infoArea.setFont(titleLabel.getFont().deriveFont(Font.PLAIN, 14f)); infoArea.setLocation(30, 160); infoArea.setSize(580, 360); add(infoArea); // output overall result Image result = success ? ImageLoader.getInstance().getImage("conf/image/interface/result/success.png") : ImageLoader.getInstance().getImage("conf/image/interface/result/failure.png"); JLabel resultLabel = new JLabel(); resultLabel.setVerticalAlignment(JLabel.CENTER); resultLabel.setLocation(600, 100); resultLabel.setSize(200, 400); resultLabel.setIcon(new ImageIcon(result)); add(resultLabel); // add done button Image okButtonImage = ImageLoader.getInstance().getImage("conf/gui/Btn-Ok.png"); Image okButtonRolloverImage = ImageLoader.getInstance().getImage("conf/gui/Btn-OkRol.png"); Image okButtonSelectedImage = ImageLoader.getInstance().getImage("conf/gui/Btn-OkSel.png"); ImageButton okButton = new ImageButton(okButtonImage, okButtonRolloverImage, okButtonSelectedImage); okButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent arg0) { // proceed to the next state state.menuState(); } }); okButton.setSize(75, 30); okButton.setLocation(30, 530); add(okButton); }