samples/componentinjection/anagram-modular/src-gui/org/apidesign/anagram/gui/Anagrams.java
Updating to NBMs from NetBeans 8.0.1 as some of them are required to run on JDK8
1 package org.apidesign.anagram.gui;
3 import org.apidesign.anagram.api.Scrambler;
4 import org.apidesign.anagram.api.UI;
5 import org.apidesign.anagram.api.WordLibrary;
7 /** Modified version of classical NetBeans Anagrams example for purposes
10 * @author Dirk Ruiz, Jaroslav Tulach
12 // BEGIN: anagram.ui.Anagrams
13 public abstract class Anagrams extends javax.swing.JFrame implements UI {
15 protected abstract WordLibrary getWordLibrary();
16 protected abstract Scrambler getScrambler();
18 public void display() {
22 // FINISH: anagram.ui.Anagrams
29 getRootPane().setDefaultButton(guessButton);
31 String version = System.getProperty("anagram.version");
32 if (version != null) {
33 if (version.startsWith("app-")) {
34 version = version.substring(4);
36 setTitle("Anagrams - " + version + " version");
40 public final String getOriginalWord() {
44 public final String getScrambledWord() {
48 /** This method is called from within the constructor to
49 * initialize the form.
50 * WARNING: Do NOT modify this code. The content of this method is
51 * always regenerated by the Form Editor.
53 private void initComponents() {//GEN-BEGIN:initComponents
54 java.awt.GridBagConstraints gridBagConstraints;
56 mainPanel = new javax.swing.JPanel();
57 scrambledLabel = new javax.swing.JLabel();
58 guessLabel = new javax.swing.JLabel();
59 feedbackLabel = new javax.swing.JLabel();
60 guessButton = new javax.swing.JButton();
61 scrambledWord = new javax.swing.JTextField();
62 guessedWord = new javax.swing.JTextField();
63 nextTrial = new javax.swing.JButton();
64 mainMenu = new javax.swing.JMenuBar();
65 File = new javax.swing.JMenu();
66 jMenuItem1 = new javax.swing.JMenuItem();
67 jMenuItem2 = new javax.swing.JMenuItem();
70 addWindowListener(new java.awt.event.WindowAdapter() {
71 public void windowClosing(java.awt.event.WindowEvent evt) {
76 mainPanel.setLayout(new java.awt.GridBagLayout());
78 mainPanel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(11, 11, 12, 12)));
79 mainPanel.setMinimumSize(new java.awt.Dimension(297, 200));
80 mainPanel.setPreferredSize(new java.awt.Dimension(297, 200));
81 scrambledLabel.setText("Scrambled Word:");
82 gridBagConstraints = new java.awt.GridBagConstraints();
83 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
84 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
85 gridBagConstraints.insets = new java.awt.Insets(12, 12, 12, 6);
86 mainPanel.add(scrambledLabel, gridBagConstraints);
88 guessLabel.setText("Your Guess:");
89 gridBagConstraints = new java.awt.GridBagConstraints();
90 gridBagConstraints.gridx = 0;
91 gridBagConstraints.gridy = 1;
92 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
93 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
94 gridBagConstraints.insets = new java.awt.Insets(0, 12, 12, 6);
95 mainPanel.add(guessLabel, gridBagConstraints);
97 feedbackLabel.setText(" ");
98 gridBagConstraints = new java.awt.GridBagConstraints();
99 gridBagConstraints.gridx = 1;
100 gridBagConstraints.gridy = 2;
101 gridBagConstraints.gridwidth = 2;
102 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
103 gridBagConstraints.weightx = 1.0;
104 gridBagConstraints.insets = new java.awt.Insets(0, 0, 6, 6);
105 mainPanel.add(feedbackLabel, gridBagConstraints);
107 guessButton.setMnemonic('G');
108 guessButton.setText("Guess");
109 guessButton.setToolTipText("Guess the scrambled word.");
110 guessButton.addActionListener(new java.awt.event.ActionListener() {
111 public void actionPerformed(java.awt.event.ActionEvent evt) {
112 guessedWordActionPerformed(evt);
116 gridBagConstraints = new java.awt.GridBagConstraints();
117 gridBagConstraints.gridx = 2;
118 gridBagConstraints.gridy = 3;
119 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
120 gridBagConstraints.insets = new java.awt.Insets(0, 0, 11, 6);
121 mainPanel.add(guessButton, gridBagConstraints);
123 scrambledWord.setEditable(false);
124 gridBagConstraints = new java.awt.GridBagConstraints();
125 gridBagConstraints.gridwidth = 3;
126 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
127 gridBagConstraints.weightx = 1.0;
128 gridBagConstraints.insets = new java.awt.Insets(12, 0, 12, 11);
129 mainPanel.add(scrambledWord, gridBagConstraints);
131 gridBagConstraints = new java.awt.GridBagConstraints();
132 gridBagConstraints.gridx = 1;
133 gridBagConstraints.gridy = 1;
134 gridBagConstraints.gridwidth = 3;
135 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
136 gridBagConstraints.weightx = 1.0;
137 gridBagConstraints.insets = new java.awt.Insets(0, 0, 12, 11);
138 mainPanel.add(guessedWord, gridBagConstraints);
140 nextTrial.setMnemonic('N');
141 nextTrial.setText("New Word");
142 nextTrial.setToolTipText("Fetch a new word.");
143 nextTrial.addActionListener(new java.awt.event.ActionListener() {
144 public void actionPerformed(java.awt.event.ActionEvent evt) {
145 nextTrialActionPerformed(evt);
149 gridBagConstraints = new java.awt.GridBagConstraints();
150 gridBagConstraints.gridx = 3;
151 gridBagConstraints.gridy = 3;
152 gridBagConstraints.insets = new java.awt.Insets(0, 0, 11, 11);
153 mainPanel.add(nextTrial, gridBagConstraints);
155 getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER);
157 File.setText("File");
158 jMenuItem1.setText("About");
159 jMenuItem1.setToolTipText("About");
160 jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
161 public void actionPerformed(java.awt.event.ActionEvent evt) {
162 jMenuItem1ActionPerformed(evt);
166 File.add(jMenuItem1);
168 jMenuItem2.setText("Exit");
169 jMenuItem2.setToolTipText("Quit Team, Quit!");
170 jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
171 public void actionPerformed(java.awt.event.ActionEvent evt) {
172 jMenuItem2ActionPerformed(evt);
176 File.add(jMenuItem2);
180 setJMenuBar(mainMenu);
182 java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
183 setBounds((screenSize.width-400)/2, (screenSize.height-250)/2, 400, 250);
184 }//GEN-END:initComponents
186 private void nextTrialActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nextTrialActionPerformed
189 feedbackLabel.setText(" ");
191 guessedWord.setText("");
192 getRootPane().setDefaultButton(guessButton);
194 guessedWord.requestFocus();
195 }//GEN-LAST:event_nextTrialActionPerformed
197 protected final void initWord() {
199 String[] words = getWordLibrary().getWords();
200 int index = wordIdx % words.length;
202 original = words[index];
203 Scrambler scrambler = getScrambler();
204 scrambled = scrambler != null ? scrambler.scramble(original) : original;
206 scrambledWord.setText(scrambled);
209 private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
211 }//GEN-LAST:event_jMenuItem2ActionPerformed
213 private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
215 }//GEN-LAST:event_jMenuItem1ActionPerformed
217 private void guessedWordActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guessedWordActionPerformed
219 if(guessedWord.getText().equals(original)) {
220 feedbackLabel.setText("Correct! Try a new word!");
221 getRootPane().setDefaultButton(nextTrial);
223 feedbackLabel.setText("Incorrect! Try again!");
224 guessedWord.setText("");
227 guessedWord.requestFocus();
228 }//GEN-LAST:event_guessedWordActionPerformed
230 /** Exit the Application */
231 private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
233 }//GEN-LAST:event_exitForm
236 public void setVisible(boolean v) {
239 guessedWord.requestFocus();
243 // Variables declaration - do not modify//GEN-BEGIN:variables
244 private javax.swing.JMenu File;
245 private javax.swing.JLabel feedbackLabel;
246 private javax.swing.JButton guessButton;
247 private javax.swing.JLabel guessLabel;
248 private javax.swing.JTextField guessedWord;
249 private javax.swing.JMenuItem jMenuItem1;
250 private javax.swing.JMenuItem jMenuItem2;
251 private javax.swing.JMenuBar mainMenu;
252 private javax.swing.JPanel mainPanel;
253 private javax.swing.JButton nextTrial;
254 private javax.swing.JLabel scrambledLabel;
255 private javax.swing.JTextField scrambledWord;
256 // End of variables declaration//GEN-END:variables