KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > it > businesslogic > ireport > gui > fonts > FontsPathDialog


1 /*
2  * Copyright (C) 2005 - 2006 JasperSoft Corporation. All rights reserved.
3  * http://www.jaspersoft.com.
4  *
5  * Unless you have purchased a commercial license agreement from JasperSoft,
6  * the following license terms apply:
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as published by
10  * the Free Software Foundation.
11  *
12  * This program is distributed WITHOUT ANY WARRANTY; and without the
13  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14  * See the GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
18  * or write to:
19  *
20  * Free Software Foundation, Inc.,
21  * 59 Temple Place - Suite 330,
22  * Boston, MA USA 02111-1307
23  *
24  *
25  *
26  *
27  * FontsPathDialog.java
28  *
29  * Created on 22 aprile 2005, 18.05
30  *
31  */

32
33 package it.businesslogic.ireport.gui.fonts;
34
35 import it.businesslogic.ireport.gui.*;
36 import java.awt.event.MouseAdapter JavaDoc;
37 import java.awt.event.MouseEvent JavaDoc;
38 import javax.swing.DefaultListModel JavaDoc;
39 import java.util.*;
40 import javax.swing.JCheckBox JavaDoc;
41 import it.businesslogic.ireport.util.I18n;
42 /**
43  *
44  * @author Administrator
45  */

46 public class FontsPathDialog extends javax.swing.JDialog JavaDoc {
47
48     private int dialogResult = javax.swing.JOptionPane.CANCEL_OPTION;
49     private boolean modifiedPath = false;
50     /** Creates new form ClassPathDialog */
51     public FontsPathDialog(java.awt.Frame JavaDoc parent, boolean modal) {
52         super(parent, modal);
53         initComponents();
54         applyI18n();
55         jList1.setModel(new DefaultListModel JavaDoc());
56         it.businesslogic.ireport.util.Misc.centerFrame( this );
57
58
59         javax.swing.KeyStroke JavaDoc escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false);
60         javax.swing.Action JavaDoc escapeAction = new javax.swing.AbstractAction JavaDoc() {
61             public void actionPerformed(java.awt.event.ActionEvent JavaDoc 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 JavaDoc()
71         {
72             public void mousePressed(MouseEvent JavaDoc e)
73             {
74                modifiedPath = true;
75             }
76          });
77
78         //to make the default button ...
79
this.getRootPane().setDefaultButton(this.jButtonSave);
80     }
81
82     /** This method is called from within the constructor to
83      * initialize the form.
84      * WARNING: Do NOT modify this code. The content of this method is
85      * always regenerated by the Form Editor.
86      */

87     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
88
private void initComponents() {
89         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
90
91         jLabelClasspath = new javax.swing.JLabel JavaDoc();
92         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
93         jList1 = new it.businesslogic.ireport.gui.fonts.CheckBoxList();
94         jPanel1 = new javax.swing.JPanel JavaDoc();
95         jButtonSelectAll = new javax.swing.JButton JavaDoc();
96         jButtonDeselectAll = new javax.swing.JButton JavaDoc();
97         jPanel2 = new javax.swing.JPanel JavaDoc();
98         jButtonSave = new javax.swing.JButton JavaDoc();
99         jButtonCancel = new javax.swing.JButton JavaDoc();
100
101         getContentPane().setLayout(new java.awt.GridBagLayout JavaDoc());
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 JavaDoc() {
106             public void windowClosed(java.awt.event.WindowEvent JavaDoc evt) {
107                 formWindowClosed(evt);
108             }
109             public void windowClosing(java.awt.event.WindowEvent JavaDoc 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 JavaDoc();
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 JavaDoc(4, 4, 4, 4);
123         getContentPane().add(jLabelClasspath, gridBagConstraints);
124
125         jScrollPane1.setPreferredSize(new java.awt.Dimension JavaDoc(359, 260));
126         jList1.setModel(new javax.swing.AbstractListModel JavaDoc() {
127             String JavaDoc[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
128             public int getSize() { return strings.length; }
129             public Object JavaDoc getElementAt(int i) { return strings[i]; }
130         });
131         jScrollPane1.setViewportView(jList1);
132
133         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(0, 4, 4, 4);
140         getContentPane().add(jScrollPane1, gridBagConstraints);
141
142         jPanel1.setLayout(new java.awt.GridBagLayout JavaDoc());
143
144         jPanel1.setMinimumSize(new java.awt.Dimension JavaDoc(120, 10));
145         jPanel1.setPreferredSize(new java.awt.Dimension JavaDoc(120, 10));
146         jButtonSelectAll.setText(it.businesslogic.ireport.util.I18n.getString("selectAll", "Select all"));
147         jButtonSelectAll.setMaximumSize(new java.awt.Dimension JavaDoc(200, 26));
148         jButtonSelectAll.setMinimumSize(new java.awt.Dimension JavaDoc(90, 26));
149         jButtonSelectAll.setPreferredSize(new java.awt.Dimension JavaDoc(120, 26));
150         jButtonSelectAll.addActionListener(new java.awt.event.ActionListener JavaDoc() {
151             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
152                 jButtonSelectAllActionPerformed(evt);
153             }
154         });
155
156         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
157         gridBagConstraints.gridx = 0;
158         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
159         gridBagConstraints.insets = new java.awt.Insets JavaDoc(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 JavaDoc(200, 26));
164         jButtonDeselectAll.setMinimumSize(new java.awt.Dimension JavaDoc(90, 26));
165         jButtonDeselectAll.setPreferredSize(new java.awt.Dimension JavaDoc(120, 26));
166         jButtonDeselectAll.addActionListener(new java.awt.event.ActionListener JavaDoc() {
167             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
168                 jButtonDeselectAllActionPerformed(evt);
169             }
170         });
171
172         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
173         gridBagConstraints.gridx = 0;
174         gridBagConstraints.gridy = 1;
175         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
176         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 4, 0);
177         jPanel1.add(jButtonDeselectAll, gridBagConstraints);
178
179         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(200, 26));
186         jButtonSave.setMinimumSize(new java.awt.Dimension JavaDoc(90, 26));
187         jButtonSave.setPreferredSize(new java.awt.Dimension JavaDoc(120, 26));
188         jButtonSave.addActionListener(new java.awt.event.ActionListener JavaDoc() {
189             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
190                 jButtonSaveActionPerformed(evt);
191             }
192         });
193
194         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
195         gridBagConstraints.gridx = 0;
196         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
197         gridBagConstraints.insets = new java.awt.Insets JavaDoc(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 JavaDoc(200, 26));
202         jButtonCancel.setMinimumSize(new java.awt.Dimension JavaDoc(90, 26));
203         jButtonCancel.setPreferredSize(new java.awt.Dimension JavaDoc(120, 26));
204         jButtonCancel.addActionListener(new java.awt.event.ActionListener JavaDoc() {
205             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
206                 jButtonCancelActionPerformed(evt);
207             }
208         });
209
210         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
211         gridBagConstraints.gridx = 0;
212         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
213         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 4, 0);
214         jPanel1.add(jButtonCancel, gridBagConstraints);
215
216         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(0, 0, 4, 4);
222         getContentPane().add(jPanel1, gridBagConstraints);
223
224         pack();
225     }// </editor-fold>//GEN-END:initComponents
226

227     private void jButtonDeselectAllActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonDeselectAllActionPerformed
228
DefaultListModel JavaDoc dlm = (DefaultListModel JavaDoc)jList1.getModel();
229
230         for (int i=0; i<dlm.size(); ++i)
231         {
232             Object JavaDoc obj = dlm.getElementAt(i);
233             if (obj instanceof JCheckBox JavaDoc)
234             {
235                 JCheckBox JavaDoc checkbox = (JCheckBox JavaDoc)obj;
236                 checkbox.setSelected(false);
237             }
238         }
239         jList1.updateUI();
240     }//GEN-LAST:event_jButtonDeselectAllActionPerformed
241

242     private void jButtonSelectAllActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonSelectAllActionPerformed
243

244         DefaultListModel JavaDoc dlm = (DefaultListModel JavaDoc)jList1.getModel();
245
246         for (int i=0; i<dlm.size(); ++i)
247         {
248             Object JavaDoc obj = dlm.getElementAt(i);
249             if (obj instanceof JCheckBox JavaDoc)
250             {
251                 JCheckBox JavaDoc checkbox = (JCheckBox JavaDoc)obj;
252                 checkbox.setSelected(true);
253             }
254         }
255         jList1.updateUI();
256
257     }//GEN-LAST:event_jButtonSelectAllActionPerformed
258

259     private void formWindowClosed(java.awt.event.WindowEvent JavaDoc evt) {//GEN-FIRST:event_formWindowClosed
260

261     }//GEN-LAST:event_formWindowClosed
262

263     private void formWindowClosing(java.awt.event.WindowEvent JavaDoc evt) {//GEN-FIRST:event_formWindowClosing
264

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     }//GEN-LAST:event_formWindowClosing
281

282     private void jButtonCancelActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonCancelActionPerformed
283
setVisible(false);
284     }//GEN-LAST:event_jButtonCancelActionPerformed
285

286     private void jButtonSaveActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonSaveActionPerformed
287

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     }//GEN-LAST:event_jButtonSaveActionPerformed
293

294     /**
295      * @param args the command line arguments
296      */

297     public static void main(String JavaDoc args[]) {
298         java.awt.EventQueue.invokeLater(new Runnable JavaDoc() {
299             public void run() {
300                 new ClassPathDialog(new javax.swing.JFrame JavaDoc(), 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 JavaDoc path = System.getProperty("java.class.path");
310         //path += System.getProperty("path.separator") + "C:\\winnt\\fonts";
311
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 JavaDoc s = (String JavaDoc)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 JavaDoc s = (String JavaDoc)fontPath.elementAt(i);
327               if (!newcp.contains(s))
328               {
329                   newcp.add(s);
330               }
331         }
332
333         Object JavaDoc[] allStrings = new Object JavaDoc[newcp.size()];
334         newcp.copyInto(allStrings);
335
336         Arrays.sort(allStrings);
337
338         for (int i=0; i<allStrings.length; ++i)
339         {
340             String JavaDoc 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 JavaDoc)jList1.getModel()).addElement( cble);
349         }
350     }
351
352
353
354     public Vector getFontspath()
355     {
356          Vector cp = new Vector();
357          java.util.List JavaDoc 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     // Variables declaration - do not modify//GEN-BEGIN:variables
376
private javax.swing.JButton JavaDoc jButtonCancel;
377     private javax.swing.JButton JavaDoc jButtonDeselectAll;
378     private javax.swing.JButton JavaDoc jButtonSave;
379     private javax.swing.JButton JavaDoc jButtonSelectAll;
380     private javax.swing.JLabel JavaDoc jLabelClasspath;
381     private it.businesslogic.ireport.gui.fonts.CheckBoxList jList1;
382     private javax.swing.JPanel JavaDoc jPanel1;
383     private javax.swing.JPanel JavaDoc jPanel2;
384     private javax.swing.JScrollPane JavaDoc jScrollPane1;
385     // End of variables declaration//GEN-END:variables
386

387     public void applyI18n(){
388                 // Start autogenerated code ----------------------
389
// End autogenerated code ----------------------
390
}
391 }
392
Popular Tags