/* Copyright (C) 2010 - 2011 Fabian Neundorf, Philip Caroli, * Maximilian Madlung, Usman Ghani Ahmed, Jeremias Mechler * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.ojim.client.gui; import java.awt.GridLayout; import javax.swing.JLabel; import javax.swing.JPanel; import org.ojim.language.Localizer; import org.ojim.language.Localizer.TextKey; import org.ojim.logic.state.Player; /** * Das PlayerInfoField zeigt ob der Spieler aktiv ist, wie er heißt und wie viel * Geld er besitzt * * */ public class PlayerInfoField extends JPanel { private boolean isTurnedOn; private Player player; private int cash; private JLabel nameLabel; private JLabel activeLabel; private JLabel cashLabel; private Localizer language; /** * Der Konstruktor initialisiert das Feld * @param player Der Spieler der angezeigt wird * @param cash Sein anfänglicher geldbetrag * @param language Die Sprache in der das Feld angezeigt werden soll */ public PlayerInfoField(Player player, int cash, Localizer language) { this.language = language; this.player = player; isTurnedOn = false; this.cash = cash; draw(); } /** * Die Sprache wechseln * @param language die neue Sprache */ public void setLanguage(Localizer language) { this.language = language; draw(); } /** * Den Spielerstatus wechseln */ public void switchStatus() { isTurnedOn = !isTurnedOn; draw(); } /** * Das Feld zeichnen */ private void draw() { this.setBackground(PlayerColor.getBackGroundColor(player.getColor())); this.setBorder(getBorder()); activeLabel = new JLabel(language.getText(TextKey.OJIM)); nameLabel = new JLabel(this.player.getName()); cashLabel = new JLabel(this.cash + " " + language.getText(TextKey.CURRENCY)); // TODO Schriftfarbe, Schriftgröße // Eigener Layouter? this.setLayout(new GridLayout(0, 3)); this.add(activeLabel); this.add(nameLabel); this.add(cashLabel); // System.out.println("Player " + player.getId() + " gezeichnet."); } /** * Ist das Feld mit diesem Spieler besetzt? * @param player das Vergleichsobjekt * @return Wahr wenn die Spieler gleich sind */ public boolean isPlayer(Player player) { // TODO: Player Objekt eine richtige Equalsmethode übergeben? if (this.player.getId() == player.getId()) { return true; } else { return false; } } /** * Den Spieler anstellen */ public void turnOn() { isTurnedOn = true; draw(); } /** * Den Spieler ausstellen */ public void turnOff() { isTurnedOn = false; draw(); } /** * Ist der Spieler an? * @return wahr, wenn ja */ public boolean isOn() { return isTurnedOn; } /** * Setzt einen neuen Geldbetrag * @param newCashValue der neue Geldbetrag */ public void changeCash(int newCashValue) { cash = newCashValue; draw(); } /** * Ist dieses Feld gesetzt mit einem Spieler? * @return wahr wenn es so ist */ public boolean isNull() { if (player == Player.NullPlayer) { return true; } return false; } }