KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > it > businesslogic > ireport > gui > box > JBoxButton


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  * JBoxButton.java
28  *
29  * Created on May 17, 2006, 3:06 PM
30  *
31  */

32
33 package it.businesslogic.ireport.gui.box;
34 import it.businesslogic.ireport.Box;
35 import java.awt.Point JavaDoc;
36 import javax.swing.SwingUtilities JavaDoc;
37 import it.businesslogic.ireport.util.I18n;
38
39 /**
40  *
41  * @author gtoffoli
42  */

43 public class JBoxButton extends javax.swing.JPanel JavaDoc {
44     
45     private Box lastBox = null;
46     private JBoxButtonPopup popup;
47     private boolean popupOpened = false;
48     
49     /** Creates new form JBoxButton */
50     public JBoxButton() {
51         initComponents();
52         popup = new JBoxButtonPopup(this, jPanel1);
53         popup.setInvoker(this);
54         popup.setVisible(false);
55         applyI18n();
56     }
57     
58     /** This method is called from within the constructor to
59      * initialize the form.
60      * WARNING: Do NOT modify this code. The content of this method is
61      * always regenerated by the Form Editor.
62      */

63     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
64
private void initComponents() {
65         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
66
67         jPanel1 = new javax.swing.JPanel JavaDoc();
68         jButton2 = new javax.swing.JButton JavaDoc();
69         jButton3 = new javax.swing.JButton JavaDoc();
70         jButton4 = new javax.swing.JButton JavaDoc();
71         jButton5 = new javax.swing.JButton JavaDoc();
72         jButton6 = new javax.swing.JButton JavaDoc();
73         jButton7 = new javax.swing.JButton JavaDoc();
74         jButton8 = new javax.swing.JButton JavaDoc();
75         jButton9 = new javax.swing.JButton JavaDoc();
76         jButton1 = new javax.swing.JButton JavaDoc();
77
78         jPanel1.setLayout(new java.awt.GridBagLayout JavaDoc());
79
80         jPanel1.setMinimumSize(new java.awt.Dimension JavaDoc(100, 52));
81         jPanel1.setPreferredSize(new java.awt.Dimension JavaDoc(100, 52));
82         jPanel1.addMouseListener(new java.awt.event.MouseAdapter JavaDoc() {
83             public void mousePressed(java.awt.event.MouseEvent JavaDoc evt) {
84                 jPanel1MousePressed(evt);
85             }
86         });
87
88         jButton2.setIcon(new javax.swing.ImageIcon JavaDoc(getClass().getResource("/it/businesslogic/ireport/icons/toolbars/box_1.png")));
89         jButton2.setBorderPainted(false);
90         jButton2.setFocusPainted(false);
91         jButton2.setFocusable(false);
92         jButton2.setMargin(new java.awt.Insets JavaDoc(2, 2, 2, 2));
93         jButton2.setOpaque(false);
94         jButton2.setRequestFocusEnabled(false);
95         jButton2.addActionListener(new java.awt.event.ActionListener JavaDoc() {
96             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
97                 jButton2ActionPerformed(evt);
98             }
99         });
100
101         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
102         gridBagConstraints.gridy = 1;
103         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
104         gridBagConstraints.weightx = 1.0;
105         gridBagConstraints.weighty = 1.0;
106         gridBagConstraints.insets = new java.awt.Insets JavaDoc(1, 1, 1, 1);
107         jPanel1.add(jButton2, gridBagConstraints);
108
109         jButton3.setIcon(new javax.swing.ImageIcon JavaDoc(getClass().getResource("/it/businesslogic/ireport/icons/toolbars/box_2.png")));
110         jButton3.setBorderPainted(false);
111         jButton3.setFocusPainted(false);
112         jButton3.setFocusable(false);
113         jButton3.setMargin(new java.awt.Insets JavaDoc(2, 2, 2, 2));
114         jButton3.setOpaque(false);
115         jButton3.setRequestFocusEnabled(false);
116         jButton3.addActionListener(new java.awt.event.ActionListener JavaDoc() {
117             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
118                 jButton3ActionPerformed(evt);
119             }
120         });
121
122         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
123         gridBagConstraints.gridy = 1;
124         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
125         gridBagConstraints.weightx = 1.0;
126         gridBagConstraints.weighty = 1.0;
127         gridBagConstraints.insets = new java.awt.Insets JavaDoc(1, 1, 1, 1);
128         jPanel1.add(jButton3, gridBagConstraints);
129
130         jButton4.setIcon(new javax.swing.ImageIcon JavaDoc(getClass().getResource("/it/businesslogic/ireport/icons/toolbars/box_4.png")));
131         jButton4.setBorderPainted(false);
132         jButton4.setFocusPainted(false);
133         jButton4.setFocusable(false);
134         jButton4.setMargin(new java.awt.Insets JavaDoc(2, 2, 2, 2));
135         jButton4.setOpaque(false);
136         jButton4.setRequestFocusEnabled(false);
137         jButton4.addActionListener(new java.awt.event.ActionListener JavaDoc() {
138             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
139                 jButton4ActionPerformed(evt);
140             }
141         });
142
143         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
144         gridBagConstraints.gridy = 1;
145         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
146         gridBagConstraints.weightx = 1.0;
147         gridBagConstraints.weighty = 1.0;
148         gridBagConstraints.insets = new java.awt.Insets JavaDoc(1, 1, 1, 1);
149         jPanel1.add(jButton4, gridBagConstraints);
150
151         jButton5.setIcon(new javax.swing.ImageIcon JavaDoc(getClass().getResource("/it/businesslogic/ireport/icons/toolbars/box_7.png")));
152         jButton5.setBorderPainted(false);
153         jButton5.setFocusPainted(false);
154         jButton5.setFocusable(false);
155         jButton5.setMargin(new java.awt.Insets JavaDoc(2, 2, 2, 2));
156         jButton5.setOpaque(false);
157         jButton5.setRequestFocusEnabled(false);
158         jButton5.addActionListener(new java.awt.event.ActionListener JavaDoc() {
159             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
160                 jButton5ActionPerformed(evt);
161             }
162         });
163
164         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
165         gridBagConstraints.gridy = 1;
166         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
167         gridBagConstraints.weightx = 1.0;
168         gridBagConstraints.weighty = 1.0;
169         gridBagConstraints.insets = new java.awt.Insets JavaDoc(1, 1, 1, 1);
170         jPanel1.add(jButton5, gridBagConstraints);
171
172         jButton6.setIcon(new javax.swing.ImageIcon JavaDoc(getClass().getResource("/it/businesslogic/ireport/icons/toolbars/box_5.png")));
173         jButton6.setBorderPainted(false);
174         jButton6.setFocusPainted(false);
175         jButton6.setFocusable(false);
176         jButton6.setMargin(new java.awt.Insets JavaDoc(2, 2, 2, 2));
177         jButton6.setOpaque(false);
178         jButton6.setRequestFocusEnabled(false);
179         jButton6.addActionListener(new java.awt.event.ActionListener JavaDoc() {
180             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
181                 jButton6ActionPerformed(evt);
182             }
183         });
184
185         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
186         gridBagConstraints.gridy = 2;
187         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
188         gridBagConstraints.weightx = 1.0;
189         gridBagConstraints.weighty = 1.0;
190         gridBagConstraints.insets = new java.awt.Insets JavaDoc(1, 1, 1, 1);
191         jPanel1.add(jButton6, gridBagConstraints);
192
193         jButton7.setIcon(new javax.swing.ImageIcon JavaDoc(getClass().getResource("/it/businesslogic/ireport/icons/toolbars/box_3.png")));
194         jButton7.setBorderPainted(false);
195         jButton7.setFocusPainted(false);
196         jButton7.setFocusable(false);
197         jButton7.setMargin(new java.awt.Insets JavaDoc(2, 2, 2, 2));
198         jButton7.setOpaque(false);
199         jButton7.setRequestFocusEnabled(false);
200         jButton7.addActionListener(new java.awt.event.ActionListener JavaDoc() {
201             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
202                 jButton7ActionPerformed(evt);
203             }
204         });
205
206         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
207         gridBagConstraints.gridy = 2;
208         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
209         gridBagConstraints.weightx = 1.0;
210         gridBagConstraints.weighty = 1.0;
211         gridBagConstraints.insets = new java.awt.Insets JavaDoc(1, 1, 1, 1);
212         jPanel1.add(jButton7, gridBagConstraints);
213
214         jButton8.setIcon(new javax.swing.ImageIcon JavaDoc(getClass().getResource("/it/businesslogic/ireport/icons/toolbars/box_6.png")));
215         jButton8.setBorderPainted(false);
216         jButton8.setFocusPainted(false);
217         jButton8.setFocusable(false);
218         jButton8.setMargin(new java.awt.Insets JavaDoc(2, 2, 2, 2));
219         jButton8.setOpaque(false);
220         jButton8.setRequestFocusEnabled(false);
221         jButton8.addActionListener(new java.awt.event.ActionListener JavaDoc() {
222             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
223                 jButton8ActionPerformed(evt);
224             }
225         });
226
227         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
228         gridBagConstraints.gridy = 2;
229         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
230         gridBagConstraints.weightx = 1.0;
231         gridBagConstraints.weighty = 1.0;
232         gridBagConstraints.insets = new java.awt.Insets JavaDoc(1, 1, 1, 1);
233         jPanel1.add(jButton8, gridBagConstraints);
234
235         jButton9.setIcon(new javax.swing.ImageIcon JavaDoc(getClass().getResource("/it/businesslogic/ireport/icons/toolbars/box_8.png")));
236         jButton9.setBorderPainted(false);
237         jButton9.setFocusPainted(false);
238         jButton9.setFocusable(false);
239         jButton9.setMargin(new java.awt.Insets JavaDoc(2, 2, 2, 2));
240         jButton9.setOpaque(false);
241         jButton9.setRequestFocusEnabled(false);
242         jButton9.addActionListener(new java.awt.event.ActionListener JavaDoc() {
243             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
244                 jButton9ActionPerformed(evt);
245             }
246         });
247
248         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
249         gridBagConstraints.gridy = 2;
250         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
251         gridBagConstraints.weightx = 1.0;
252         gridBagConstraints.weighty = 1.0;
253         gridBagConstraints.insets = new java.awt.Insets JavaDoc(1, 1, 1, 1);
254         jPanel1.add(jButton9, gridBagConstraints);
255
256         setLayout(new java.awt.BorderLayout JavaDoc());
257
258         jButton1.setIcon(new javax.swing.ImageIcon JavaDoc(getClass().getResource("/it/businesslogic/ireport/icons/toolbars/box.png")));
259         jButton1.setMaximumSize(new java.awt.Dimension JavaDoc(32, 25));
260         jButton1.setMinimumSize(new java.awt.Dimension JavaDoc(32, 25));
261         jButton1.setPreferredSize(new java.awt.Dimension JavaDoc(32, 25));
262         jButton1.addActionListener(new java.awt.event.ActionListener JavaDoc() {
263             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
264                 jButton1ActionPerformed(evt);
265             }
266         });
267         jButton1.addFocusListener(new java.awt.event.FocusAdapter JavaDoc() {
268             public void focusLost(java.awt.event.FocusEvent JavaDoc evt) {
269                 jButton1FocusLost(evt);
270             }
271         });
272         jButton1.addMouseListener(new java.awt.event.MouseAdapter JavaDoc() {
273             public void mouseClicked(java.awt.event.MouseEvent JavaDoc evt) {
274                 jButton1MouseClicked(evt);
275             }
276         });
277
278         add(jButton1, java.awt.BorderLayout.CENTER);
279
280     }// </editor-fold>//GEN-END:initComponents
281

282     private void jButton1FocusLost(java.awt.event.FocusEvent JavaDoc evt) {//GEN-FIRST:event_jButton1FocusLost
283

284         //hidePopup();
285

286     }//GEN-LAST:event_jButton1FocusLost
287

288     private void jButton1MouseClicked(java.awt.event.MouseEvent JavaDoc evt) {//GEN-FIRST:event_jButton1MouseClicked
289
//System.out.println("jButton1MouseClicked");
290
//if (!jPanel1.contains(evt.getPoint() )) hidePopup();
291
}//GEN-LAST:event_jButton1MouseClicked
292

293     private void jPanel1MousePressed(java.awt.event.MouseEvent JavaDoc evt) {//GEN-FIRST:event_jPanel1MousePressed
294
//System.out.println("jPanel1MousePressed");
295
//if (!jPanel1.contains(evt.getPoint() )) hidePopup();
296
}//GEN-LAST:event_jPanel1MousePressed
297

298     private void jButton9ActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButton9ActionPerformed
299
selectedBox(8);
300     }//GEN-LAST:event_jButton9ActionPerformed
301

302     private void jButton8ActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButton8ActionPerformed
303
selectedBox(7);
304     }//GEN-LAST:event_jButton8ActionPerformed
305

306     private void jButton7ActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButton7ActionPerformed
307
selectedBox(6);
308     }//GEN-LAST:event_jButton7ActionPerformed
309

310     private void jButton6ActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButton6ActionPerformed
311
selectedBox(5);
312     }//GEN-LAST:event_jButton6ActionPerformed
313

314     private void jButton5ActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButton5ActionPerformed
315
selectedBox(4);
316     }//GEN-LAST:event_jButton5ActionPerformed
317

318     private void jButton4ActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButton4ActionPerformed
319
selectedBox(3);
320     }//GEN-LAST:event_jButton4ActionPerformed
321

322     private void jButton3ActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButton3ActionPerformed
323
selectedBox(2);
324     }//GEN-LAST:event_jButton3ActionPerformed
325

326     private void jButton2ActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButton2ActionPerformed
327
selectedBox(1);
328     }//GEN-LAST:event_jButton2ActionPerformed
329

330     private void jButton1ActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButton1ActionPerformed
331

332             if (popup.isVisible())
333             {
334                 hidePopup();
335             }
336             else
337             {
338                 showPopup();
339             }
340     }//GEN-LAST:event_jButton1ActionPerformed
341

342     
343     public void showPopup()
344     {
345         popup.show();
346     }
347     
348     public void hidePopup()
349     {
350       popup.setVisible(false);
351     }
352
353     
354     // Variables declaration - do not modify//GEN-BEGIN:variables
355
private javax.swing.JButton JavaDoc jButton1;
356     private javax.swing.JButton JavaDoc jButton2;
357     private javax.swing.JButton JavaDoc jButton3;
358     private javax.swing.JButton JavaDoc jButton4;
359     private javax.swing.JButton JavaDoc jButton5;
360     private javax.swing.JButton JavaDoc jButton6;
361     private javax.swing.JButton JavaDoc jButton7;
362     private javax.swing.JButton JavaDoc jButton8;
363     private javax.swing.JButton JavaDoc jButton9;
364     private javax.swing.JPanel JavaDoc jPanel1;
365     // End of variables declaration//GEN-END:variables
366

367     public void setLastBox(Box b)
368     {
369         this.lastBox = b;
370     }
371     
372     public Box getLastBox()
373     {
374         return this.lastBox;
375     }
376
377     /**
378      * Utility field used by event firing mechanism.
379      */

380     private javax.swing.event.EventListenerList JavaDoc listenerList = null;
381
382     /**
383      * Registers ActionListener to receive events.
384      * @param listener The listener to register.
385      */

386     public synchronized void addActionListener(java.awt.event.ActionListener JavaDoc listener) {
387
388         if (listenerList == null ) {
389             listenerList = new javax.swing.event.EventListenerList JavaDoc();
390         }
391         listenerList.add (java.awt.event.ActionListener JavaDoc.class, listener);
392     }
393
394     /**
395      * Removes ActionListener from the list of listeners.
396      * @param listener The listener to remove.
397      */

398     public synchronized void removeActionListener(java.awt.event.ActionListener JavaDoc listener) {
399
400         listenerList.remove (java.awt.event.ActionListener JavaDoc.class, listener);
401     }
402
403     /**
404      * Notifies all registered listeners about the event.
405      *
406      * @param event The event to be fired
407      */

408     public void fireActionListenerActionPerformed(java.awt.event.ActionEvent JavaDoc event) {
409
410         if (listenerList == null) return;
411         Object JavaDoc[] listeners = listenerList.getListenerList ();
412         for (int i = listeners.length - 2; i >= 0; i -= 2) {
413             if (listeners[i]==java.awt.event.ActionListener JavaDoc.class) {
414                 ((java.awt.event.ActionListener JavaDoc)listeners[i+1]).actionPerformed (event);
415             }
416         }
417     }
418     
419         /*
420      * Fire an event if box > 0...
421      *
422      * __1__
423      * | |
424      * 4 2
425      * |__3__|
426      *
427      * 1 2 3 4
428      * Box 1: 0,0,0,0
429      * Box 2: 1,0,0,0 ---
430      * Box 3: 0,0,1,0 ___
431      * Box 4: 1,0,1,0 ===
432      * Box 5: 0,0,0,1 |
433      * Box 6: 0,1,0,0 |
434      * Box 7: 0,1,0,1 | |
435      * Box 8: 1,1,1,1 |=|
436      *
437      */

438     public void selectedBox(int b)
439     {
440         Box box = new Box();
441         if (b==2 || b==4 || b==8 )
442         {
443             box.setTopBorder("1Point");
444             //box.setTopBorderColor(Color.BLACK);
445
}
446         
447         if (b==6 || b==7 || b==8 )
448         {
449             box.setRightBorder("1Point");
450             //box.setRightBorderColor(Color.BLACK);
451
}
452         
453         if (b==3 || b==4 || b==8 )
454         {
455             box.setBottomBorder("1Point");
456             //box.setBottomBorderColor(Color.BLACK);
457
}
458         
459         if (b==5 || b==7 || b==8 )
460         {
461             box.setLeftBorder("1Point");
462             //box.setBottomBorderColor(Color.BLACK);
463
}
464         
465         setLastBox(box);
466         fireActionListenerActionPerformed(new java.awt.event.ActionEvent JavaDoc(this,b,""));
467
468         hidePopup();
469     }
470     
471     public void setEnabled(boolean b)
472     {
473         jButton1.setEnabled(b);
474         super.setEnabled(b);
475     }
476     public void applyI18n(){
477                 // Start autogenerated code ----------------------
478
// End autogenerated code ----------------------
479
}
480 }
481
Popular Tags