package org.freehep.application;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.print.PrinterException;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import org.freehep.application.studio.Studio;
class PrintDialog extends JOptionPane implements ActionListener
{
private JButton cancel = new JButton("Cancel");
private JButton page = new JButton("Page Setup...");
private JButton preview = new JButton("Print Preview...");
private JButton ok = new JButton("OK");
private JButton setup = new JButton("Printer Setup...");
private JDialog dlg;
private PrintHelper printable;
private Studio app;
PrintDialog(Studio app, PrintHelper printable)
{
this.printable = printable;
this.app = app;
JPanel xx = new PrintOptions(printable);
setMessage(xx);
JButton[] buttons = { ok, preview, setup, page, cancel };
setOptions(buttons);
for (int i = 0; i < buttons.length; i++)
buttons[i].addActionListener(this);
enableButtons();
}
public void actionPerformed(ActionEvent e)
{
try
{
Object source = e.getSource();
if (source == ok)
{
setValue(source);
}
else if (source == cancel)
{
setValue(source);
}
else if (source == page)
{
printable.pageDialog(this);
}
else if (source == setup)
{
printable.printDialog(this);
}
else if (source == preview)
{
printable.printPreview(this);
}
else
{
enableButtons();
}
}
catch (PrinterException x)
{
Application.error(this,"Print Error",x);
}
}
int showDialog(Component parent)
{
dlg = createDialog(parent, "Plot Page Print Setup");
dlg.setVisible(true);
if (value == null)
{
return CLOSED_OPTION;
}
else if (value == ok)
{
return OK_OPTION;
}
else
{
return CANCEL_OPTION;
}
}
private void enableButtons() {}
}