1 32 33 package it.businesslogic.ireport.plugin.locale; 34 import it.businesslogic.ireport.util.I18n; 35 import it.businesslogic.ireport.util.LocaleAdapter; 36 import it.businesslogic.ireport.util.Misc; 37 import java.awt.Cursor ; 38 import java.util.Arrays ; 39 import java.util.Locale ; 40 import javax.swing.DefaultListModel ; 41 import javax.swing.JOptionPane ; 42 import javax.swing.SwingUtilities ; 43 44 48 public class QueryLocalesDialog extends javax.swing.JDialog implements JasperBabylonRunnerListener { 49 50 private int dialogResult = JOptionPane.CANCEL_OPTION; 51 private java.util.Properties localeProperties = null; 52 private String locale_code = null; 53 54 57 public QueryLocalesDialog(java.awt.Dialog parent, boolean modal) { 58 super(parent, modal); 59 initComponents(); 60 applyI18n(); 61 62 it.businesslogic.ireport.util.Misc.centerFrame(this); 63 64 javax.swing.KeyStroke escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false); 65 javax.swing.Action escapeAction = new javax.swing.AbstractAction () { 66 public void actionPerformed(java.awt.event.ActionEvent e) { 67 jButton2ActionPerformed(e); 68 } 69 }; 70 71 getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE"); 72 getRootPane().getActionMap().put("ESCAPE", escapeAction); 73 74 75 this.jButtonImport.setEnabled(false); 76 jList1.setModel(new DefaultListModel ()); 77 78 this.getRootPane().setDefaultButton(this.jButton2); 80 } 81 82 public void setVisible(boolean b) 83 { 84 super.setVisible(b); 85 } 86 87 92 private void initComponents() { 94 java.awt.GridBagConstraints gridBagConstraints; 95 96 jLabelJasperBabylon = new javax.swing.JLabel (); 97 jScrollPane1 = new javax.swing.JScrollPane (); 98 jList1 = new javax.swing.JList (); 99 jSeparator1 = new javax.swing.JSeparator (); 100 jPanel1 = new javax.swing.JPanel (); 101 jPanel2 = new javax.swing.JPanel (); 102 jButtonImport = new javax.swing.JButton (); 103 jButton2 = new javax.swing.JButton (); 104 105 getContentPane().setLayout(new java.awt.GridBagLayout ()); 106 107 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 108 addWindowListener(new java.awt.event.WindowAdapter () { 109 public void windowOpened(java.awt.event.WindowEvent evt) { 110 formWindowOpened(evt); 111 } 112 }); 113 114 jLabelJasperBabylon.setText("Available locales:"); 115 gridBagConstraints = new java.awt.GridBagConstraints (); 116 gridBagConstraints.gridx = 0; 117 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 118 gridBagConstraints.weightx = 1.0; 119 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 120 getContentPane().add(jLabelJasperBabylon, gridBagConstraints); 121 122 jScrollPane1.setPreferredSize(new java.awt.Dimension (300, 200)); 123 jList1.setModel(new javax.swing.AbstractListModel () { 124 String [] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; 125 public int getSize() { return strings.length; } 126 public Object getElementAt(int i) { return strings[i]; } 127 }); 128 jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener () { 129 public void valueChanged(javax.swing.event.ListSelectionEvent evt) { 130 jList1ValueChanged(evt); 131 } 132 }); 133 134 jScrollPane1.setViewportView(jList1); 135 136 gridBagConstraints = new java.awt.GridBagConstraints (); 137 gridBagConstraints.gridx = 0; 138 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 139 gridBagConstraints.weightx = 1.0; 140 gridBagConstraints.weighty = 1.0; 141 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 142 getContentPane().add(jScrollPane1, gridBagConstraints); 143 144 jSeparator1.setMinimumSize(new java.awt.Dimension (0, 4)); 145 jSeparator1.setPreferredSize(new java.awt.Dimension (0, 4)); 146 gridBagConstraints = new java.awt.GridBagConstraints (); 147 gridBagConstraints.gridx = 0; 148 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 149 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH; 150 gridBagConstraints.weightx = 1.0; 151 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 152 getContentPane().add(jSeparator1, gridBagConstraints); 153 154 jPanel1.setLayout(new java.awt.GridBagLayout ()); 155 156 gridBagConstraints = new java.awt.GridBagConstraints (); 157 gridBagConstraints.weightx = 1.0; 158 jPanel1.add(jPanel2, gridBagConstraints); 159 160 jButtonImport.setText("Import"); 161 jButtonImport.addActionListener(new java.awt.event.ActionListener () { 162 public void actionPerformed(java.awt.event.ActionEvent evt) { 163 jButtonImportActionPerformed(evt); 164 } 165 }); 166 167 gridBagConstraints = new java.awt.GridBagConstraints (); 168 gridBagConstraints.insets = new java.awt.Insets (4, 0, 4, 4); 169 jPanel1.add(jButtonImport, gridBagConstraints); 170 171 jButton2.setText("Cancel"); 172 jButton2.addActionListener(new java.awt.event.ActionListener () { 173 public void actionPerformed(java.awt.event.ActionEvent evt) { 174 jButton2ActionPerformed(evt); 175 } 176 }); 177 178 gridBagConstraints = new java.awt.GridBagConstraints (); 179 gridBagConstraints.insets = new java.awt.Insets (4, 0, 4, 10); 180 jPanel1.add(jButton2, gridBagConstraints); 181 182 gridBagConstraints = new java.awt.GridBagConstraints (); 183 gridBagConstraints.gridx = 0; 184 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 185 gridBagConstraints.weightx = 1.0; 186 getContentPane().add(jPanel1, gridBagConstraints); 187 188 pack(); 189 } 191 private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) { 193 if (jList1.getSelectedIndex() >= 0 && 194 jList1.getSelectedValue() instanceof LocaleAdapter) 195 { 196 jButtonImport.setEnabled(true); 197 } 198 else 199 { 200 jButtonImport.setEnabled(false); 201 } 202 203 } 205 private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { setVisible(false); 207 dispose(); 208 } 210 private void formWindowOpened(java.awt.event.WindowEvent evt) { 212 JasperBabylonRunner jbr = new JasperBabylonRunner(); 213 jbr.setRunnerListener(this); 214 ((DefaultListModel )jList1.getModel()).clear(); 215 ((DefaultListModel )jList1.getModel()).addElement("Reading locales..."); 216 jList1.updateUI(); 217 jbr.listLocales(); 218 } 220 private void jButtonImportActionPerformed(java.awt.event.ActionEvent evt) { 222 223 JasperBabylonRunner jbr = new JasperBabylonRunner(); 224 jbr.setRunnerListener(this); 225 LocaleAdapter la = (LocaleAdapter)jList1.getSelectedValue(); 226 227 String code = la.getLocale().getLanguage(); 228 if (la.getLocale().getCountry().length() > 0) 229 { 230 code += "_" + la.getLocale().getCountry(); 231 } 232 if (la.getLocale().getVariant().length() > 0) 233 { 234 code += "_" + la.getLocale().getVariant(); 235 } 236 237 238 this.setLocale_code(code); 239 jbr.getLocale(code); 240 241 this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR) ); 242 jButtonImport.setEnabled(false); 243 244 } 246 private javax.swing.JButton jButton2; 248 private javax.swing.JButton jButtonImport; 249 private javax.swing.JLabel jLabelJasperBabylon; 250 private javax.swing.JList jList1; 251 private javax.swing.JPanel jPanel1; 252 private javax.swing.JPanel jPanel2; 253 private javax.swing.JScrollPane jScrollPane1; 254 private javax.swing.JSeparator jSeparator1; 255 257 public void applyI18n(){ 258 259 } 260 261 public void listLocalesComplete(java.util.List list) 262 { 263 ((DefaultListModel )jList1.getModel()).clear(); 264 Object [] ar = list.toArray(); 265 Arrays.sort(ar); 266 267 for (int i=0; i<ar.length; ++i) 268 { 269 String code = "" + ar[i]; 270 Locale loc = Misc.getLocaleFromString(code); 271 LocaleAdapter la = new LocaleAdapter(loc); 272 ((DefaultListModel )jList1.getModel()).addElement(la); 273 } 274 275 try { 276 SwingUtilities.invokeAndWait(new Runnable () { 277 public void run() { 278 jList1.updateUI(); 279 } 280 }); 281 } catch (Exception ex){} 282 283 } 284 285 public void getLocaleComplete(java.util.Properties props) 286 { 287 setLocaleProperties(props); 288 try { 289 SwingUtilities.invokeAndWait(new Runnable () { 290 public void run() { 291 setCursor(Cursor.getDefaultCursor()); 292 setDialogResult(JOptionPane.OK_OPTION); 293 setVisible(false); 294 dispose(); 295 } 296 }); 297 } catch (Exception ex){ 298 ex.printStackTrace(); 299 } 300 } 301 302 public void putLocaleComplete(String returnMessage) 303 { 304 305 } 306 307 public void operationError(int operation, String message) 308 { 309 if (operation == JasperBabylonRunner.OP_GET_LOCALE) 310 { 311 try { 312 final String msg = message; 313 SwingUtilities.invokeAndWait(new Runnable () { 314 public void run() { 315 setCursor(Cursor.getDefaultCursor()); 316 jList1ValueChanged(null); 317 JOptionPane.showMessageDialog(QueryLocalesDialog.this,msg); 318 } 319 }); 320 } catch (Exception ex) 321 {} 322 } 323 else 324 { 325 ((DefaultListModel )jList1.getModel()).clear(); 326 ((DefaultListModel )jList1.getModel()).addElement(message); 327 328 try { 329 SwingUtilities.invokeAndWait(new Runnable () { 330 public void run() { 331 jList1.updateUI(); 332 } 333 }); 334 } catch (Exception ex) 335 {} 336 } 337 338 } 339 340 341 342 public java.util.Properties getLocaleProperties() { 343 return localeProperties; 344 } 345 346 public void setLocaleProperties(java.util.Properties localeProperties) { 347 this.localeProperties = localeProperties; 348 } 349 350 public String getLocale_code() { 351 return locale_code; 352 } 353 354 public void setLocale_code(String locale_code) { 355 this.locale_code = locale_code; 356 } 357 358 public int getDialogResult() { 359 return dialogResult; 360 } 361 362 public void setDialogResult(int dialogResult) { 363 this.dialogResult = dialogResult; 364 } 365 } 366 | Popular Tags |