1 19 20 package com.sslexplorer.upgrade; 21 22 import java.awt.BorderLayout ; 23 import java.awt.Dimension ; 24 import java.awt.FlowLayout ; 25 import java.awt.event.ActionEvent ; 26 import java.awt.event.ActionListener ; 27 import java.awt.event.WindowAdapter ; 28 import java.awt.event.WindowEvent ; 29 30 import javax.swing.ImageIcon ; 31 import javax.swing.JButton ; 32 import javax.swing.JFrame ; 33 import javax.swing.JPanel ; 34 import javax.swing.SwingConstants ; 35 36 import org.apache.commons.logging.Log; 37 import org.apache.commons.logging.LogFactory; 38 39 44 public class Upgrade { 45 46 static { 47 System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog"); 48 System.setProperty("org.apache.commons.logging.simplelog.defaultlog", "debug"); 49 } 50 51 final static Log log = LogFactory.getLog(Upgrade.class); 52 53 57 public static void main(String [] args) throws Exception { 58 59 boolean gui = System.getProperty("os.name").toLowerCase().startsWith("windows") || System.getenv("DISPLAY") != null; 60 61 if (args.length == 2 || !gui) { 62 Upgrader upgrader = new CommandLineUpgrader(args); 63 upgrader.upgrade(); 64 } else { 65 JFrame f = new JFrame ("0.1.16 to 0.2.5+ Upgrader"); 66 final Upgrader upgrader = new GUIUpgrader(); 67 f.setIconImage(new ImageIcon (Upgrade.class.getResource("upgrader-32x32.png")).getImage()); 68 f.getContentPane().setLayout(new BorderLayout ()); 69 f.getContentPane().add((JPanel )upgrader, BorderLayout.CENTER); 70 f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 71 JPanel bp = new JPanel (new FlowLayout (FlowLayout.RIGHT)); 72 final JButton start = new JButton ("Start");; 73 final JButton close = new JButton ("Close"); 74 start.addActionListener(new ActionListener () { 75 public void actionPerformed(ActionEvent e) { 76 try { 77 start.setEnabled(false); 78 close.setEnabled(false); 79 upgrader.upgrade(); 80 } 81 catch(Exception ex) { 82 upgrader.error("Failed to upgrade.", ex); 83 } 84 finally { 85 close.setEnabled(true); 86 } 87 } 88 }); 89 close.addActionListener(new ActionListener () { 90 public void actionPerformed(ActionEvent e) { 91 if(close.isEnabled()) 92 System.exit(0); 93 } 94 }); 95 bp.add(start); 96 bp.add(close); 97 f.getContentPane().add(bp, BorderLayout.SOUTH); 98 f.addWindowListener(new WindowAdapter () { 99 public void windowClosing(WindowEvent evt) { 100 if(close.isEnabled()) 101 System.exit(0); 102 } 103 }); 104 f.setSize(new Dimension (480, 460)); 105 UIUtil.positionComponent(SwingConstants.CENTER, f); 106 f.setVisible(true); 107 } 108 } 109 110 } 111 | Popular Tags |