/* * ImageReaderProgressDialog.java * * Created on May 18, 2005, 10:41 PM */ package ika.gui; import javax.swing.*; /** * * @author jenny */ public class ImageReaderProgressDialog extends javax.swing.JDialog implements javax.imageio.event.IIOReadProgressListener{ private boolean cancel = false; /** * Creates new form ImageReaderProgressDialog */ public ImageReaderProgressDialog(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; outterPanel = new javax.swing.JPanel(); cancelButton = new javax.swing.JButton(); progressBar = new javax.swing.JProgressBar(); label = new javax.swing.JLabel(); getContentPane().setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 35, 16)); setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); setTitle("Reading Image"); setModal(true); setName("progressDialog"); setResizable(false); outterPanel.setLayout(new java.awt.GridBagLayout()); cancelButton.setText("Cancel"); cancelButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cancelButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; outterPanel.add(cancelButton, gridBagConstraints); progressBar.setPreferredSize(new java.awt.Dimension(250, 20)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 20); outterPanel.add(progressBar, gridBagConstraints); label.setText("Reading the image. Please wait..."); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(5, 0, 5, 0); outterPanel.add(label, gridBagConstraints); getContentPane().add(outterPanel); pack(); } // </editor-fold>//GEN-END:initComponents private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed this.cancel = true; }//GEN-LAST:event_cancelButtonActionPerformed public void disableCancel() { SwingUtilities.invokeLater(new Runnable() { public void run() { cancelButton.setEnabled(false); cancelButton.setFocusable(false); } }); } public void finish() { SwingUtilities.invokeLater(new Runnable() { public void run() { dispose(); } }); } public void showProgressDialog() { SwingUtilities.invokeLater(new Runnable() { public void run() { // center progress dialog in primary screen java.awt.Dimension screen = getToolkit().getScreenSize(); java.awt.Dimension dialog = getSize(); setLocation( (screen.width - dialog.width) / 2, (screen.height - dialog.height) / 2 ); show(); if (progressBar != null) progressBar.setEnabled(true); } }); } public boolean isCanceled() { return cancel; } public void imageStarted(javax.imageio.ImageReader imageReader, int param) { showProgressDialog(); this.cancel = false; } public void imageComplete(javax.imageio.ImageReader source) { } public void imageProgress(javax.imageio.ImageReader imageReader, final float percentage) { if (this.cancel) { imageReader.abort(); this.cancel = false; } else { SwingUtilities.invokeLater(new Runnable() { public void run() { if (progressBar != null) progressBar.setValue((int)percentage); } }); } } public void readAborted(javax.imageio.ImageReader source) { this.cancel = true; SwingUtilities.invokeLater(new Runnable() { public void run() { dispose(); } }); } public void sequenceComplete(javax.imageio.ImageReader source) { } public void sequenceStarted(javax.imageio.ImageReader imageReader, int param) { } public void thumbnailComplete(javax.imageio.ImageReader source) { } public void thumbnailProgress(javax.imageio.ImageReader imageReader, float param) { } public void thumbnailStarted(javax.imageio.ImageReader imageReader, int param, int param2) { } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton cancelButton; private javax.swing.JLabel label; private javax.swing.JPanel outterPanel; private javax.swing.JProgressBar progressBar; // End of variables declaration//GEN-END:variables }