/** * ExportDialog.java * Created On 2007, Sep 4, 2007 1:07:44 PM * @author E. Rajasekar */ package app.astrosoft.ui.dlg; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.concurrent.FutureTask; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.SpringLayout; import app.astrosoft.exception.AstrosoftException; import app.astrosoft.ui.AstroSoft; import app.astrosoft.ui.comp.FileChooserPanel; import app.astrosoft.ui.comp.ProgressBarPanel; import app.astrosoft.ui.comp.ProgressListener; import app.astrosoft.ui.util.SpringUtilities; import app.astrosoft.ui.util.UIConsts; import app.astrosoft.util.FileOps; public class ExportDialog extends AstrosoftDialog{ private static final Dimension dlgSize = new Dimension(400,260); private static final Dimension acrobatSize = new Dimension(dlgSize.width - 100,50); private static final Dimension progressSize = new Dimension(dlgSize.width - 100,15); private FutureTask<Object> task; private JButton open = new JButton("Open"); private JButton close = new JButton("Close"); private String outputFile; private FileChooserPanel acrobatPanel; public ExportDialog(AstroSoft parent, String title, FutureTask<Object> task, String outputFile){ super(parent, title, dlgSize); this.task = task; this.outputFile = outputFile; addComponents(); setVisible(true); } private void addComponents(){ dlgPanel.setLayout(new SpringLayout()); ProgressListener listener = new ProgressListener(){ public void completed() { exportCompleted(); } }; ProgressBarPanel pbarPanel = new ProgressBarPanel(progressSize, task, "Exporting", listener); dlgPanel.add(pbarPanel); acrobatPanel = new FileChooserPanel(acrobatSize,AstroSoft.getPreferences().getAcrobatExecutable(), "Acrobat Executable", FileOps.FileDialogMode.OPEN); dlgPanel.add(acrobatPanel); JPanel p = new JPanel(); p.add(open); p.add(close); dlgPanel.add(p); open.setEnabled(false); close.setEnabled(false); SpringUtilities.makeCompactGrid(dlgPanel, 3, 1, 30,30,30,30); add(dlgPanel); setBackground(UIConsts.THEME_CLR); addListeners(); } private void addListeners() { open.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { openClicked(); } }); close.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { dispose(); } }); } protected void exportCompleted() { open.setEnabled(true); close.setEnabled(true); } protected void openClicked() { try { AstroSoft.getPreferences().setAcrobatExecutable(acrobatPanel.getFilePath()); FileOps.openDocument(outputFile); }catch(AstrosoftException e){ OptionDialog.showDialog(e.getMessage(),JOptionPane.ERROR_MESSAGE); //JOptionPane.showMessageDialog (this, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } } }