package evoker;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class MarkerListDialog extends JDialog implements ActionListener {
private boolean success = false;
private String markerList;
private String pdfDir;
private boolean savePlots;
private boolean all;
private boolean yes;
private boolean maybe;
private boolean no;
private JTextField markerlistField;
private JTextField pdfDirField;
private JButton pdfBrowseButton;
private JLabel pdfDirLabel;
private JRadioButton savePlotsButton;
private JCheckBox allPlotsButton;
private JCheckBox yesPlotsButton;
private JCheckBox maybePlotsButton;
private JCheckBox noPlotsButton;
private JFileChooser jfc;
public MarkerListDialog(JFrame parent){
super(parent,"Load Marker List",true);
jfc = new JFileChooser("user.dir");
JPanel contents = new JPanel();
contents.setLayout(new BoxLayout(contents,BoxLayout.Y_AXIS));
JPanel markerlistPanel = new JPanel();
markerlistPanel.add(new JLabel("Marker list: "));
markerlistField = new JTextField(20);
markerlistPanel.add(markerlistField);
JButton markerBrowseButton = new JButton("Browse");
markerBrowseButton.addActionListener(this);
markerlistPanel.add(markerBrowseButton);
contents.add(markerlistPanel);
contents.add(new JPanel());
JPanel savePlotsPanel = new JPanel();
savePlotsPanel.setLayout(new BoxLayout(savePlotsPanel,BoxLayout.PAGE_AXIS));
savePlotsButton = new JRadioButton("Save viewed plots to PDF");
savePlotsButton.setSelected(false);
savePlotsButton.addActionListener(this);
savePlotsPanel.add(savePlotsButton);
allPlotsButton = new JCheckBox("Save all plots");
allPlotsButton.setSelected(false);
allPlotsButton.setEnabled(false);
savePlotsPanel.add(allPlotsButton);
yesPlotsButton = new JCheckBox("Save all Yes plots");
yesPlotsButton.setSelected(false);
yesPlotsButton.setEnabled(false);
savePlotsPanel.add(yesPlotsButton);
maybePlotsButton = new JCheckBox("Save all Maybe plots");
maybePlotsButton.setSelected(false);
maybePlotsButton.setEnabled(false);
savePlotsPanel.add(maybePlotsButton);
noPlotsButton = new JCheckBox("Save all No plots");
noPlotsButton.setSelected(false);
noPlotsButton.setEnabled(false);
savePlotsPanel.add(noPlotsButton);
contents.add(savePlotsPanel);
JPanel pdfDirPanel = new JPanel();
pdfDirLabel = new JLabel("Destination directory for PDFs: ");
pdfDirLabel.setEnabled(false);
pdfDirPanel.add(pdfDirLabel);
pdfDirField = new JTextField(20);
pdfDirField.setEnabled(false);
pdfDirPanel.add(pdfDirField);
pdfBrowseButton = new JButton("Save to");
pdfBrowseButton.addActionListener(this);
pdfBrowseButton.setEnabled(false);
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")){
markerList = markerlistField.getText();
pdfDir = pdfDirField.getText();
success = true;
this.dispose();
}else if (e.getActionCommand().equals("Save viewed plots to PDF")) {
if(savePlotsButton.isSelected()) {
pdfDirLabel.setEnabled(true);
pdfDirField.setEnabled(true);
pdfBrowseButton.setEnabled(true);
allPlotsButton.setEnabled(true);
yesPlotsButton.setEnabled(true);
maybePlotsButton.setEnabled(true);
noPlotsButton.setEnabled(true);
}else {
pdfDirLabel.setEnabled(false);
pdfDirField.setEnabled(false);
pdfBrowseButton.setEnabled(false);
allPlotsButton.setEnabled(false);
yesPlotsButton.setEnabled(false);
maybePlotsButton.setEnabled(false);
noPlotsButton.setEnabled(false);
}
}else if (e.getActionCommand().equals("Browse")){
jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
if (jfc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION){
markerlistField.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")){
this.dispose();
}
}
public boolean success() {
return success;
}
public String getMarkerList() {
return markerList;
}
public String getPdfDir(){
return pdfDir;
}
public boolean savePlots() {
return savePlotsButton.isSelected();
}
public boolean allPlots() {
return allPlotsButton.isSelected();
}
public boolean yesPlots() {
return yesPlotsButton.isSelected();
}
public boolean maybePlots() {
return maybePlotsButton.isSelected();
}
public boolean noPlots() {
return noPlotsButton.isSelected();
}
}