package evoker; import javax.swing.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class PDFDialog extends JDialog implements ActionListener { private boolean success; private String scoresFile; private String pdfDir; private JTextField scoresFileField; private JTextField pdfDirField; private JButton pdfBrowseButton; private JLabel pdfDirLabel; private JCheckBox allPlotsButton; private JCheckBox yesPlotsButton; private JCheckBox maybePlotsButton; private JCheckBox noPlotsButton; private JFileChooser jfc; public PDFDialog(JFrame parent){ super(parent,"Generate PDF from Scores",true); jfc = new JFileChooser("user.dir"); JPanel contents = new JPanel(); contents.setLayout(new BoxLayout(contents,BoxLayout.Y_AXIS)); JPanel scoresFilePanel = new JPanel(); scoresFilePanel.add(new JLabel("Scores file: ")); scoresFileField = new JTextField(20); scoresFilePanel.add(scoresFileField); JButton scoresBrowseButton = new JButton("Browse"); scoresBrowseButton.addActionListener(this); scoresFilePanel.add(scoresBrowseButton); contents.add(scoresFilePanel); contents.add(new JPanel()); JPanel savePlotsPanel = new JPanel(); savePlotsPanel.setLayout(new BoxLayout(savePlotsPanel,BoxLayout.PAGE_AXIS)); allPlotsButton = new JCheckBox("Save all plots"); allPlotsButton.setSelected(false); savePlotsPanel.add(allPlotsButton); yesPlotsButton = new JCheckBox("Save all Yes plots"); yesPlotsButton.setSelected(false); savePlotsPanel.add(yesPlotsButton); maybePlotsButton = new JCheckBox("Save all Maybe plots"); maybePlotsButton.setSelected(false); savePlotsPanel.add(maybePlotsButton); noPlotsButton = new JCheckBox("Save all No plots"); noPlotsButton.setSelected(false); savePlotsPanel.add(noPlotsButton); contents.add(savePlotsPanel); JPanel pdfDirPanel = new JPanel(); pdfDirLabel = new JLabel("Destination directory for PDFs: "); pdfDirPanel.add(pdfDirLabel); pdfDirField = new JTextField(20); pdfDirPanel.add(pdfDirField); pdfBrowseButton = new JButton("Save to"); pdfBrowseButton.addActionListener(this); pdfDirPanel.add(pdfBrowseButton); contents.add(pdfDirPanel); contents.add(new JPanel()); JPanel butPan = new JPanel(); JButton okbut = new JButton("OK"); getRootPane().setDefaultButton(okbut); okbut.addActionListener(this); butPan.add(okbut); JButton cancelbut = new JButton("Cancel"); cancelbut.addActionListener(this); butPan.add(cancelbut); contents.add(butPan); this.setContentPane(contents); } public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("OK")){ scoresFile = scoresFileField.getText(); pdfDir = pdfDirField.getText(); setSuccess(true); this.dispose(); }else if (e.getActionCommand().equals("Browse")){ jfc.setFileSelectionMode(JFileChooser.FILES_ONLY); if (jfc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION){ scoresFileField.setText(jfc.getSelectedFile().getAbsolutePath()); } }else if (e.getActionCommand().equals("Save to")) { jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); if (jfc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION){ pdfDirField.setText(jfc.getSelectedFile().getAbsolutePath()); } }else if (e.getActionCommand().equals("Cancel")){ setSuccess(false); this.dispose(); } } public boolean success() { return success; } public String getscoresFile() { return scoresFile; } public String getPdfDir(){ return pdfDir; } public boolean allPlots() { return allPlotsButton.isSelected(); } public boolean yesPlots() { return yesPlotsButton.isSelected(); } public boolean maybePlots() { return maybePlotsButton.isSelected(); } public boolean noPlots() { return noPlotsButton.isSelected(); } public void setSuccess(boolean b) { success = b; } }