/* 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.RightBar;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JPanel;
import org.ojim.client.gui.GUIClient;
import org.ojim.language.Localizer;
import org.ojim.logic.state.GameState;
import org.ojim.logic.state.Player;
public class PlayerInfoWindow extends JPanel {
private static final long serialVersionUID = -1462950038237596319L;
// hält PlayerInfoField playerInfoField;
private PlayerInfoField[] playerInfoFields;
private Localizer language;
private GUIClient gui;
public PlayerInfoWindow(GUIClient guiClient) {
gui = guiClient;
this.setLayout(new GridLayout(GameState.MAXIMUM_PLAYER_COUNT, 0));
playerInfoFields = new PlayerInfoField[GameState.MAXIMUM_PLAYER_COUNT];
/*
* for(int i = 0; i < MAX_PLAYERS; i++){ playerInfoFields[i] = new
* PlayerInfoField(null, 0, language); }
*/
/*
*
* Player player = new Player("Test 1", 5, 5, 1, 0); Player playerTwo =
* new Player("Test 2", 5, 5, 2, 1); Player playerThree = new
* Player("Test 3", 5, 5, 3, 2); Player playerFour = new
* Player("Test 4", 5, 5, 4, 3);
*
* addPlayer(player, 500); addPlayer(playerTwo, 501);
* addPlayer(playerThree, 399); addPlayer(playerFour, 222);
*/
// System.out.println("Alles müsste da sein.");
}
public void setLanguage(Localizer language) {
this.language = language;
for (int i = 0; i < GameState.MAXIMUM_PLAYER_COUNT; i++) {
try {
if (!playerInfoFields[i].isNull()) {
playerInfoFields[i].setLanguage(language);
}
} catch (NullPointerException e){
}
}
draw();
}
public void addPlayer(Player player) {
//System.out.println("addPlayer");
if (findPlayer(player) == -1) {
// System.out.println(player.getId()+" nicht gefunden");
for (int i = 0; i < GameState.MAXIMUM_PLAYER_COUNT; i++) {
if (playerInfoFields[i] == null) {
//System.out.println(player.getId()+" mit id "+i+" hinzugefügt");
playerInfoFields[i] = new PlayerInfoField(player, player.getBalance(),
language);
this.add(playerInfoFields[i]);
playerInfoFields[i].addMouseListener(playerMouseListener);
playerInfoFields[i].setName(i+"");
break;
}
}
}
draw();
}
private void draw() {
/*
this.removeAll();
this.revalidate();
this.setLayout(new GridLayout(GameState.MAXIMUM_PLAYER_COUNT, 0));
for (int i = 0; i < GameState.MAXIMUM_PLAYER_COUNT; i++) {
if (playerInfoFields[i] != null) {
playerInfoFields[i].addMouseListener(playerMouseListener);
playerInfoFields[i].setName(i+"");
this.add(playerInfoFields[i]);
}
//System.out.println("Player "+i+" wurde nun angeblich hinzugefügt!");
}*/
repaint();
}
MouseListener playerMouseListener = new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("Clicked on Player "+e.getComponent().getName());
gui.showTrade(Integer.parseInt(e.getComponent().getName()), false);
}
};
public void removePlayer(Player player) {
int i = findPlayer(player);
for (int j = i; j <= GameState.MAXIMUM_PLAYER_COUNT; j++) {
playerInfoFields[j] = playerInfoFields[j + 1];
}
playerInfoFields[GameState.MAXIMUM_PLAYER_COUNT] = null;
draw();
}
public void turnOn(Player player) {
for (int i = 0; i < GameState.MAXIMUM_PLAYER_COUNT; i++) {
if (playerInfoFields[i] != null && playerInfoFields[i].isOn()) {
playerInfoFields[i].turnOff();
break;
}
}
int i = findPlayer(player);
if (i != -1) {
playerInfoFields[i].turnOn();
}
draw();
}
public void changeCash(Player player, int newCashValue) {
int i = findPlayer(player);
if (i != -1) {
playerInfoFields[i].changeCash(newCashValue);
}
draw();
}
private int findPlayer(Player player) {
for (int i = 0; i < GameState.MAXIMUM_PLAYER_COUNT; i++) {
if (playerInfoFields[i] != null
&& playerInfoFields[i].isPlayer(player)) {
return i;
}
}
return -1;
}
public void setBancrupt(Player player) {
playerInfoFields[findPlayer(player)].setBancrupt();
}
}