1 32 33 package it.businesslogic.ireport.gui.fonts; 34 35 import it.businesslogic.ireport.gui.*; 36 import java.awt.event.MouseAdapter ; 37 import java.awt.event.MouseEvent ; 38 import javax.swing.DefaultListModel ; 39 import java.util.*; 40 import javax.swing.JCheckBox ; 41 import it.businesslogic.ireport.util.I18n; 42 46 public class FontsPathDialog extends javax.swing.JDialog { 47 48 private int dialogResult = javax.swing.JOptionPane.CANCEL_OPTION; 49 private boolean modifiedPath = false; 50 51 public FontsPathDialog(java.awt.Frame parent, boolean modal) { 52 super(parent, modal); 53 initComponents(); 54 applyI18n(); 55 jList1.setModel(new DefaultListModel ()); 56 it.businesslogic.ireport.util.Misc.centerFrame( this ); 57 58 59 javax.swing.KeyStroke escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false); 60 javax.swing.Action escapeAction = new javax.swing.AbstractAction () { 61 public void actionPerformed(java.awt.event.ActionEvent e) { 62 jButtonCancelActionPerformed(e); 63 } 64 }; 65 66 getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE"); 67 getRootPane().getActionMap().put("ESCAPE", escapeAction); 68 69 70 jList1.addMouseListener(new MouseAdapter () 71 { 72 public void mousePressed(MouseEvent e) 73 { 74 modifiedPath = true; 75 } 76 }); 77 78 this.getRootPane().setDefaultButton(this.jButtonSave); 80 } 81 82 87 private void initComponents() { 89 java.awt.GridBagConstraints gridBagConstraints; 90 91 jLabelClasspath = new javax.swing.JLabel (); 92 jScrollPane1 = new javax.swing.JScrollPane (); 93 jList1 = new it.businesslogic.ireport.gui.fonts.CheckBoxList(); 94 jPanel1 = new javax.swing.JPanel (); 95 jButtonSelectAll = new javax.swing.JButton (); 96 jButtonDeselectAll = new javax.swing.JButton (); 97 jPanel2 = new javax.swing.JPanel (); 98 jButtonSave = new javax.swing.JButton (); 99 jButtonCancel = new javax.swing.JButton (); 100 101 getContentPane().setLayout(new java.awt.GridBagLayout ()); 102 103 setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); 104 setTitle(it.businesslogic.ireport.util.I18n.getString("fonts", "Classpath")); 105 addWindowListener(new java.awt.event.WindowAdapter () { 106 public void windowClosed(java.awt.event.WindowEvent evt) { 107 formWindowClosed(evt); 108 } 109 public void windowClosing(java.awt.event.WindowEvent evt) { 110 formWindowClosing(evt); 111 } 112 }); 113 114 jLabelClasspath.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); 115 jLabelClasspath.setText(it.businesslogic.ireport.util.I18n.getString("fonts", "Fonts path")); 116 gridBagConstraints = new java.awt.GridBagConstraints (); 117 gridBagConstraints.gridx = 0; 118 gridBagConstraints.gridy = 0; 119 gridBagConstraints.gridwidth = 2; 120 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 121 gridBagConstraints.ipadx = 1; 122 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 123 getContentPane().add(jLabelClasspath, gridBagConstraints); 124 125 jScrollPane1.setPreferredSize(new java.awt.Dimension (359, 260)); 126 jList1.setModel(new javax.swing.AbstractListModel () { 127 String [] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; 128 public int getSize() { return strings.length; } 129 public Object getElementAt(int i) { return strings[i]; } 130 }); 131 jScrollPane1.setViewportView(jList1); 132 133 gridBagConstraints = new java.awt.GridBagConstraints (); 134 gridBagConstraints.gridx = 0; 135 gridBagConstraints.gridy = 1; 136 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 137 gridBagConstraints.weightx = 1.0; 138 gridBagConstraints.weighty = 1.0; 139 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 140 getContentPane().add(jScrollPane1, gridBagConstraints); 141 142 jPanel1.setLayout(new java.awt.GridBagLayout ()); 143 144 jPanel1.setMinimumSize(new java.awt.Dimension (120, 10)); 145 jPanel1.setPreferredSize(new java.awt.Dimension (120, 10)); 146 jButtonSelectAll.setText(it.businesslogic.ireport.util.I18n.getString("selectAll", "Select all")); 147 jButtonSelectAll.setMaximumSize(new java.awt.Dimension (200, 26)); 148 jButtonSelectAll.setMinimumSize(new java.awt.Dimension (90, 26)); 149 jButtonSelectAll.setPreferredSize(new java.awt.Dimension (120, 26)); 150 jButtonSelectAll.addActionListener(new java.awt.event.ActionListener () { 151 public void actionPerformed(java.awt.event.ActionEvent evt) { 152 jButtonSelectAllActionPerformed(evt); 153 } 154 }); 155 156 gridBagConstraints = new java.awt.GridBagConstraints (); 157 gridBagConstraints.gridx = 0; 158 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 159 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 160 jPanel1.add(jButtonSelectAll, gridBagConstraints); 161 162 jButtonDeselectAll.setText(it.businesslogic.ireport.util.I18n.getString("deSelectAll", "Deselect all")); 163 jButtonDeselectAll.setMaximumSize(new java.awt.Dimension (200, 26)); 164 jButtonDeselectAll.setMinimumSize(new java.awt.Dimension (90, 26)); 165 jButtonDeselectAll.setPreferredSize(new java.awt.Dimension (120, 26)); 166 jButtonDeselectAll.addActionListener(new java.awt.event.ActionListener () { 167 public void actionPerformed(java.awt.event.ActionEvent evt) { 168 jButtonDeselectAllActionPerformed(evt); 169 } 170 }); 171 172 gridBagConstraints = new java.awt.GridBagConstraints (); 173 gridBagConstraints.gridx = 0; 174 gridBagConstraints.gridy = 1; 175 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 176 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 177 jPanel1.add(jButtonDeselectAll, gridBagConstraints); 178 179 gridBagConstraints = new java.awt.GridBagConstraints (); 180 gridBagConstraints.gridx = 0; 181 gridBagConstraints.weighty = 1.0; 182 jPanel1.add(jPanel2, gridBagConstraints); 183 184 jButtonSave.setText(it.businesslogic.ireport.util.I18n.getString("saveFontPath", "Save fonts path")); 185 jButtonSave.setMaximumSize(new java.awt.Dimension (200, 26)); 186 jButtonSave.setMinimumSize(new java.awt.Dimension (90, 26)); 187 jButtonSave.setPreferredSize(new java.awt.Dimension (120, 26)); 188 jButtonSave.addActionListener(new java.awt.event.ActionListener () { 189 public void actionPerformed(java.awt.event.ActionEvent evt) { 190 jButtonSaveActionPerformed(evt); 191 } 192 }); 193 194 gridBagConstraints = new java.awt.GridBagConstraints (); 195 gridBagConstraints.gridx = 0; 196 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 197 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 198 jPanel1.add(jButtonSave, gridBagConstraints); 199 200 jButtonCancel.setText(it.businesslogic.ireport.util.I18n.getString("cancel", "Cancel")); 201 jButtonCancel.setMaximumSize(new java.awt.Dimension (200, 26)); 202 jButtonCancel.setMinimumSize(new java.awt.Dimension (90, 26)); 203 jButtonCancel.setPreferredSize(new java.awt.Dimension (120, 26)); 204 jButtonCancel.addActionListener(new java.awt.event.ActionListener () { 205 public void actionPerformed(java.awt.event.ActionEvent evt) { 206 jButtonCancelActionPerformed(evt); 207 } 208 }); 209 210 gridBagConstraints = new java.awt.GridBagConstraints (); 211 gridBagConstraints.gridx = 0; 212 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 213 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 214 jPanel1.add(jButtonCancel, gridBagConstraints); 215 216 gridBagConstraints = new java.awt.GridBagConstraints (); 217 gridBagConstraints.gridx = 1; 218 gridBagConstraints.gridy = 1; 219 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 220 gridBagConstraints.weighty = 1.0; 221 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 4); 222 getContentPane().add(jPanel1, gridBagConstraints); 223 224 pack(); 225 } 227 private void jButtonDeselectAllActionPerformed(java.awt.event.ActionEvent evt) { DefaultListModel dlm = (DefaultListModel )jList1.getModel(); 229 230 for (int i=0; i<dlm.size(); ++i) 231 { 232 Object obj = dlm.getElementAt(i); 233 if (obj instanceof JCheckBox ) 234 { 235 JCheckBox checkbox = (JCheckBox )obj; 236 checkbox.setSelected(false); 237 } 238 } 239 jList1.updateUI(); 240 } 242 private void jButtonSelectAllActionPerformed(java.awt.event.ActionEvent evt) { 244 DefaultListModel dlm = (DefaultListModel )jList1.getModel(); 245 246 for (int i=0; i<dlm.size(); ++i) 247 { 248 Object obj = dlm.getElementAt(i); 249 if (obj instanceof JCheckBox ) 250 { 251 JCheckBox checkbox = (JCheckBox )obj; 252 checkbox.setSelected(true); 253 } 254 } 255 jList1.updateUI(); 256 257 } 259 private void formWindowClosed(java.awt.event.WindowEvent evt) { 261 } 263 private void formWindowClosing(java.awt.event.WindowEvent evt) { 265 if (modifiedPath) 266 { 267 int ret = javax.swing.JOptionPane.showConfirmDialog(this, it.businesslogic.ireport.util.I18n.getString("saveFontsPathQuestion", "Do you want save the fontspath ?")); 268 269 if (ret == javax.swing.JOptionPane.CANCEL_OPTION) 270 { 271 return; 272 } 273 274 jButtonSaveActionPerformed(null); 275 } 276 else 277 { 278 setVisible(false); 279 } 280 } 282 private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) { setVisible(false); 284 } 286 private void jButtonSaveActionPerformed(java.awt.event.ActionEvent evt) { 288 javax.swing.JOptionPane.showMessageDialog(this,it.businesslogic.ireport.util.I18n.getString("saveFontsRestartInfo", "You have to restart iReport for the changes to take effect")); 289 290 setDialogResult(javax.swing.JOptionPane.OK_OPTION); 291 setVisible(false); 292 } 294 297 public static void main(String args[]) { 298 java.awt.EventQueue.invokeLater(new Runnable () { 299 public void run() { 300 new ClassPathDialog(new javax.swing.JFrame (), true).setVisible(true); 301 } 302 }); 303 } 304 305 public void setFontspath(Vector fontPath, Vector cp) 306 { 307 Vector newcp = new Vector(cp); 308 Vector cp_old = new Vector(); 309 String path = System.getProperty("java.class.path"); 310 if (path != null && path.length()>0) 312 { 313 StringTokenizer st = new StringTokenizer(path, System.getProperty("path.separator") ); 314 315 while (st.hasMoreTokens()) 316 { 317 String s = (String )st.nextToken(); 318 if (!newcp.contains(s)) 319 { 320 newcp.add(s); 321 cp_old.add(s); 322 } 323 } 324 } 325 for (int i=0; i<fontPath.size(); ++i) { 326 String s = (String )fontPath.elementAt(i); 327 if (!newcp.contains(s)) 328 { 329 newcp.add(s); 330 } 331 } 332 333 Object [] allStrings = new Object [newcp.size()]; 334 newcp.copyInto(allStrings); 335 336 Arrays.sort(allStrings); 337 338 for (int i=0; i<allStrings.length; ++i) 339 { 340 String s = ""+allStrings[i]; 341 CheckBoxListEntry cble = new CheckBoxListEntry(s,fontPath.contains(s)); 342 343 if (!cp.contains(s) && !cp_old.contains(s)) 344 { 345 cble.setRed(true); 346 } 347 348 ((DefaultListModel )jList1.getModel()).addElement( cble); 349 } 350 } 351 352 353 354 public Vector getFontspath() 355 { 356 Vector cp = new Vector(); 357 java.util.List list = jList1.getCheckedItems(); 358 for (int i=0; i<list.size(); ++i ) 359 { 360 CheckBoxListEntry cble = (CheckBoxListEntry)list.get( i ); 361 cp.addElement( cble.getValue() + "" ); 362 } 363 364 return cp; 365 } 366 367 public int getDialogResult() { 368 return dialogResult; 369 } 370 371 public void setDialogResult(int dialogResult) { 372 this.dialogResult = dialogResult; 373 } 374 375 private javax.swing.JButton jButtonCancel; 377 private javax.swing.JButton jButtonDeselectAll; 378 private javax.swing.JButton jButtonSave; 379 private javax.swing.JButton jButtonSelectAll; 380 private javax.swing.JLabel jLabelClasspath; 381 private it.businesslogic.ireport.gui.fonts.CheckBoxList jList1; 382 private javax.swing.JPanel jPanel1; 383 private javax.swing.JPanel jPanel2; 384 private javax.swing.JScrollPane jScrollPane1; 385 387 public void applyI18n(){ 388 } 391 } 392 | Popular Tags |