package kiyut.ekspos;
import java.awt.CardLayout;
import javax.swing.DefaultListModel;
import kiyut.ekspos.prefs.GeneralPreferencesPane;
import kiyut.ekspos.prefs.IIOPreferencesPane;
import kiyut.ekspos.prefs.PreferencesPane;
/** Preferences Window
*
* @author Kiyut
*/
public class PreferencesWindow extends javax.swing.JDialog {
private static String GENERAL_PREFS = "General";
private static String IIO_PREFS = "Codec";
private PreferencesPane generalPreferencesPane;
private PreferencesPane iioPreferencesPane;
/** Creates new form PreferencesWindow */
public PreferencesWindow(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
initCustomComponents();
loadPrefs();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
contentPane = new javax.swing.JPanel();
mainPane = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
preferencesList = new javax.swing.JList();
preferencesPane = new javax.swing.JPanel();
jSeparator1 = new javax.swing.JSeparator();
buttonPane = new javax.swing.JPanel();
okButton = new javax.swing.JButton();
cancelButton = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
formWindowClosing(evt);
}
});
contentPane.setLayout(new java.awt.GridBagLayout());
contentPane.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(5, 5, 5, 5)));
mainPane.setLayout(new java.awt.BorderLayout());
jScrollPane1.setPreferredSize(new java.awt.Dimension(75, 200));
preferencesList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
preferencesList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
preferencesListValueChanged(evt);
}
});
jScrollPane1.setViewportView(preferencesList);
mainPane.add(jScrollPane1, java.awt.BorderLayout.WEST);
preferencesPane.setLayout(new java.awt.CardLayout());
preferencesPane.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(0, 10, 0, 0)));
preferencesPane.setPreferredSize(new java.awt.Dimension(350, 300));
mainPane.add(preferencesPane, java.awt.BorderLayout.CENTER);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
contentPane.add(mainPane, gridBagConstraints);
jSeparator1.setMinimumSize(new java.awt.Dimension(0, 2));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(10, 0, 10, 0);
contentPane.add(jSeparator1, gridBagConstraints);
buttonPane.setLayout(new java.awt.GridLayout(1, 0, 5, 0));
okButton.setText("OK");
okButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
okButtonActionPerformed(evt);
}
});
buttonPane.add(okButton);
cancelButton.setText("Cancel");
cancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelButtonActionPerformed(evt);
}
});
buttonPane.add(cancelButton);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
contentPane.add(buttonPane, gridBagConstraints);
getContentPane().add(contentPane, java.awt.BorderLayout.CENTER);
}
// </editor-fold>//GEN-END:initComponents
private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
//setVisible(false);
dispose();
}//GEN-LAST:event_formWindowClosing
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
setVisible(false);
}//GEN-LAST:event_cancelButtonActionPerformed
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
savePrefs();
applyPrefs();
setVisible(false);
}//GEN-LAST:event_okButtonActionPerformed
private void preferencesListValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_preferencesListValueChanged
if (evt.getValueIsAdjusting() == true) { return;}
String name = (String)preferencesList.getSelectedValue();
CardLayout layout = (CardLayout)preferencesPane.getLayout();
layout.show(preferencesPane, name);
}//GEN-LAST:event_preferencesListValueChanged
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPanel buttonPane;
private javax.swing.JButton cancelButton;
private javax.swing.JPanel contentPane;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JPanel mainPane;
private javax.swing.JButton okButton;
private javax.swing.JList preferencesList;
private javax.swing.JPanel preferencesPane;
// End of variables declaration//GEN-END:variables
private void initCustomComponents() {
setTitle("Preferences - " + Application.getName());
generalPreferencesPane = new GeneralPreferencesPane();
iioPreferencesPane = new IIOPreferencesPane();
preferencesPane.add(generalPreferencesPane,GENERAL_PREFS);
preferencesPane.add(iioPreferencesPane,IIO_PREFS);
DefaultListModel model = new DefaultListModel();
preferencesList.setModel(model);
model.addElement(GENERAL_PREFS);
model.addElement(IIO_PREFS);
preferencesList.setSelectedIndex(0);
java.awt.Dimension size = new java.awt.Dimension(500,420);
setSize(size);
setPreferredSize(size);
}
private void loadPrefs() {
generalPreferencesPane.loadPrefs();
iioPreferencesPane.loadPrefs();
}
private void savePrefs() {
generalPreferencesPane.savePrefs();
iioPreferencesPane.savePrefs();
}
private void applyPrefs() {
WindowManager windowManager = WindowManager.getInstance();
BrowserWindow appFrame = (BrowserWindow)windowManager.getBrowserWindow();
appFrame.restoreFromPreferences();
}
}