/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.dlect.update.ui; import java.io.IOException; import java.util.concurrent.ExecutionException; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; /** * * @author lee */ public class UpdaterWindow extends javax.swing.JFrame { public static void start(final String location) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (InstantiationException ex) { ex.printStackTrace(); } catch (IllegalAccessException ex) { ex.printStackTrace(); } catch (UnsupportedLookAndFeelException ex) { ex.printStackTrace(); } SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new UpdaterWindow(location).setVisible(true); } }); } private final String location; /** * Creates new form UpdaterWindow * * @param loc */ public UpdaterWindow(String loc) { initComponents(); ChangeLogPane.configureLogPane(changeLogPane, jScrollPane1); this.location = loc; new DownloadUpdateWorker(jProgressBar1) { @Override protected void done() { try { jLabel1.setText("To finish installing the update, Please close DLect."); new InstallUpdateWorker(jProgressBar1, location, this.get()).execute(); } catch (InterruptedException ex) { ex.printStackTrace(); // TODO report Error } catch (ExecutionException ex) { ex.printStackTrace(); // TODO report Error } } }.execute(); this.setLocationRelativeTo(null); } /** * 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. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; jLabel1 = new javax.swing.JLabel(); jProgressBar1 = new javax.swing.JProgressBar(); jScrollPane1 = new javax.swing.JScrollPane(); changeLogPane = new javax.swing.JEditorPane(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("DLect Updater"); setLocationByPlatform(true); setMinimumSize(new java.awt.Dimension(400, 250)); setPreferredSize(new java.awt.Dimension(400, 250)); getContentPane().setLayout(new java.awt.GridBagLayout()); jLabel1.setText("Download the latest version of DLect"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(1, 1, 1, 1); getContentPane().add(jLabel1, gridBagConstraints); jProgressBar1.setToolTipText(""); jProgressBar1.setValue(70); jProgressBar1.setString("Downloading at 100KB/s"); jProgressBar1.setStringPainted(true); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(1, 1, 1, 1); getContentPane().add(jProgressBar1, gridBagConstraints); jScrollPane1.setViewportView(changeLogPane); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; getContentPane().add(jScrollPane1, gridBagConstraints); pack(); }// </editor-fold>//GEN-END:initComponents /** * @param args the command line arguments */ public static void main(String args[]) throws IOException { java.awt.EventQueue.invokeLater(new Runnable() { @Override public void run() { new UpdaterWindow("tmp-dl.jar").setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JEditorPane changeLogPane; private javax.swing.JLabel jLabel1; private javax.swing.JProgressBar jProgressBar1; private javax.swing.JScrollPane jScrollPane1; // End of variables declaration//GEN-END:variables }