All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.barrybecker4.game.multiplayer.poker.ui.infopanel.PokerGeneralInfoPanel Maven / Gradle / Ivy

There is a newer version: 1.6
Show newest version
// Copyright by Barry G. Becker, 2012. Licensed under MIT License: http://www.opensource.org/licenses/MIT
package com.barrybecker4.game.multiplayer.poker.ui.infopanel;

import com.barrybecker4.game.common.GameContext;
import com.barrybecker4.game.common.GameController;
import com.barrybecker4.game.common.Move;
import com.barrybecker4.game.common.player.Player;
import com.barrybecker4.game.common.ui.panel.GeneralInfoPanel;

import javax.swing.border.TitledBorder;
import javax.swing.JPanel;
import java.awt.*;
import java.text.MessageFormat;


/**
 * Show general information about poker the game.
 *
 * @author Barry Becker
 */
class PokerGeneralInfoPanel extends GeneralInfoPanel {

    private JPanel commandPanel_;

    /**
     * Constructor
     */
    PokerGeneralInfoPanel(Player player, JPanel commandPanel) {
        super(player);
        commandPanel_ = commandPanel;
        setCommandPanelTitle(player);
    }

    /**
     * Set the appropriate text and color for the player label.
     */
    @Override
    public void setPlayerLabel(Player player) {

        String playerName = player.getName();
        playerLabel.setText(' ' + playerName + ' ');

        Color pColor = player.getColor();

        playerLabel.setBorder(getPlayerLabelBorder(pColor));

        if (commandPanel_ != null) {
            commandPanel_.setForeground(pColor);
            setCommandPanelTitle(player);
        }
        this.repaint();
    }

    private void setCommandPanelTitle(Player player) {
        Object[] args = {player.getName()};
        String title = MessageFormat.format(GameContext.getLabel("MAKE_YOUR_MOVE"), args);

        TitledBorder b = (TitledBorder)commandPanel_.getBorder();
        b.setTitle(title);
    }

    /**
     * implements the GameChangedListener interface.
     * This method called whenever a move has been made.
     */
    @Override
    public void update(GameController controller) {

        setPlayerLabel(controller.getCurrentPlayer());
        Move lastMove =  controller.getLastMove();
        if (lastMove != null)  {
            moveNumLabel.setText( (controller.getNumMoves() + 2) + " " );
        }
        else {
            moveNumLabel.setText( 1 + " " );
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy