77 * Standard values, keyword pane. 78 */ 79 class CE_KeywordsPane extends CE_StdPane { 80 CE_KeywordsPane(UIFactory uif, InterviewParameters config) { 81 super(uif, config, "keywords"); 82 83 updateConfig(); 84 initGUI(); 85 } 86 87 boolean isOKToClose() { 88 if (mutableKeywordsParameters == null) 89 return true; 90 91 if (!selectCheck.isSelected()) 92 return true; 93 94 try { 95 TestSuite ts = config.getTestSuite(); 96 String[] validKeywords = ts.getKeywords(); 97 HashSet validKeywordsSet; 98 if (validKeywords == null) 99 validKeywordsSet = null; 100 else 101 validKeywordsSet = new HashSet(Arrays.asList(validKeywords)); 102 103 String kc = (String) (keywordsChoice.getSelectedItem()); 104 String type; 105 if (kc.equals(ANY_OF)) 106 type = Keywords.ANY_OF; 107 else if (kc.equals(ALL_OF)) 108 type = Keywords.ALL_OF; 109 else 110 type = Keywords.EXPR; 111 Keywords k = Keywords.create(type, keywordsField.getText(), 112 validKeywordsSet); 113 return true; 114 } catch (Keywords.Fault e) { 115 uif.showError("ce.keywords.invalid", e.getMessage()); 116 return false; 117 } 118 } 119 120 void updateConfig() { 121 // track interview changes 269 // so disable the entire pane 270 setEnabled(false); 271 } else { 272 // this test suite specifies valid keywords, 273 // so create a popup menu for them 274 keywordPopup = uif.createPopupMenu("ce.keywords.keyword"); 275 keywordChooser = false; 276 for (int i = 0; i < keywords.length; i++) 277 keywordPopup.add(uif.createLiteralMenuItem(keywords[i], listener)); 278 if (keywordPopup.getPreferredSize().getHeight() > (Toolkit.getDefaultToolkit().getScreenSize().height - 50)) { 279 keywordPopup = null; 280 keywordChooser = true; 281 } 282 } 283 } 284 } 285 286 private class KeywordChooser extends JDialog { 287 288 private JScrollPane sp; 289 private JList lst; 290 private JButton ok, cancel; 291 292 KeywordChooser(Dialog parent, String [] keywords, Listener listener ) { 293 super(parent); 294 initUI(keywords, listener); 295 } 296 297 KeywordChooser(Frame parent, String [] keywords, Listener listener ) { 298 super(parent); 299 initUI(keywords, listener); 300 } 301 302 KeywordChooser(String [] keywords, Listener listener ) { 303 super(); 304 initUI(keywords, listener); 305 } 306 307 private void initUI(String [] keywords, final Listener listener ) { 308 GridBagConstraints gbc; 309 310 sp = new JScrollPane(); 311 lst = new JList(keywords); 312 313 ok = uif.createButton("keywordChooser.insert", new ActionListener() { 314 public void actionPerformed(ActionEvent e) { 315 Object[] sels = lst.getSelectedValues(); 316 String inserted = ""; 317 for (int i = 0; i < sels.length; i++) { 318 inserted += sels[i] + " "; 319 } 320 listener.insert(inserted.trim()); 321 lst.clearSelection(); 322 setVisible(false); 323 dispose(); 324 } 325 }); 326 327 328 cancel = uif.createButton("keywordChooser.cancel", new ActionListener() { 329 public void actionPerformed(ActionEvent e) { 330 lst.clearSelection(); 331 setVisible(false); | 77 * Standard values, keyword pane. 78 */ 79 class CE_KeywordsPane extends CE_StdPane { 80 CE_KeywordsPane(UIFactory uif, InterviewParameters config) { 81 super(uif, config, "keywords"); 82 83 updateConfig(); 84 initGUI(); 85 } 86 87 boolean isOKToClose() { 88 if (mutableKeywordsParameters == null) 89 return true; 90 91 if (!selectCheck.isSelected()) 92 return true; 93 94 try { 95 TestSuite ts = config.getTestSuite(); 96 String[] validKeywords = ts.getKeywords(); 97 HashSet<String> validKeywordsSet; 98 if (validKeywords == null) 99 validKeywordsSet = null; 100 else 101 validKeywordsSet = new HashSet<String>(Arrays.asList(validKeywords)); 102 103 String kc = (String) (keywordsChoice.getSelectedItem()); 104 String type; 105 if (kc.equals(ANY_OF)) 106 type = Keywords.ANY_OF; 107 else if (kc.equals(ALL_OF)) 108 type = Keywords.ALL_OF; 109 else 110 type = Keywords.EXPR; 111 Keywords k = Keywords.create(type, keywordsField.getText(), 112 validKeywordsSet); 113 return true; 114 } catch (Keywords.Fault e) { 115 uif.showError("ce.keywords.invalid", e.getMessage()); 116 return false; 117 } 118 } 119 120 void updateConfig() { 121 // track interview changes 269 // so disable the entire pane 270 setEnabled(false); 271 } else { 272 // this test suite specifies valid keywords, 273 // so create a popup menu for them 274 keywordPopup = uif.createPopupMenu("ce.keywords.keyword"); 275 keywordChooser = false; 276 for (int i = 0; i < keywords.length; i++) 277 keywordPopup.add(uif.createLiteralMenuItem(keywords[i], listener)); 278 if (keywordPopup.getPreferredSize().getHeight() > (Toolkit.getDefaultToolkit().getScreenSize().height - 50)) { 279 keywordPopup = null; 280 keywordChooser = true; 281 } 282 } 283 } 284 } 285 286 private class KeywordChooser extends JDialog { 287 288 private JScrollPane sp; 289 private JList<String> lst; 290 private JButton ok, cancel; 291 292 KeywordChooser(Dialog parent, String [] keywords, Listener listener ) { 293 super(parent); 294 initUI(keywords, listener); 295 } 296 297 KeywordChooser(Frame parent, String [] keywords, Listener listener ) { 298 super(parent); 299 initUI(keywords, listener); 300 } 301 302 KeywordChooser(String [] keywords, Listener listener ) { 303 super(); 304 initUI(keywords, listener); 305 } 306 307 private void initUI(String [] keywords, final Listener listener ) { 308 GridBagConstraints gbc; 309 310 sp = new JScrollPane(); 311 lst = new JList<>(keywords); 312 313 ok = uif.createButton("keywordChooser.insert", new ActionListener() { 314 public void actionPerformed(ActionEvent e) { 315 Object[] sels = lst.getSelectedValues(); 316 String inserted = ""; 317 for (int i = 0; i < sels.length; i++) { 318 inserted += sels[i] + " "; 319 } 320 listener.insert(inserted.trim()); 321 lst.clearSelection(); 322 setVisible(false); 323 dispose(); 324 } 325 }); 326 327 328 cancel = uif.createButton("keywordChooser.cancel", new ActionListener() { 329 public void actionPerformed(ActionEvent e) { 330 lst.clearSelection(); 331 setVisible(false); |