1 32 33 package it.businesslogic.ireport.gui.wizard; 34 35 import javax.swing.JLabel ; 36 import it.businesslogic.ireport.util.I18n; 37 38 42 public class BaseWizardPanel extends javax.swing.JPanel { 43 44 private int currentStep = -1; 45 private GenericWizard genericWizard = null; 46 47 private int dialogResult = javax.swing.JOptionPane.CLOSED_OPTION; 48 49 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 [] stepsNames = genericWizard.getStepsNames(); 75 jPanelLabels.removeAll(); 76 77 for (int i=0; i<stepsNames.length; ++i) 78 { 79 JLabel jLabelStep = new JLabel (); 80 jLabelStep.setFont(new java.awt.Font ( jLabelStep.getFont().getName() , 0, jLabelStep.getFont().getSize())); 81 jLabelStep.setText(stepsNames[i]); 82 java.awt.GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints (); 83 gridBagConstraints.gridx = 0; 84 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 85 gridBagConstraints.insets = new java.awt.Insets (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); 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 ); 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 label) 142 { 143 jLabelStepDescription.setText( label ); 144 145 for (int i=0; i<jPanelLabels.getComponentCount(); ++i) 146 { 147 if (jPanelLabels.getComponent(i) instanceof JLabel ) 148 { 149 JLabel jLabel = (JLabel )jPanelLabels.getComponent(i); 150 jLabel.setFont( new java.awt.Font ( 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 getJButtonCancel() { 165 return jButtonCancel; 166 } 167 168 public void setJButtonCancel(javax.swing.JButton jButtonCancel) { 169 this.jButtonCancel = jButtonCancel; 170 } 171 172 public javax.swing.JButton getJButtonFinish() { 173 return jButtonFinish; 174 } 175 176 public void setJButtonFinish(javax.swing.JButton jButtonFinish) { 177 this.jButtonFinish = jButtonFinish; 178 } 179 180 public javax.swing.JButton getJButtonNext() { 181 return jButtonNext; 182 } 183 184 public void setJButtonNext(javax.swing.JButton jButtonNext) { 185 this.jButtonNext = jButtonNext; 186 } 187 188 public javax.swing.JButton getJButtonPrev() { 189 return jButtonPrev; 190 } 191 192 public void setJButtonPrev(javax.swing.JButton jButtonPrev) { 193 this.jButtonPrev = jButtonPrev; 194 } 195 196 201 private void initComponents() { 203 java.awt.GridBagConstraints gridBagConstraints; 204 205 jPanelSteps = new javax.swing.JPanel (); 206 jLabel1 = new javax.swing.JLabel (); 207 jSeparator2 = new javax.swing.JSeparator (); 208 jPanelLabels = new javax.swing.JPanel (); 209 jLabelStep1 = new javax.swing.JLabel (); 210 jLabel7 = new javax.swing.JLabel (); 211 jPanelContent = new javax.swing.JPanel (); 212 jPanel2 = new javax.swing.JPanel (); 213 jLabelStepDescription = new javax.swing.JLabel (); 214 jSeparator4 = new javax.swing.JSeparator (); 215 jPanelStepContainer = new javax.swing.JPanel (); 216 jSeparator3 = new javax.swing.JSeparator (); 217 jPanelContentButtons = new javax.swing.JPanel (); 218 jButtonPrev = new javax.swing.JButton (); 219 jButtonNext = new javax.swing.JButton (); 220 jButtonFinish = new javax.swing.JButton (); 221 jButtonCancel = new javax.swing.JButton (); 222 223 setLayout(new java.awt.GridBagLayout ()); 224 225 jPanelSteps.setLayout(new java.awt.GridBagLayout ()); 226 227 jPanelSteps.setBackground(new java.awt.Color (207, 217, 231)); 228 jPanelSteps.setPreferredSize(new java.awt.Dimension (150, 280)); 229 jLabel1.setFont(new java.awt.Font ("Tahoma", 1, 11)); 230 jLabel1.setText("Steps"); 231 gridBagConstraints = new java.awt.GridBagConstraints (); 232 gridBagConstraints.gridx = 0; 233 gridBagConstraints.gridy = 1; 234 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 235 gridBagConstraints.insets = new java.awt.Insets (8, 8, 0, 0); 236 jPanelSteps.add(jLabel1, gridBagConstraints); 237 238 jSeparator2.setBackground(new java.awt.Color (204, 204, 255)); 239 jSeparator2.setForeground(new java.awt.Color (0, 0, 0)); 240 jSeparator2.setMaximumSize(new java.awt.Dimension (32767, 2)); 241 jSeparator2.setMinimumSize(new java.awt.Dimension (2, 2)); 242 jSeparator2.setPreferredSize(new java.awt.Dimension (1, 2)); 243 gridBagConstraints = new java.awt.GridBagConstraints (); 244 gridBagConstraints.gridx = 0; 245 gridBagConstraints.gridy = 2; 246 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 247 gridBagConstraints.insets = new java.awt.Insets (4, 0, 4, 0); 248 jPanelSteps.add(jSeparator2, gridBagConstraints); 249 250 jPanelLabels.setLayout(new java.awt.GridBagLayout ()); 251 252 jPanelLabels.setOpaque(false); 253 jLabelStep1.setFont(new java.awt.Font ("Tahoma", 1, 11)); 254 jLabelStep1.setText("1. SubDataset selection"); 255 gridBagConstraints = new java.awt.GridBagConstraints (); 256 gridBagConstraints.gridx = 0; 257 gridBagConstraints.gridy = 5; 258 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 259 gridBagConstraints.insets = new java.awt.Insets (0, 8, 0, 0); 260 jPanelLabels.add(jLabelStep1, gridBagConstraints); 261 262 gridBagConstraints = new java.awt.GridBagConstraints (); 263 gridBagConstraints.gridx = 0; 264 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 265 jPanelSteps.add(jPanelLabels, gridBagConstraints); 266 267 jLabel7.setBackground(new java.awt.Color (207, 217, 231)); 268 jLabel7.setIcon(new javax.swing.ImageIcon (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 (); 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 (); 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 ()); 289 290 jPanelContent.setMinimumSize(new java.awt.Dimension (40, 40)); 291 jPanelContent.setPreferredSize(new java.awt.Dimension (380, 40)); 292 jPanel2.setLayout(new java.awt.GridBagLayout ()); 293 294 jPanel2.setMinimumSize(new java.awt.Dimension (380, 40)); 295 jPanel2.setPreferredSize(new java.awt.Dimension (380, 40)); 296 jLabelStepDescription.setFont(new java.awt.Font ("Tahoma", 1, 11)); 297 jLabelStepDescription.setText("Step description"); 298 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (2, 8, 0, 0); 304 jPanel2.add(jLabelStepDescription, gridBagConstraints); 305 306 jSeparator4.setBackground(new java.awt.Color (204, 204, 255)); 307 jSeparator4.setForeground(new java.awt.Color (0, 0, 0)); 308 jSeparator4.setMaximumSize(new java.awt.Dimension (32767, 2)); 309 jSeparator4.setMinimumSize(new java.awt.Dimension (2, 2)); 310 jSeparator4.setPreferredSize(new java.awt.Dimension (1, 2)); 311 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (4, 4, 4, 4); 317 jPanel2.add(jSeparator4, gridBagConstraints); 318 319 gridBagConstraints = new java.awt.GridBagConstraints (); 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 ()); 325 326 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (10, 10, 10, 10); 332 jPanelContent.add(jPanelStepContainer, gridBagConstraints); 333 334 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (204, 204, 255)); 342 jSeparator3.setForeground(new java.awt.Color (0, 0, 0)); 343 jSeparator3.setMaximumSize(new java.awt.Dimension (32767, 2)); 344 jSeparator3.setMinimumSize(new java.awt.Dimension (2, 2)); 345 jSeparator3.setPreferredSize(new java.awt.Dimension (1, 2)); 346 gridBagConstraints = new java.awt.GridBagConstraints (); 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 ()); 354 355 jButtonPrev.setText("< Prev"); 356 jButtonPrev.setEnabled(false); 357 jButtonPrev.addActionListener(new java.awt.event.ActionListener () { 358 public void actionPerformed(java.awt.event.ActionEvent evt) { 359 jButtonPrevActionPerformed(evt); 360 } 361 }); 362 363 gridBagConstraints = new java.awt.GridBagConstraints (); 364 gridBagConstraints.insets = new java.awt.Insets (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 () { 370 public void actionPerformed(java.awt.event.ActionEvent evt) { 371 jButtonNextActionPerformed(evt); 372 } 373 }); 374 375 gridBagConstraints = new java.awt.GridBagConstraints (); 376 gridBagConstraints.insets = new java.awt.Insets (8, 2, 8, 2); 377 jPanelContentButtons.add(jButtonNext, gridBagConstraints); 378 379 jButtonFinish.setText("Finish"); 380 jButtonFinish.addActionListener(new java.awt.event.ActionListener () { 381 public void actionPerformed(java.awt.event.ActionEvent evt) { 382 jButtonFinishActionPerformed(evt); 383 } 384 }); 385 386 gridBagConstraints = new java.awt.GridBagConstraints (); 387 gridBagConstraints.insets = new java.awt.Insets (8, 2, 8, 2); 388 jPanelContentButtons.add(jButtonFinish, gridBagConstraints); 389 390 jButtonCancel.setText("Cancel"); 391 jButtonCancel.addActionListener(new java.awt.event.ActionListener () { 392 public void actionPerformed(java.awt.event.ActionEvent evt) { 393 jButtonCancelActionPerformed(evt); 394 } 395 }); 396 397 gridBagConstraints = new java.awt.GridBagConstraints (); 398 gridBagConstraints.insets = new java.awt.Insets (8, 2, 8, 4); 399 jPanelContentButtons.add(jButtonCancel, gridBagConstraints); 400 401 gridBagConstraints = new java.awt.GridBagConstraints (); 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 } 410 private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) { setDialogResult(javax.swing.JOptionPane.CLOSED_OPTION); 412 getGenericWizard().finish(-1); 413 } 415 private void jButtonFinishActionPerformed(java.awt.event.ActionEvent evt) { setDialogResult(javax.swing.JOptionPane.OK_OPTION); 417 getGenericWizard().finish(getCurrentStep()); 418 } 420 private void jButtonNextActionPerformed(java.awt.event.ActionEvent evt) { this.goNext(); 422 } 424 private void jButtonPrevActionPerformed(java.awt.event.ActionEvent evt) { this.goPrevious(); 426 } 428 429 private javax.swing.JButton jButtonCancel; 431 private javax.swing.JButton jButtonFinish; 432 private javax.swing.JButton jButtonNext; 433 private javax.swing.JButton jButtonPrev; 434 private javax.swing.JLabel jLabel1; 435 private javax.swing.JLabel jLabel7; 436 private javax.swing.JLabel jLabelStep1; 437 private javax.swing.JLabel jLabelStepDescription; 438 private javax.swing.JPanel jPanel2; 439 private javax.swing.JPanel jPanelContent; 440 private javax.swing.JPanel jPanelContentButtons; 441 private javax.swing.JPanel jPanelLabels; 442 private javax.swing.JPanel jPanelStepContainer; 443 private javax.swing.JPanel jPanelSteps; 444 private javax.swing.JSeparator jSeparator2; 445 private javax.swing.JSeparator jSeparator3; 446 private javax.swing.JSeparator jSeparator4; 447 449 public void applyI18n(){ 450 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 } 460 } 461 | Popular Tags |