1 32 33 package it.businesslogic.ireport.gui; 34 35 import it.businesslogic.ireport.ExpressionContext; 36 import javax.swing.DefaultListModel ; 37 import java.util.*; 38 import javax.swing.JOptionPane ; 39 import it.businesslogic.ireport.util.I18n; 40 44 public class CustomExpressionsDialog extends javax.swing.JDialog { 45 46 private int dialogResult = javax.swing.JOptionPane.CANCEL_OPTION; 47 private boolean modifiedPath = false; 48 49 public CustomExpressionsDialog(java.awt.Frame parent, boolean modal) { 50 super(parent, modal); 51 initComponents(); 52 53 jList1.setModel(new DefaultListModel ()); 54 it.businesslogic.ireport.util.Misc.centerFrame( this ); 55 61 jList1ValueChanged(null); 62 applyI18n(); 63 } 64 65 70 private void initComponents() { 72 java.awt.GridBagConstraints gridBagConstraints; 73 74 jLabelClasspath = new javax.swing.JLabel (); 75 jScrollPane1 = new javax.swing.JScrollPane (); 76 jList1 = new javax.swing.JList (); 77 jPanel1 = new javax.swing.JPanel (); 78 jButtonAdd = new javax.swing.JButton (); 79 jButtonAdd1 = new javax.swing.JButton (); 80 jButtonRemove = new javax.swing.JButton (); 81 jButtonMoveUp = new javax.swing.JButton (); 82 jButtonMoveDown = new javax.swing.JButton (); 83 jPanel2 = new javax.swing.JPanel (); 84 jButtonSave = new javax.swing.JButton (); 85 jButtonCancel = new javax.swing.JButton (); 86 87 getContentPane().setLayout(new java.awt.GridBagLayout ()); 88 89 setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); 90 setTitle(it.businesslogic.ireport.util.I18n.getString("customExpressions", "Custom expressions")); 91 addWindowListener(new java.awt.event.WindowAdapter () { 92 public void windowClosed(java.awt.event.WindowEvent evt) { 93 formWindowClosed(evt); 94 } 95 public void windowClosing(java.awt.event.WindowEvent evt) { 96 formWindowClosing(evt); 97 } 98 }); 99 100 jLabelClasspath.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); 101 jLabelClasspath.setText(it.businesslogic.ireport.util.I18n.getString("formulasAndExpressions", "Formulas and expressions")); 102 gridBagConstraints = new java.awt.GridBagConstraints (); 103 gridBagConstraints.gridx = 0; 104 gridBagConstraints.gridy = 0; 105 gridBagConstraints.gridwidth = 2; 106 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 107 gridBagConstraints.ipadx = 1; 108 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 109 getContentPane().add(jLabelClasspath, gridBagConstraints); 110 111 jScrollPane1.setPreferredSize(new java.awt.Dimension (359, 260)); 112 jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener () { 113 public void valueChanged(javax.swing.event.ListSelectionEvent evt) { 114 jList1ValueChanged(evt); 115 } 116 }); 117 jList1.addMouseListener(new java.awt.event.MouseAdapter () { 118 public void mouseClicked(java.awt.event.MouseEvent evt) { 119 jList1MouseClicked(evt); 120 } 121 }); 122 123 jScrollPane1.setViewportView(jList1); 124 125 gridBagConstraints = new java.awt.GridBagConstraints (); 126 gridBagConstraints.gridx = 0; 127 gridBagConstraints.gridy = 1; 128 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 129 gridBagConstraints.weightx = 1.0; 130 gridBagConstraints.weighty = 1.0; 131 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 132 getContentPane().add(jScrollPane1, gridBagConstraints); 133 134 jPanel1.setLayout(new java.awt.GridBagLayout ()); 135 136 jPanel1.setMinimumSize(new java.awt.Dimension (120, 10)); 137 jPanel1.setPreferredSize(new java.awt.Dimension (120, 10)); 138 jButtonAdd.setText(it.businesslogic.ireport.util.I18n.getString("new", "New")); 139 jButtonAdd.setMaximumSize(new java.awt.Dimension (200, 26)); 140 jButtonAdd.setMinimumSize(new java.awt.Dimension (90, 26)); 141 jButtonAdd.setPreferredSize(new java.awt.Dimension (120, 26)); 142 jButtonAdd.addActionListener(new java.awt.event.ActionListener () { 143 public void actionPerformed(java.awt.event.ActionEvent evt) { 144 jButtonAddActionPerformed(evt); 145 } 146 }); 147 148 gridBagConstraints = new java.awt.GridBagConstraints (); 149 gridBagConstraints.gridx = 0; 150 gridBagConstraints.gridy = 0; 151 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 152 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 153 jPanel1.add(jButtonAdd, gridBagConstraints); 154 155 jButtonAdd1.setText(it.businesslogic.ireport.util.I18n.getString("modify", "Modify")); 156 jButtonAdd1.setMaximumSize(new java.awt.Dimension (200, 26)); 157 jButtonAdd1.setMinimumSize(new java.awt.Dimension (90, 26)); 158 jButtonAdd1.setPreferredSize(new java.awt.Dimension (120, 26)); 159 jButtonAdd1.addActionListener(new java.awt.event.ActionListener () { 160 public void actionPerformed(java.awt.event.ActionEvent evt) { 161 jButtonAddActionPerformed1(evt); 162 } 163 }); 164 165 gridBagConstraints = new java.awt.GridBagConstraints (); 166 gridBagConstraints.gridx = 0; 167 gridBagConstraints.gridy = 1; 168 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 169 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 170 jPanel1.add(jButtonAdd1, gridBagConstraints); 171 172 jButtonRemove.setText(it.businesslogic.ireport.util.I18n.getString("remove", "Remove")); 173 jButtonRemove.setMaximumSize(new java.awt.Dimension (200, 26)); 174 jButtonRemove.setMinimumSize(new java.awt.Dimension (90, 26)); 175 jButtonRemove.setPreferredSize(new java.awt.Dimension (120, 26)); 176 jButtonRemove.addActionListener(new java.awt.event.ActionListener () { 177 public void actionPerformed(java.awt.event.ActionEvent evt) { 178 jButtonRemoveActionPerformed(evt); 179 } 180 }); 181 182 gridBagConstraints = new java.awt.GridBagConstraints (); 183 gridBagConstraints.gridx = 0; 184 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 185 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 186 jPanel1.add(jButtonRemove, gridBagConstraints); 187 188 jButtonMoveUp.setText(it.businesslogic.ireport.util.I18n.getString("moveUp", "Move up")); 189 jButtonMoveUp.setMaximumSize(new java.awt.Dimension (200, 26)); 190 jButtonMoveUp.setMinimumSize(new java.awt.Dimension (90, 26)); 191 jButtonMoveUp.setPreferredSize(new java.awt.Dimension (120, 26)); 192 jButtonMoveUp.addActionListener(new java.awt.event.ActionListener () { 193 public void actionPerformed(java.awt.event.ActionEvent evt) { 194 jButtonMoveUpActionPerformed(evt); 195 } 196 }); 197 198 gridBagConstraints = new java.awt.GridBagConstraints (); 199 gridBagConstraints.gridx = 0; 200 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 201 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 202 jPanel1.add(jButtonMoveUp, gridBagConstraints); 203 jButtonMoveDown.setText(it.businesslogic.ireport.util.I18n.getString("moveDown", "Move down")); 204 jButtonMoveDown.setMaximumSize(new java.awt.Dimension (200, 26)); 205 jButtonMoveDown.setMinimumSize(new java.awt.Dimension (90, 26)); 206 jButtonMoveDown.setPreferredSize(new java.awt.Dimension (120, 26)); 207 jButtonMoveDown.addActionListener(new java.awt.event.ActionListener () { 208 public void actionPerformed(java.awt.event.ActionEvent evt) { 209 jButtonMoveDownActionPerformed(evt); 210 } 211 }); 212 213 gridBagConstraints = new java.awt.GridBagConstraints (); 214 gridBagConstraints.gridx = 0; 215 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 216 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 217 jPanel1.add(jButtonMoveDown, gridBagConstraints); 218 219 gridBagConstraints = new java.awt.GridBagConstraints (); 220 gridBagConstraints.gridx = 0; 221 gridBagConstraints.weighty = 1.0; 222 jPanel1.add(jPanel2, gridBagConstraints); 223 224 jButtonSave.setText(it.businesslogic.ireport.util.I18n.getString("save", "Save")); 225 jButtonSave.setMaximumSize(new java.awt.Dimension (200, 26)); 226 jButtonSave.setMinimumSize(new java.awt.Dimension (90, 26)); 227 jButtonSave.setPreferredSize(new java.awt.Dimension (120, 26)); 228 jButtonSave.addActionListener(new java.awt.event.ActionListener () { 229 public void actionPerformed(java.awt.event.ActionEvent evt) { 230 jButtonSaveActionPerformed(evt); 231 } 232 }); 233 234 gridBagConstraints = new java.awt.GridBagConstraints (); 235 gridBagConstraints.gridx = 0; 236 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 237 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 238 jPanel1.add(jButtonSave, gridBagConstraints); 239 240 jButtonCancel.setText(it.businesslogic.ireport.util.I18n.getString("cancel", "Cancel")); 241 jButtonCancel.setMaximumSize(new java.awt.Dimension (200, 26)); 242 jButtonCancel.setMinimumSize(new java.awt.Dimension (90, 26)); 243 jButtonCancel.setPreferredSize(new java.awt.Dimension (120, 26)); 244 jButtonCancel.addActionListener(new java.awt.event.ActionListener () { 245 public void actionPerformed(java.awt.event.ActionEvent evt) { 246 jButtonCancelActionPerformed(evt); 247 } 248 }); 249 250 gridBagConstraints = new java.awt.GridBagConstraints (); 251 gridBagConstraints.gridx = 0; 252 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 253 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 254 jPanel1.add(jButtonCancel, gridBagConstraints); 255 256 gridBagConstraints = new java.awt.GridBagConstraints (); 257 gridBagConstraints.gridx = 1; 258 gridBagConstraints.gridy = 1; 259 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 260 gridBagConstraints.weighty = 1.0; 261 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 4); 262 getContentPane().add(jPanel1, gridBagConstraints); 263 264 pack(); 265 } 267 private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) { 269 if (jList1.getSelectedIndex() >= 0) 270 { 271 jButtonAdd1.setEnabled(true); 272 jButtonRemove.setEnabled(true); 273 jButtonMoveUp.setEnabled(jList1.getSelectedIndex() > 0); 274 jButtonMoveDown.setEnabled(jList1.getSelectedIndex() < ((DefaultListModel )jList1.getModel()).size()-1); 275 } 276 else 277 { 278 jButtonAdd1.setEnabled(false); 279 jButtonRemove.setEnabled(false); 280 jButtonMoveUp.setEnabled(false); 281 jButtonMoveDown.setEnabled(false); 282 } 283 284 } 286 private void jList1MouseClicked(java.awt.event.MouseEvent evt) { 288 if (evt.getClickCount() == 2 && evt.getButton() == evt.BUTTON1) 289 { 290 jButtonAddActionPerformed1(null); 291 } 292 293 } 295 private void jButtonAddActionPerformed1(java.awt.event.ActionEvent evt) { 297 if (jList1.getSelectedIndex() < 0) return; 298 299 ExpressionEditor ed = new ExpressionEditor(); 300 ed.setExpression(""+jList1.getSelectedValue()); 301 ed.setExpressionContext( new ExpressionContext()); 302 ed.setVisible(true); 303 304 if (ed.getDialogResult() == JOptionPane.OK_OPTION) 305 { 306 int i = jList1.getSelectedIndex(); 307 ((DefaultListModel )jList1.getModel()).setElementAt(ed.getExpression(), i); 308 } 309 } 311 private void formWindowClosed(java.awt.event.WindowEvent evt) { 313 } 315 private void formWindowClosing(java.awt.event.WindowEvent evt) { 317 if (modifiedPath) 318 { 319 int ret = javax.swing.JOptionPane.showConfirmDialog(this, I18n.getString("messages.customExpressionsDialog.saveList","Do you want save the list ?")); 320 321 if (ret == javax.swing.JOptionPane.CANCEL_OPTION) 322 { 323 return; 324 } 325 326 if (ret == javax.swing.JOptionPane.OK_OPTION) 327 { 328 setDialogResult(javax.swing.JOptionPane.OK_OPTION); 329 } 330 } 331 setVisible(false); 332 } 334 private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) { setVisible(false); 336 } 338 private void jButtonSaveActionPerformed(java.awt.event.ActionEvent evt) { setDialogResult(javax.swing.JOptionPane.OK_OPTION); 340 setVisible(false); 341 } 343 private void jButtonMoveUpActionPerformed(java.awt.event.ActionEvent evt) { 345 if (jList1.getSelectedValues() != null) 346 { 347 int[] indices = jList1.getSelectedIndices(); 348 for (int i=0; i<indices.length; ++i) 349 { 350 if (indices[i] == 0) continue; 351 Object val = ((DefaultListModel )jList1.getModel()).remove( indices[i] ); 352 ((DefaultListModel )jList1.getModel()).insertElementAt(val, indices[i]-1); 353 indices[i]--; 354 } 355 jList1.setSelectedIndices(indices); 356 modifiedPath = true; 357 } 358 359 } 361 private void jButtonMoveDownActionPerformed(java.awt.event.ActionEvent evt) { if (jList1.getSelectedValues() != null) 363 { 364 int[] indices = jList1.getSelectedIndices(); 365 for (int i=indices.length-1; i>=0; --i) 366 { 367 if (indices[i] >= ((DefaultListModel )jList1.getModel()).size() -1 ) continue; 368 369 Object val = ((DefaultListModel )jList1.getModel()).remove( indices[i] ); 370 ((DefaultListModel )jList1.getModel()).insertElementAt(val, indices[i]+1); 371 indices[i]++; 372 } 373 jList1.setSelectedIndices(indices); 374 modifiedPath = true; 375 } 376 } 378 private void jButtonRemoveActionPerformed(java.awt.event.ActionEvent evt) { 380 if (jList1.getSelectedValues() != null) 381 { 382 Object [] values = jList1.getSelectedValues(); 383 for (int i=0; i<values.length; ++i) 384 { 385 ((DefaultListModel )jList1.getModel()).removeElement(values[i]); 386 } 387 modifiedPath = true; 388 } 389 } 391 private void jButtonAddActionPerformed(java.awt.event.ActionEvent evt) { 393 ExpressionEditor ed = new ExpressionEditor(); 394 ed.setExpression(""); 395 ed.setExpressionContext( new ExpressionContext()); 396 ed.setVisible(true); 397 398 if (ed.getDialogResult() == JOptionPane.OK_OPTION) 399 { 400 ((DefaultListModel )jList1.getModel()).addElement( ed.getExpression()); 401 } 402 403 } 405 408 public static void main(String args[]) { 409 java.awt.EventQueue.invokeLater(new Runnable () { 410 public void run() { 411 new ClassPathDialog(new javax.swing.JFrame (), true).setVisible(true); 412 } 413 }); 414 } 415 416 public void setExpressions(Vector cp) 417 { 418 for (int i=0; i<cp.size(); ++i) { 419 ((DefaultListModel )jList1.getModel()).addElement( cp.elementAt(i) ); 420 } 421 if (((DefaultListModel )jList1.getModel()).size() > 0) 422 { 423 jList1.setSelectedIndex(0); 424 } 425 } 426 427 public Vector getExpressions() 428 { 429 Vector cp = new Vector(); 430 for (int i=0; i<((DefaultListModel )jList1.getModel()).size(); ++i ) 431 { 432 cp.addElement( "" + ((DefaultListModel )jList1.getModel()).elementAt( i ) ); 433 } 434 435 return cp; 436 } 437 438 public int getDialogResult() { 439 return dialogResult; 440 } 441 442 public void setDialogResult(int dialogResult) { 443 this.dialogResult = dialogResult; 444 } 445 446 private javax.swing.JButton jButtonAdd; 448 private javax.swing.JButton jButtonAdd1; 449 private javax.swing.JButton jButtonCancel; 450 private javax.swing.JButton jButtonMoveDown; 451 private javax.swing.JButton jButtonMoveUp; 452 private javax.swing.JButton jButtonRemove; 453 private javax.swing.JButton jButtonSave; 454 private javax.swing.JLabel jLabelClasspath; 455 private javax.swing.JList jList1; 456 private javax.swing.JPanel jPanel1; 457 private javax.swing.JPanel jPanel2; 458 private javax.swing.JScrollPane jScrollPane1; 459 461 public void applyI18n(){ 462 } 465 } 466 | Popular Tags |