desktop/desktop-sample/src/main/java/cz/xelfi/quoridor/desktop/sample/KukTopComponent.java
branchdesktop
changeset 269 430ab68846fa
parent 268 13fe01081e23
     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;