1 package org.columba.core.shutdown; 17 18 import java.awt.BorderLayout ; 19 import java.awt.Dimension ; 20 import java.awt.Font ; 21 import java.awt.event.ActionEvent ; 22 import java.awt.event.ActionListener ; 23 24 import javax.swing.BorderFactory ; 25 import javax.swing.JFrame ; 26 import javax.swing.JLabel ; 27 import javax.swing.JPanel ; 28 import javax.swing.JProgressBar ; 29 import javax.swing.Timer ; 30 31 import org.columba.core.resourceloader.GlobalResourceLoader; 32 import org.columba.core.resourceloader.ImageLoader; 33 34 35 42 public class ShutdownDialog extends JFrame implements ActionListener { 43 protected static final String RESOURCE_PATH = "org.columba.core.i18n.dialog"; 44 private JProgressBar progressBar; 45 private Timer timer; 46 47 public ShutdownDialog() throws Exception { 48 super(GlobalResourceLoader.getString(RESOURCE_PATH, "session", 49 "exit_title")); 50 51 JLabel icon = new JLabel (); 52 icon.setIcon(ImageLoader.getMiscIcon("out-of-office-48.png")); 53 54 JLabel text = new JLabel (GlobalResourceLoader.getString(RESOURCE_PATH, 55 "session", "exit_msg")); 56 text.setFont(text.getFont().deriveFont(Font.BOLD)); 57 58 JPanel panel = new JPanel (); 59 60 panel.setLayout(new BorderLayout ()); 61 62 icon.setBorder(BorderFactory.createEmptyBorder(12, 12, 6, 12)); 63 text.setBorder(BorderFactory.createEmptyBorder(0, 6, 12, 12)); 64 65 progressBar = new JProgressBar (); 66 progressBar.setIndeterminate(true); 67 progressBar.setPreferredSize(new Dimension (250, 20)); 68 69 JPanel bottomPanel = new JPanel (new BorderLayout ()); 70 bottomPanel.setBorder(BorderFactory.createEmptyBorder(0, 12, 12, 12)); 71 bottomPanel.add(progressBar, BorderLayout.CENTER); 72 73 getContentPane().setLayout(new BorderLayout ()); 74 75 getContentPane().add(panel, BorderLayout.CENTER); 76 77 getContentPane().add(icon, BorderLayout.WEST); 78 79 getContentPane().add(bottomPanel, BorderLayout.SOUTH); 80 81 panel.add(text, BorderLayout.SOUTH); 82 83 pack(); 84 85 setLocationRelativeTo(null); 86 87 timer = new Timer (2 * 1000, this); 89 timer.start(); 90 } 91 92 95 public void actionPerformed(ActionEvent arg0) { 96 setVisible(true); 97 timer.stop(); 98 } 99 100 public void close() { 101 timer.stop(); 102 103 if (isVisible()) { 104 setVisible(false); 105 } 106 } 107 } 108 | Popular Tags |