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