desktop/desktop-sample/src/main/java/cz/xelfi/quoridor/desktop/sample/KukTopComponent.java
1.1 --- a/desktop/desktop-sample/src/main/java/cz/xelfi/quoridor/desktop/sample/KukTopComponent.java Tue Sep 14 09:58:04 2010 +0200
1.2 +++ b/desktop/desktop-sample/src/main/java/cz/xelfi/quoridor/desktop/sample/KukTopComponent.java Fri Sep 17 05:52:39 2010 -0700
1.3 @@ -19,6 +19,7 @@
1.4 package cz.xelfi.quoridor.desktop.sample;
1.5
1.6 import cz.xelfi.quoridor.webidor.Game;
1.7 +import cz.xelfi.quoridor.webidor.GameStatus;
1.8 import org.openide.util.NbBundle;
1.9 import org.openide.windows.TopComponent;
1.10 //import org.openide.util.ImageUtilities;
1.11 @@ -36,6 +37,7 @@
1.12 private static final String PREFERRED_ID = "KukTopComponent";
1.13
1.14 private String id;
1.15 + private String player;
1.16
1.17 public KukTopComponent() {
1.18 initComponents();
1.19 @@ -45,8 +47,15 @@
1.20 this.id = id;
1.21 final Game g = Quoridor.getDefault().getGame(id);
1.22 boardPane1.setBoard(g.getBoard());
1.23 - setName(
1.24 - NbBundle.getMessage(KukTopComponent.class, "CTL_KukTopComponent",
1.25 + player = currentPlayer(g);
1.26 + final boolean edit = Quoridor.getDefault().user().equals(player);
1.27 + boardPane1.setEditable(edit);
1.28 + setName(id);
1.29 + setHtmlDisplayName(
1.30 + edit ? NbBundle.getMessage(KukTopComponent.class, "CTL_GamePlay",
1.31 + g.getId().getWhite(), g.getId().getBlack()
1.32 + ) :
1.33 + NbBundle.getMessage(KukTopComponent.class, "CTL_Game",
1.34 g.getId().getWhite(), g.getId().getBlack()
1.35 )
1.36 );
1.37 @@ -56,6 +65,16 @@
1.38 )
1.39 );
1.40 }
1.41 +
1.42 + private static String currentPlayer(Game g) {
1.43 + if (g.getId().getStatus() == GameStatus.whiteMove) {
1.44 + return g.getId().getWhite();
1.45 + }
1.46 + if (g.getId().getStatus() == GameStatus.blackMove) {
1.47 + return g.getId().getBlack();
1.48 + }
1.49 + return null;
1.50 + }
1.51
1.52 /** This method is called from within the constructor to
1.53 * initialize the form.
1.54 @@ -72,6 +91,12 @@
1.55
1.56 org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(KukTopComponent.class, "KukTopComponent.jLabel1.text")); // NOI18N
1.57
1.58 + boardPane1.addBoardListener(new cz.xelfi.quoridor.visidor.BoardListener() {
1.59 + public void boardChanged(cz.xelfi.quoridor.visidor.BoardEvent evt) {
1.60 + boardPane1BoardChanged(evt);
1.61 + }
1.62 + });
1.63 +
1.64 jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/xelfi/quoridor/desktop/sample/black.png"))); // NOI18N
1.65 org.openide.awt.Mnemonics.setLocalizedText(jButton1, org.openide.util.NbBundle.getMessage(KukTopComponent.class, "KukTopComponent.jButton1.text")); // NOI18N
1.66 jButton1.addActionListener(new java.awt.event.ActionListener() {
1.67 @@ -119,6 +144,15 @@
1.68 setGameId(id);
1.69 }//GEN-LAST:event_jButton1ActionPerformed
1.70
1.71 + private void boardPane1BoardChanged(cz.xelfi.quoridor.visidor.BoardEvent evt) {//GEN-FIRST:event_boardPane1BoardChanged
1.72 + if (player != null) {
1.73 + Quoridor.getDefault().move(id, player, evt.getMove());
1.74 + setGameId(id);
1.75 + } else {
1.76 + boardPane1.setEditable(false);
1.77 + }
1.78 + }//GEN-LAST:event_boardPane1BoardChanged
1.79 +
1.80 // Variables declaration - do not modify//GEN-BEGIN:variables
1.81 private cz.xelfi.quoridor.visidor.BoardPane boardPane1;
1.82 private javax.swing.JButton jButton1;