package com.ppfold.main;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class ExportsGroup extends JPanel implements ActionListener {
private static final long serialVersionUID = -6196506765119020438L;
private JRadioButton onlyCTButton;
private JRadioButton defaultButton;
private JRadioButton exportAllButton;
private JTextField exportNameField;
public ExportsGroup(){
this.setLayout(new BoxLayout(this,BoxLayout.LINE_AXIS));
onlyCTButton = new JRadioButton("Only .ct");
defaultButton = new JRadioButton("5 files");
exportAllButton = new JRadioButton("Export all");
onlyCTButton.setToolTipText("Export only the .ct file");
defaultButton.setToolTipText("Export .ct, .st, .lseq and .seq files and .newick if tree is not given");
exportAllButton.setToolTipText("As the default, plus basepairing matrices (might generate very large files!)");
onlyCTButton.addActionListener(this);
defaultButton.addActionListener(this);
exportAllButton.addActionListener(this);
ButtonGroup group = new ButtonGroup();
group.add(onlyCTButton);
group.add(defaultButton);
group.add(exportAllButton);
JLabel label = new JLabel("Exports:");
add(label);
add(onlyCTButton);
add(defaultButton);
add(exportAllButton);
onlyCTButton.setSelected(true);
PPfoldMain.onlyCT = true;
JLabel nextlabel = new JLabel(" File prefix: ");
exportNameField = new JTextField("");
exportNameField.setToolTipText("Leave empty to match alignment name.");
exportNameField.setPreferredSize(new Dimension(100,20));
add(nextlabel);
add(exportNameField);
exportNameField.getDocument().addDocumentListener(new DocumentListener(){
public void changedUpdate(DocumentEvent arg0) {updateExportFileHandle();}
public void insertUpdate(DocumentEvent arg0) {updateExportFileHandle();}
public void removeUpdate(DocumentEvent arg0) {updateExportFileHandle();}
});
}
public void updateExportNameField(String name){
exportNameField.setText(name);
}
public void updateExportFileHandle(){
if(!exportNameField.getText().isEmpty()){
PPfoldMain.exportfilehandle = exportNameField.getText();
PPfoldMain.specialname = true;
}
else{
PPfoldMain.specialname = false;
PPfoldMain.exportfilehandle = null;
}
}
public void actionPerformed(ActionEvent arg0) {
if(onlyCTButton.isSelected()){
PPfoldMain.onlyCT = true;
PPfoldMain.exportson = false;
}
else if(defaultButton.isSelected()){
PPfoldMain.onlyCT = false;
PPfoldMain.exportson = false;
}
else if(exportAllButton.isSelected()){
PPfoldMain.onlyCT = false;
PPfoldMain.exportson = true;
}
else{
defaultButton.setSelected(true);
PPfoldMain.onlyCT = false;
PPfoldMain.exportson = false;
}
}
@Override
public void setEnabled(boolean value){
onlyCTButton.setEnabled(value);
defaultButton.setEnabled(value);
exportAllButton.setEnabled(value);
exportNameField.setEnabled(value);
}
public String getExportPrefix(){
return exportNameField.getText();
}
public void setExportPrefix(String exportfilehandle) {
exportNameField.setText(exportfilehandle);
updateExportFileHandle();
}
}