desktop/desktop-sample/src/main/java/cz/xelfi/quoridor/desktop/sample/KukTopComponent.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Mon, 13 Sep 2010 21:02:55 +0200
branchdesktop
changeset 261 cf7e6b8259e1
parent 260 8ebffb5aa10e
child 268 13fe01081e23
permissions -rw-r--r--
Adding images for black and white
     1 /*
     2  * To change this template, choose Tools | Templates
     3  * and open the template in the editor.
     4  */
     5 package cz.xelfi.quoridor.desktop.sample;
     6 
     7 import cz.xelfi.quoridor.webidor.Game;
     8 import org.openide.util.NbBundle;
     9 import org.openide.windows.TopComponent;
    10 //import org.openide.util.ImageUtilities;
    11 import org.netbeans.api.settings.ConvertAsProperties;
    12 
    13 /**
    14  * Top component which displays the board.
    15  */
    16 @ConvertAsProperties(dtd = "-//cz.xelfi.quoridor.desktop.sample//Kuk//EN",
    17 autostore = false)
    18 public final class KukTopComponent extends TopComponent {
    19 
    20     /** path to the icon used by the component and its open action */
    21 //    static final String ICON_PATH = "SET/PATH/TO/ICON/HERE";
    22     private static final String PREFERRED_ID = "KukTopComponent";
    23 
    24     private String id;
    25 
    26     public KukTopComponent() {
    27         initComponents();
    28     }
    29     
    30     public void setGameId(String id) {
    31         this.id = id;
    32         final Game g = Quoridor.getDefault().getGame(id);
    33         boardPane1.setBoard(g.getBoard());
    34         setName(
    35             NbBundle.getMessage(KukTopComponent.class, "CTL_KukTopComponent",
    36                 g.getId().getWhite(), g.getId().getBlack()
    37             )
    38         );
    39         setToolTipText(
    40             NbBundle.getMessage(KukTopComponent.class, "HINT_KukTopComponent",
    41                 g.getId().getWhite(), g.getId().getBlack()
    42             )
    43         );
    44     }
    45 
    46     /** This method is called from within the constructor to
    47      * initialize the form.
    48      * WARNING: Do NOT modify this code. The content of this method is
    49      * always regenerated by the Form Editor.
    50      */
    51     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    52     private void initComponents() {
    53 
    54         jLabel1 = new javax.swing.JLabel();
    55         boardPane1 = new cz.xelfi.quoridor.visidor.BoardPane();
    56         jButton1 = new javax.swing.JButton();
    57         jButton2 = new javax.swing.JButton();
    58 
    59         org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(KukTopComponent.class, "KukTopComponent.jLabel1.text")); // NOI18N
    60 
    61         jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/xelfi/quoridor/desktop/sample/black.png"))); // NOI18N
    62         org.openide.awt.Mnemonics.setLocalizedText(jButton1, org.openide.util.NbBundle.getMessage(KukTopComponent.class, "KukTopComponent.jButton1.text")); // NOI18N
    63         jButton1.addActionListener(new java.awt.event.ActionListener() {
    64             public void actionPerformed(java.awt.event.ActionEvent evt) {
    65                 jButton1ActionPerformed(evt);
    66             }
    67         });
    68 
    69         jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/xelfi/quoridor/desktop/sample/white.png"))); // NOI18N
    70         org.openide.awt.Mnemonics.setLocalizedText(jButton2, org.openide.util.NbBundle.getMessage(KukTopComponent.class, "KukTopComponent.jButton2.text")); // NOI18N
    71         jButton2.addActionListener(new java.awt.event.ActionListener() {
    72             public void actionPerformed(java.awt.event.ActionEvent evt) {
    73                 jButton2ActionPerformed(evt);
    74             }
    75         });
    76 
    77         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
    78         this.setLayout(layout);
    79         layout.setHorizontalGroup(
    80             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    81             .addGroup(layout.createSequentialGroup()
    82                 .addComponent(jButton1)
    83                 .addContainerGap(225, Short.MAX_VALUE))
    84             .addGroup(layout.createSequentialGroup()
    85                 .addComponent(jButton2)
    86                 .addContainerGap())
    87             .addComponent(boardPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 312, Short.MAX_VALUE)
    88         );
    89         layout.setVerticalGroup(
    90             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    91             .addGroup(layout.createSequentialGroup()
    92                 .addComponent(jButton1)
    93                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    94                 .addComponent(boardPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 282, Short.MAX_VALUE)
    95                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    96                 .addComponent(jButton2))
    97         );
    98     }// </editor-fold>//GEN-END:initComponents
    99 
   100     private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
   101         setGameId(id);
   102     }//GEN-LAST:event_jButton2ActionPerformed
   103 
   104     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
   105         setGameId(id);
   106     }//GEN-LAST:event_jButton1ActionPerformed
   107 
   108     // Variables declaration - do not modify//GEN-BEGIN:variables
   109     private cz.xelfi.quoridor.visidor.BoardPane boardPane1;
   110     private javax.swing.JButton jButton1;
   111     private javax.swing.JButton jButton2;
   112     private javax.swing.JLabel jLabel1;
   113     // End of variables declaration//GEN-END:variables
   114 
   115     @Override
   116     public int getPersistenceType() {
   117         return TopComponent.PERSISTENCE_ALWAYS;
   118     }
   119 
   120     @Override
   121     public void componentOpened() {
   122         // TODO add custom code on component opening
   123     }
   124 
   125     @Override
   126     public void componentClosed() {
   127         // TODO add custom code on component closing
   128     }
   129 
   130     void writeProperties(java.util.Properties p) {
   131         // better to version settings since initial version as advocated at
   132         // http://wiki.apidesign.org/wiki/PropertyFiles
   133         p.setProperty("version", "1.0");
   134         if (id != null) {
   135             p.setProperty("id", id);
   136         }
   137     }
   138 
   139     final void readProperties(java.util.Properties p) {
   140         String version = p.getProperty("version");
   141         String myId = p.getProperty("id");
   142         if (myId != null) {
   143             setGameId(myId);
   144         }
   145     }
   146 
   147     @Override
   148     protected String preferredID() {
   149         return PREFERRED_ID;
   150     }
   151 }