package org.ripple.power.ui.btc; import java.awt.Dialog; import java.awt.Dimension; import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.IOException; import org.ripple.power.config.LSystem; import org.ripple.power.helper.HelperWindow; import org.ripple.power.txns.btc.BTCLoader; import org.ripple.power.ui.UIRes; import org.ripple.power.ui.view.ABaseDialog; import org.ripple.power.ui.view.log.ErrorLog; import org.ripple.power.utils.SwingUtils; public final class DownloadBlocksDialog extends ABaseDialog implements ActionListener { /** * */ private static final long serialVersionUID = 1L; private final StatusPanel statusPanel; public static DownloadBlocksDialog showDialog(String text, Window parent) { DownloadBlocksDialog dialog = new DownloadBlocksDialog(text, parent); dialog.pack(); dialog.setLocationRelativeTo(parent); dialog.setVisible(true); return dialog; } public DownloadBlocksDialog(String text, Window parent) { super(LSystem.applicationMain, "Download Bitcoin Blocks", Dialog.ModalityType.DOCUMENT_MODAL); addWindowListener(HelperWindow.get()); setIconImage(UIRes.getIcon()); setResizable(false); Dimension dim = new Dimension(parent.getWidth() - 150, parent.getHeight() - 100); setPreferredSize(dim); setSize(dim); statusPanel = new StatusPanel(); setContentPane(statusPanel); addWindowListener(new ApplicationWindowListener()); } @Override public void actionPerformed(ActionEvent ae) { try { String action = ae.getActionCommand(); switch (action) { case "exit": exit(); break; } } catch (Exception exc) { ErrorLog.get().logException("Exception while processing action event", exc); } } private void exit() throws IOException { BTCLoader.shutdown(); SwingUtils.close(this); } private class ApplicationWindowListener extends WindowAdapter { public ApplicationWindowListener() { } @Override public void windowGainedFocus(WindowEvent we) { } @Override public void windowIconified(WindowEvent we) { } @Override public void windowDeiconified(WindowEvent we) { } @Override public void windowClosing(WindowEvent we) { try { exit(); } catch (Exception exc) { ErrorLog.get().logException( "Exception while closing application window", exc); } } } }