package org.seqcode.viz.components;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.seqcode.viz.paintable.AbstractPaintable;
public class ImageConfigurationFrame extends JFrame implements ActionListener {
private AbstractPaintable parent;
private JCheckBox rasterbox;
private JTextField widthfield, heightfield;
private JButton okbutton, cancelbutton;
public ImageConfigurationFrame(AbstractPaintable p) {
parent = p;
JLabel boxlabel = new JLabel("Configure Save-as-image");
rasterbox = new JCheckBox("Raster Image?",parent.getImageRaster());
JLabel widthlabel = new JLabel("Width");
JLabel heightlabel = new JLabel("Height");
widthfield = new JTextField(Integer.toString(parent.sImageWidth));
heightfield = new JTextField(Integer.toString(parent.sImageHeight));
okbutton = new JButton("OK");
cancelbutton = new JButton("Cancel");
okbutton.addActionListener(this);
cancelbutton.addActionListener(this);
JPanel toppanel = new JPanel();
toppanel.setLayout(new BorderLayout());
JPanel buttonpanel = new JPanel();
buttonpanel.add(okbutton);
buttonpanel.add(cancelbutton);
toppanel.add(buttonpanel,BorderLayout.SOUTH);
JPanel infopanel = new JPanel();
infopanel.setLayout(new BorderLayout());
infopanel.add(rasterbox,BorderLayout.NORTH);
JPanel textpanel = new JPanel();
textpanel.setLayout(new GridLayout(2,2));
textpanel.add(widthlabel);
textpanel.add(widthfield);
textpanel.add(heightlabel);
textpanel.add(heightfield);
infopanel.add(textpanel,BorderLayout.CENTER);
toppanel.add(infopanel,BorderLayout.CENTER);
getContentPane().add(toppanel);
setMinimumSize(new Dimension(150,150));
setSize(getPreferredSize());
pack();
setVisible(true);
}
public void actionPerformed (ActionEvent e) {
if (e.getSource() == okbutton) {
parent.setImageRaster(rasterbox.isSelected());
try {
parent.sImageWidth = Integer.parseInt(widthfield.getText());
} catch (NumberFormatException ex) {
}
try {
parent.sImageHeight = Integer.parseInt(heightfield.getText());
} catch (NumberFormatException ex) {
}
this.dispose();
} else if (e.getSource() == cancelbutton) {
this.dispose();
}
}
}