KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > it > businesslogic > ireport > gui > wizard > BaseWizardPanel


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  * BaseWizardPanel.java
28  *
29  * Created on March 22, 2006, 8:34 PM
30  *
31  */

32
33 package it.businesslogic.ireport.gui.wizard;
34
35 import javax.swing.JLabel JavaDoc;
36 import it.businesslogic.ireport.util.I18n;
37
38 /**
39  *
40  * @author gtoffoli
41  */

42 public class BaseWizardPanel extends javax.swing.JPanel JavaDoc {
43     
44     private int currentStep = -1;
45     private GenericWizard genericWizard = null;
46     
47     private int dialogResult = javax.swing.JOptionPane.CLOSED_OPTION;
48     
49     /** Creates new form BaseWizardPanel */
50     public BaseWizardPanel() {
51         initComponents();
52         applyI18n();
53     }
54
55     public int getDialogResult() {
56         return dialogResult;
57     }
58
59     public void setDialogResult(int dialogResult) {
60         this.dialogResult = dialogResult;
61     }
62
63     public GenericWizard getGenericWizard() {
64         return genericWizard;
65     }
66
67     public void setGenericWizard(GenericWizard genericWizard) {
68         this.genericWizard = genericWizard;
69         
70         genericWizard.initWizard();
71         setCurrentStep(-1);
72         dialogResult = javax.swing.JOptionPane.CLOSED_OPTION;
73         
74         String JavaDoc[] stepsNames = genericWizard.getStepsNames();
75         jPanelLabels.removeAll();
76         
77         for (int i=0; i<stepsNames.length; ++i)
78         {
79             JLabel JavaDoc jLabelStep = new JLabel JavaDoc();
80             jLabelStep.setFont(new java.awt.Font JavaDoc( jLabelStep.getFont().getName() , 0, jLabelStep.getFont().getSize()));
81             jLabelStep.setText(stepsNames[i]);
82             java.awt.GridBagConstraints JavaDoc gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
83             gridBagConstraints.gridx = 0;
84             gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
85             gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 8, 0, 0);
86             jPanelLabels.add(jLabelStep, gridBagConstraints);
87         }
88         goNext();
89     }
90     
91     public void goNext()
92     {
93         if (getGenericWizard().nextStep(getCurrentStep()+1) )
94         {
95             setCurrentStep(getCurrentStep() + 1); // 0 = first step..
96
setCurrentStepLabel(getGenericWizard().getStepDescription(getCurrentStep()));
97             jPanelStepContainer.removeAll();
98             jPanelStepContainer.add( getGenericWizard().getStepPanel(getCurrentStep()), java.awt.BorderLayout.CENTER);
99             jPanelStepContainer.updateUI();
100             updateButtons();
101         }
102     }
103     
104     public void goStep(int x)
105     {
106         setCurrentStep( x ); // 0 = first step..
107
setCurrentStepLabel(getGenericWizard().getStepDescription(getCurrentStep()));
108         jPanelStepContainer.removeAll();
109         jPanelStepContainer.add( getGenericWizard().getStepPanel(getCurrentStep()), java.awt.BorderLayout.CENTER);
110         jPanelStepContainer.updateUI();
111         updateButtons();
112     }
113     
114     public void goPrevious()
115     {
116         if (getCurrentStep() > 0)
117         {
118             if (getGenericWizard().previousStep(getCurrentStep()-1) )
119             {
120                 setCurrentStep(getCurrentStep() - 1);
121                 setCurrentStepLabel(getGenericWizard().getStepDescription(getCurrentStep()));
122                 jPanelStepContainer.removeAll();
123                 jPanelStepContainer.add( getGenericWizard().getStepPanel(getCurrentStep()), java.awt.BorderLayout.CENTER);
124                 jPanelStepContainer.updateUI();
125
126                 updateButtons();
127             }
128         }
129     }
130     
131     
132     public void updateButtons()
133     {
134
135         getJButtonFinish().setEnabled( getGenericWizard().canFinish( getCurrentStep() ));
136         getJButtonPrev().setEnabled( getGenericWizard().canPrevious( getCurrentStep()));
137         getJButtonNext().setEnabled( getGenericWizard().canNext( getCurrentStep()) );
138     }
139     
140     
141     private void setCurrentStepLabel(String JavaDoc label)
142     {
143         jLabelStepDescription.setText( label );
144         
145         for (int i=0; i<jPanelLabels.getComponentCount(); ++i)
146         {
147             if (jPanelLabels.getComponent(i) instanceof JLabel JavaDoc)
148             {
149                 JLabel JavaDoc jLabel = (JLabel JavaDoc)jPanelLabels.getComponent(i);
150                 jLabel.setFont( new java.awt.Font JavaDoc( jLabel.getFont().getName() , (i == getCurrentStep()) ? 1 : 0, jLabel.getFont().getSize()) );
151                 jLabel.updateUI();
152             }
153         }
154     }
155
156     public int getCurrentStep() {
157         return currentStep;
158     }
159
160     public void setCurrentStep(int currentStep) {
161         this.currentStep = currentStep;
162     }
163
164     public javax.swing.JButton JavaDoc getJButtonCancel() {
165         return jButtonCancel;
166     }
167
168     public void setJButtonCancel(javax.swing.JButton JavaDoc jButtonCancel) {
169         this.jButtonCancel = jButtonCancel;
170     }
171
172     public javax.swing.JButton JavaDoc getJButtonFinish() {
173         return jButtonFinish;
174     }
175
176     public void setJButtonFinish(javax.swing.JButton JavaDoc jButtonFinish) {
177         this.jButtonFinish = jButtonFinish;
178     }
179
180     public javax.swing.JButton JavaDoc getJButtonNext() {
181         return jButtonNext;
182     }
183
184     public void setJButtonNext(javax.swing.JButton JavaDoc jButtonNext) {
185         this.jButtonNext = jButtonNext;
186     }
187
188     public javax.swing.JButton JavaDoc getJButtonPrev() {
189         return jButtonPrev;
190     }
191
192     public void setJButtonPrev(javax.swing.JButton JavaDoc jButtonPrev) {
193         this.jButtonPrev = jButtonPrev;
194     }
195     
196     /** This method is called from within the constructor to
197      * initialize the form.
198      * WARNING: Do NOT modify this code. The content of this method is
199      * always regenerated by the Form Editor.
200      */

201     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
202
private void initComponents() {
203         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
204
205         jPanelSteps = new javax.swing.JPanel JavaDoc();
206         jLabel1 = new javax.swing.JLabel JavaDoc();
207         jSeparator2 = new javax.swing.JSeparator JavaDoc();
208         jPanelLabels = new javax.swing.JPanel JavaDoc();
209         jLabelStep1 = new javax.swing.JLabel JavaDoc();
210         jLabel7 = new javax.swing.JLabel JavaDoc();
211         jPanelContent = new javax.swing.JPanel JavaDoc();
212         jPanel2 = new javax.swing.JPanel JavaDoc();
213         jLabelStepDescription = new javax.swing.JLabel JavaDoc();
214         jSeparator4 = new javax.swing.JSeparator JavaDoc();
215         jPanelStepContainer = new javax.swing.JPanel JavaDoc();
216         jSeparator3 = new javax.swing.JSeparator JavaDoc();
217         jPanelContentButtons = new javax.swing.JPanel JavaDoc();
218         jButtonPrev = new javax.swing.JButton JavaDoc();
219         jButtonNext = new javax.swing.JButton JavaDoc();
220         jButtonFinish = new javax.swing.JButton JavaDoc();
221         jButtonCancel = new javax.swing.JButton JavaDoc();
222
223         setLayout(new java.awt.GridBagLayout JavaDoc());
224
225         jPanelSteps.setLayout(new java.awt.GridBagLayout JavaDoc());
226
227         jPanelSteps.setBackground(new java.awt.Color JavaDoc(207, 217, 231));
228         jPanelSteps.setPreferredSize(new java.awt.Dimension JavaDoc(150, 280));
229         jLabel1.setFont(new java.awt.Font JavaDoc("Tahoma", 1, 11));
230         jLabel1.setText("Steps");
231         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
232         gridBagConstraints.gridx = 0;
233         gridBagConstraints.gridy = 1;
234         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
235         gridBagConstraints.insets = new java.awt.Insets JavaDoc(8, 8, 0, 0);
236         jPanelSteps.add(jLabel1, gridBagConstraints);
237
238         jSeparator2.setBackground(new java.awt.Color JavaDoc(204, 204, 255));
239         jSeparator2.setForeground(new java.awt.Color JavaDoc(0, 0, 0));
240         jSeparator2.setMaximumSize(new java.awt.Dimension JavaDoc(32767, 2));
241         jSeparator2.setMinimumSize(new java.awt.Dimension JavaDoc(2, 2));
242         jSeparator2.setPreferredSize(new java.awt.Dimension JavaDoc(1, 2));
243         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
244         gridBagConstraints.gridx = 0;
245         gridBagConstraints.gridy = 2;
246         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
247         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 0, 4, 0);
248         jPanelSteps.add(jSeparator2, gridBagConstraints);
249
250         jPanelLabels.setLayout(new java.awt.GridBagLayout JavaDoc());
251
252         jPanelLabels.setOpaque(false);
253         jLabelStep1.setFont(new java.awt.Font JavaDoc("Tahoma", 1, 11));
254         jLabelStep1.setText("1. SubDataset selection");
255         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
256         gridBagConstraints.gridx = 0;
257         gridBagConstraints.gridy = 5;
258         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
259         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 8, 0, 0);
260         jPanelLabels.add(jLabelStep1, gridBagConstraints);
261
262         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
263         gridBagConstraints.gridx = 0;
264         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
265         jPanelSteps.add(jPanelLabels, gridBagConstraints);
266
267         jLabel7.setBackground(new java.awt.Color JavaDoc(207, 217, 231));
268         jLabel7.setIcon(new javax.swing.ImageIcon JavaDoc(getClass().getResource("/it/businesslogic/ireport/icons/wizard.jpg")));
269         jLabel7.setVerticalAlignment(javax.swing.SwingConstants.TOP);
270         jLabel7.setOpaque(true);
271         jLabel7.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
272         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
273         gridBagConstraints.gridx = 0;
274         gridBagConstraints.gridy = 0;
275         gridBagConstraints.gridheight = 20;
276         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
277         gridBagConstraints.weightx = 1.0;
278         gridBagConstraints.weighty = 1.0;
279         jPanelSteps.add(jLabel7, gridBagConstraints);
280
281         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
282         gridBagConstraints.gridx = 0;
283         gridBagConstraints.gridy = 0;
284         gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL;
285         gridBagConstraints.weighty = 1.0;
286         add(jPanelSteps, gridBagConstraints);
287
288         jPanelContent.setLayout(new java.awt.GridBagLayout JavaDoc());
289
290         jPanelContent.setMinimumSize(new java.awt.Dimension JavaDoc(40, 40));
291         jPanelContent.setPreferredSize(new java.awt.Dimension JavaDoc(380, 40));
292         jPanel2.setLayout(new java.awt.GridBagLayout JavaDoc());
293
294         jPanel2.setMinimumSize(new java.awt.Dimension JavaDoc(380, 40));
295         jPanel2.setPreferredSize(new java.awt.Dimension JavaDoc(380, 40));
296         jLabelStepDescription.setFont(new java.awt.Font JavaDoc("Tahoma", 1, 11));
297         jLabelStepDescription.setText("Step description");
298         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
299         gridBagConstraints.gridx = 0;
300         gridBagConstraints.gridy = 1;
301         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
302         gridBagConstraints.weightx = 1.0;
303         gridBagConstraints.insets = new java.awt.Insets JavaDoc(2, 8, 0, 0);
304         jPanel2.add(jLabelStepDescription, gridBagConstraints);
305
306         jSeparator4.setBackground(new java.awt.Color JavaDoc(204, 204, 255));
307         jSeparator4.setForeground(new java.awt.Color JavaDoc(0, 0, 0));
308         jSeparator4.setMaximumSize(new java.awt.Dimension JavaDoc(32767, 2));
309         jSeparator4.setMinimumSize(new java.awt.Dimension JavaDoc(2, 2));
310         jSeparator4.setPreferredSize(new java.awt.Dimension JavaDoc(1, 2));
311         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
312         gridBagConstraints.gridx = 0;
313         gridBagConstraints.gridy = 3;
314         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
315         gridBagConstraints.weightx = 1.0;
316         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 4, 4, 4);
317         jPanel2.add(jSeparator4, gridBagConstraints);
318
319         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
320         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
321         gridBagConstraints.weightx = 1.0;
322         jPanelContent.add(jPanel2, gridBagConstraints);
323
324         jPanelStepContainer.setLayout(new java.awt.BorderLayout JavaDoc());
325
326         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
327         gridBagConstraints.gridx = 0;
328         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
329         gridBagConstraints.weightx = 1.0;
330         gridBagConstraints.weighty = 1.0;
331         gridBagConstraints.insets = new java.awt.Insets JavaDoc(10, 10, 10, 10);
332         jPanelContent.add(jPanelStepContainer, gridBagConstraints);
333
334         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
335         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
336         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
337         gridBagConstraints.weightx = 1.0;
338         gridBagConstraints.weighty = 1.0;
339         add(jPanelContent, gridBagConstraints);
340
341         jSeparator3.setBackground(new java.awt.Color JavaDoc(204, 204, 255));
342         jSeparator3.setForeground(new java.awt.Color JavaDoc(0, 0, 0));
343         jSeparator3.setMaximumSize(new java.awt.Dimension JavaDoc(32767, 2));
344         jSeparator3.setMinimumSize(new java.awt.Dimension JavaDoc(2, 2));
345         jSeparator3.setPreferredSize(new java.awt.Dimension JavaDoc(1, 2));
346         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
347         gridBagConstraints.gridx = 0;
348         gridBagConstraints.gridy = 2;
349         gridBagConstraints.gridwidth = 2;
350         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
351         add(jSeparator3, gridBagConstraints);
352
353         jPanelContentButtons.setLayout(new java.awt.GridBagLayout JavaDoc());
354
355         jButtonPrev.setText("< Prev");
356         jButtonPrev.setEnabled(false);
357         jButtonPrev.addActionListener(new java.awt.event.ActionListener JavaDoc() {
358             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
359                 jButtonPrevActionPerformed(evt);
360             }
361         });
362
363         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
364         gridBagConstraints.insets = new java.awt.Insets JavaDoc(8, 2, 8, 2);
365         jPanelContentButtons.add(jButtonPrev, gridBagConstraints);
366
367         jButtonNext.setText("Next >");
368         jButtonNext.setEnabled(false);
369         jButtonNext.addActionListener(new java.awt.event.ActionListener JavaDoc() {
370             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
371                 jButtonNextActionPerformed(evt);
372             }
373         });
374
375         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
376         gridBagConstraints.insets = new java.awt.Insets JavaDoc(8, 2, 8, 2);
377         jPanelContentButtons.add(jButtonNext, gridBagConstraints);
378
379         jButtonFinish.setText("Finish");
380         jButtonFinish.addActionListener(new java.awt.event.ActionListener JavaDoc() {
381             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
382                 jButtonFinishActionPerformed(evt);
383             }
384         });
385
386         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
387         gridBagConstraints.insets = new java.awt.Insets JavaDoc(8, 2, 8, 2);
388         jPanelContentButtons.add(jButtonFinish, gridBagConstraints);
389
390         jButtonCancel.setText("Cancel");
391         jButtonCancel.addActionListener(new java.awt.event.ActionListener JavaDoc() {
392             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
393                 jButtonCancelActionPerformed(evt);
394             }
395         });
396
397         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
398         gridBagConstraints.insets = new java.awt.Insets JavaDoc(8, 2, 8, 4);
399         jPanelContentButtons.add(jButtonCancel, gridBagConstraints);
400
401         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
402         gridBagConstraints.gridx = 0;
403         gridBagConstraints.gridwidth = 2;
404         gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
405         gridBagConstraints.weightx = 1.0;
406         add(jPanelContentButtons, gridBagConstraints);
407
408     }// </editor-fold>//GEN-END:initComponents
409

410     private void jButtonCancelActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonCancelActionPerformed
411
setDialogResult(javax.swing.JOptionPane.CLOSED_OPTION);
412         getGenericWizard().finish(-1);
413     }//GEN-LAST:event_jButtonCancelActionPerformed
414

415     private void jButtonFinishActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonFinishActionPerformed
416
setDialogResult(javax.swing.JOptionPane.OK_OPTION);
417         getGenericWizard().finish(getCurrentStep());
418     }//GEN-LAST:event_jButtonFinishActionPerformed
419

420     private void jButtonNextActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonNextActionPerformed
421
this.goNext();
422     }//GEN-LAST:event_jButtonNextActionPerformed
423

424     private void jButtonPrevActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonPrevActionPerformed
425
this.goPrevious();
426     }//GEN-LAST:event_jButtonPrevActionPerformed
427

428     
429     // Variables declaration - do not modify//GEN-BEGIN:variables
430
private javax.swing.JButton JavaDoc jButtonCancel;
431     private javax.swing.JButton JavaDoc jButtonFinish;
432     private javax.swing.JButton JavaDoc jButtonNext;
433     private javax.swing.JButton JavaDoc jButtonPrev;
434     private javax.swing.JLabel JavaDoc jLabel1;
435     private javax.swing.JLabel JavaDoc jLabel7;
436     private javax.swing.JLabel JavaDoc jLabelStep1;
437     private javax.swing.JLabel JavaDoc jLabelStepDescription;
438     private javax.swing.JPanel JavaDoc jPanel2;
439     private javax.swing.JPanel JavaDoc jPanelContent;
440     private javax.swing.JPanel JavaDoc jPanelContentButtons;
441     private javax.swing.JPanel JavaDoc jPanelLabels;
442     private javax.swing.JPanel JavaDoc jPanelStepContainer;
443     private javax.swing.JPanel JavaDoc jPanelSteps;
444     private javax.swing.JSeparator JavaDoc jSeparator2;
445     private javax.swing.JSeparator JavaDoc jSeparator3;
446     private javax.swing.JSeparator JavaDoc jSeparator4;
447     // End of variables declaration//GEN-END:variables
448

449     public void applyI18n(){
450                 // Start autogenerated code ----------------------
451
jButtonCancel.setText(I18n.getString("baseWizardPanel.buttonCancel","Cancel"));
452                 jButtonFinish.setText(I18n.getString("baseWizardPanel.buttonFinish","Finish"));
453                 jButtonNext.setText(I18n.getString("baseWizardPanel.buttonNext","Next >"));
454                 jButtonPrev.setText(I18n.getString("baseWizardPanel.buttonPrev","< Prev"));
455                 jLabel1.setText(I18n.getString("baseWizardPanel.label1","Steps"));
456                 jLabelStep1.setText(I18n.getString("baseWizardPanel.labelStep1","1. SubDataset selection"));
457                 jLabelStepDescription.setText(I18n.getString("baseWizardPanel.labelStepDescription","Step description"));
458                 // End autogenerated code ----------------------
459
}
460 }
461
Popular Tags