package hermes.browser.dialog.general;
import hermes.HermesException;
import hermes.browser.HermesBrowser;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.border.EmptyBorder;
import org.apache.log4j.Logger;
public class PreferencesDialog extends JDialog {
private static final Logger log = Logger.getLogger(PreferencesDialog.class);
private final JTabbedPane tabbedPane = new JTabbedPane() ;
private GeneralPreferences generalPreferences;
private CopyingMessagesPreferences copyingMessagesPreferences;
private FIXPreferences preferences;
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
PreferencesDialog dialog = new PreferencesDialog();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*
* @throws HermesException
*/
public PreferencesDialog() throws HermesException {
setBounds(100, 100, 654, 520);
getContentPane().setLayout(new BorderLayout());
JPanel options = new JPanel() ;
options.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(tabbedPane, BorderLayout.CENTER);
setLocationRelativeTo(HermesBrowser.getBrowser());
options.setLayout(new GridLayout(3, 1, 0, 0));
{
generalPreferences = new GeneralPreferences();
generalPreferences.setConfig(HermesBrowser.getBrowser().getConfig());
options.add(generalPreferences);
}
{
copyingMessagesPreferences = new CopyingMessagesPreferences();
copyingMessagesPreferences.setConfig(HermesBrowser.getBrowser().getConfig());
options.add(copyingMessagesPreferences);
}
{
preferences = new FIXPreferences();
preferences.setConfig(HermesBrowser.getBrowser().getConfig());
options.add(preferences);
}
tabbedPane.addTab("Options", options) ;
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton okButton = new JButton("OK");
okButton.setActionCommand("OK");
buttonPane.add(okButton);
getRootPane().setDefaultButton(okButton);
okButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
save();
setVisible(false) ;
}
});
}
{
JButton cancelButton = new JButton("Cancel");
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
cancelButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
setVisible(false);
}
});
}
}
}
protected void save() {
try {
generalPreferences.updateConfig(HermesBrowser.getBrowser().getConfig());
copyingMessagesPreferences.updateConfig(HermesBrowser.getBrowser().getConfig());
preferences.updateConfig(HermesBrowser.getBrowser().getConfig());
HermesBrowser.getBrowser().saveConfig();
} catch (Exception ex) {
log.error(ex.getMessage(), ex);
HermesBrowser.getBrowser().showErrorDialog("Cannot save preferences.", ex);
}
}
}