/* 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.server; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import org.ojim.iface.IClient; import edu.kit.iti.pse.iface.IServer; public class TestClient implements IClient { @SuppressWarnings("unused") private IServer server; private int id = -1; private final JTextField var1, var2; private final JLabel res; private final JFrame frame; private TestClient client = this; public TestClient(final IServer server) { this.server = server; GridLayout experimentLayout = new GridLayout(0, 3); JPanel pane = new JPanel(); JPanel panel = new JPanel(); panel.setLayout(new GridLayout(5,5)); pane.setLayout(experimentLayout); frame = new JFrame("TestClient"); var1 = new JTextField(); pane.add(var1); var2 = new JTextField(); pane.add(var2); res = new JLabel("Result "); pane.add(res); JButton bt1 = new JButton("getNumberOfHousesLeft()"); bt1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { TestClient.this.setText("" + server.getNumberOfHousesLeft()); } }); panel.add(bt1); JButton bt2 = new JButton("getPlayerOnTurn()"); bt2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { TestClient.this.setText("" + server.getPlayerOnTurn()); } }); panel.add(bt2); JButton bt3 = new JButton("getNumberOfHotelsLeft()"); bt3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { TestClient.this.setText("" + server.getNumberOfHotelsLeft()); } }); panel.add(bt3); JButton bt4 = new JButton("setPlayerReady()"); bt4.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(id != -1) { TestClient.this.setText("Set ready!"); server.setPlayerReady(id); } } }); panel.add(bt4); JButton bt5 = new JButton("rollDices()"); bt5.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(id != -1) { TestClient.this.setText("Rolled Dice!"); server.rollDice(id); } } }); panel.add(bt5); JButton bt6 = new JButton("AddPlayer(this)"); bt6.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(id == -1) { id = server.addPlayer(client); TestClient.this.setText("Added Player, Id:" + id); TestClient.this.frame.setTitle("TestClient [id " + id + "]"); } } }); panel.add(bt6); JButton bt7 = new JButton("getPlayerPiecePosition"); bt7.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { TestClient.this.setText("Position:" + server.getPlayerPiecePosition(id)); } }); panel.add(bt7); JButton bt8 = new JButton("endTurn()"); bt8.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { TestClient.this.setText("Turn ended"); print("result = " +server.endTurn(id)); } }); panel.add(bt8); JButton bt9 = new JButton("accept()"); bt9.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { TestClient.this.setText("Accepted:" + server.accept(id)); } }); panel.add(bt9); JButton bt10 = new JButton("decline()"); bt10.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { TestClient.this.setText("Declined:" + server.decline(id)); } }); panel.add(bt10); JButton bt11 = new JButton("inf. roll"); bt11.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { while(true) { server.rollDice(id); server.endTurn(id); } } }); panel.add(bt11); frame.setLayout(new GridLayout(2,1)); frame.add(pane); frame.add(panel); frame.setSize(640, 360); frame.setVisible(true); var1.setText(""); var2.setText(""); } @Override public String getName() { return "Im a Test!"; } @Override public String getLanguage() { return "error"; } private String lbl; private void setText(String str) { lbl = str; res.setText("<html>" + lbl + "</html>"); } private void print(String out) { // lbl += "<br>" + out; // this.setText(lbl); // System.out.println(out); } @Override public void informStartGame(int[] ids) { print("informed: StartGame"); } @Override public void informTurn(int player) { print("informed: Turn" + (player == id ? " YOU!" : "")); } @Override public void informDiceValues(int[] diceValues) { print("informed: DiceValues" + diceValues[0] + " " + diceValues[1]); } @Override public void informCashChange(int player, int cashChange) { print("informed: CashChange Player:" + player + " Change:" + cashChange); } @Override public void informConstruct(int street) { print("informed: Construct Street:" + street); } @Override public void informDestruct(int street) { print("informed: Destruct Street:" + street); } @Override public void informMortgageToogle(int street) { print("informed: MortgageToogle Street:" + street); } @Override public void informCardPull(String text, boolean communityCard) { print("informed: CardPull Text:" + text + (communityCard ? "Community": "Event")); } @Override public void informBankruptcy() { print("informed: Bankrupty"); } @Override public void informMessage(String text, int sender, boolean privateMessage) { print("informed: Message Text:" + text + " Sender:" + sender + (privateMessage ? "private" : "")); } @Override public void informTrade() { print("informed: Trade"); } @Override public void informMove(int playerId, int position) { print("informed: Move Pos:" + position + " Player:" + playerId); } @Override public void informBuy(int player, int position) { print("informed: StreetBuy Player:" + player + " Field:" + position); } @Override public void informAuction(int auctionState) { print("informed: Auction state:" + auctionState); } @Override public void informNewPlayer(int playerId) { print("informed: new Player:" + playerId); } @Override public void informPlayerLeft(int playerId) { print("informed: Player left:" + playerId); } @Override public void informFreeParkingChange(int freeParkingField, int newPot) { print("informed: Free parking changed:" + freeParkingField + " to: " + newPot); } @Override public void informCanEndTurn(int player) { print("informed: Can end turn:" + player); } @Override public void informBuyEvent(int player, int position) { print("informed: Buy event:" + player + " @" + position); } @Override public void informGameOver(int player) { print("informed: Game over:" + player); } }