1 19 20 package org.netbeans.modules.dbschema.jdbcimpl.wizard; 21 22 import java.beans.PropertyChangeListener ; 23 import java.beans.PropertyChangeSupport ; 24 import java.text.MessageFormat ; 25 import java.util.ResourceBundle ; 26 import javax.swing.JComponent ; 27 import javax.swing.SwingUtilities ; 28 import org.netbeans.api.progress.ProgressHandle; 29 import org.netbeans.api.progress.ProgressHandleFactory; 30 31 import org.openide.util.NbBundle; 32 33 public class ProgressFrame extends javax.swing.JFrame { 34 35 ResourceBundle bundle = NbBundle.getBundle("org.netbeans.modules.dbschema.jdbcimpl.resources.Bundle"); public PropertyChangeSupport propertySupport; 37 private ProgressHandle progressHandle; 38 private JComponent progressComponent; 39 private int workunits; 40 private boolean finished = false; 41 42 43 public ProgressFrame() { 44 propertySupport = new PropertyChangeSupport (this); 45 46 initComponents (); 47 this.getAccessibleContext().setAccessibleDescription(bundle.getString("ACS_ProgressFrameTabA11yDesc")); okButton.getAccessibleContext().setAccessibleDescription(bundle.getString("ACS_CancelButtonA11yDesc")); 50 progressHandle = ProgressHandleFactory.createHandle(null); 51 progressComponent = ProgressHandleFactory.createProgressComponent(progressHandle); 52 progressPanel.add(progressComponent); 53 progressHandle.start(); 54 55 javax.swing.ImageIcon ideIcon = new javax.swing.ImageIcon ("/org/netbeans/core/resources/frames/ide.gif"); setIconImage(ideIcon.getImage()); 57 58 java.awt.Dimension dim = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); 59 setSize(380, 150); 60 setLocation(dim.width/2 - 190, dim.height/2 - 80); 61 } 62 63 public void dispose() { 64 if (!finished) { 65 progressHandle.finish(); 66 finished = true; 67 } 68 super.dispose(); 69 } 70 71 76 private void initComponents() { 78 java.awt.GridBagConstraints gridBagConstraints; 79 80 progressPanel = new javax.swing.JPanel (); 81 msgLabel = new javax.swing.JLabel (); 82 okButton = new javax.swing.JButton (); 83 84 getContentPane().setLayout(new java.awt.GridBagLayout ()); 85 86 setTitle(bundle.getString("Title")); 87 setResizable(false); 88 progressPanel.setLayout(new java.awt.BorderLayout ()); 89 90 progressPanel.setMinimumSize(new java.awt.Dimension (20, 20)); 91 progressPanel.setPreferredSize(new java.awt.Dimension (20, 20)); 92 gridBagConstraints = new java.awt.GridBagConstraints (); 93 gridBagConstraints.gridx = 0; 94 gridBagConstraints.gridy = 1; 95 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 96 gridBagConstraints.insets = new java.awt.Insets (0, 11, 11, 11); 97 getContentPane().add(progressPanel, gridBagConstraints); 98 99 msgLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); 100 msgLabel.setText(bundle.getString("PreparingToCapture")); 101 gridBagConstraints = new java.awt.GridBagConstraints (); 102 gridBagConstraints.gridx = 0; 103 gridBagConstraints.gridy = 0; 104 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 105 gridBagConstraints.insets = new java.awt.Insets (6, 11, 6, 11); 106 getContentPane().add(msgLabel, gridBagConstraints); 107 108 okButton.setText(bundle.getString("Close")); 109 okButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); 110 okButton.addActionListener(new java.awt.event.ActionListener () { 111 public void actionPerformed(java.awt.event.ActionEvent evt) { 112 okButtonActionPerformed(evt); 113 } 114 }); 115 116 gridBagConstraints = new java.awt.GridBagConstraints (); 117 gridBagConstraints.gridx = 0; 118 gridBagConstraints.gridy = 2; 119 gridBagConstraints.weightx = 0.3; 120 gridBagConstraints.insets = new java.awt.Insets (0, 11, 11, 11); 121 getContentPane().add(okButton, gridBagConstraints); 122 123 } 124 126 private void okButtonActionPerformed(java.awt.event.ActionEvent evt) { setVisible(false); 128 propertySupport.firePropertyChange("cancel", null, Boolean.TRUE); 130 dispose(); 131 } 133 private javax.swing.JLabel msgLabel; 135 private javax.swing.JButton okButton; 136 private javax.swing.JPanel progressPanel; 137 139 public void setMaximum(final int max) { 140 progressHandle.switchToDeterminate(max); 141 workunits = max; 142 } 143 144 public void setValue(final int value) { 145 String message; 146 147 progressHandle.progress(value); 148 149 if (value >= workunits) { 150 SwingUtilities.invokeLater(new Runnable () { 151 public void run() { 152 String message = MessageFormat.format(bundle.getString("Complete"), new String [] {Integer.toString(value)}); msgLabel.setText(message); 154 } 155 }); 156 } 157 } 158 159 public void setMessage(String msg) { 160 msgLabel.setText(msg); 161 } 162 163 public void finishProgress() { 164 SwingUtilities.invokeLater(new Runnable () { 166 public void run() { 167 progressHandle.finish(); 168 finished = true; 169 } 170 }); 171 } 172 173 public void addPropertyChangeListener(PropertyChangeListener l) { 175 propertySupport.addPropertyChangeListener (l); 176 } 177 178 public void removePropertyChangeListener(PropertyChangeListener l) { 179 propertySupport.removePropertyChangeListener (l); 180 } 181 } 182 | Popular Tags |