import javaforce.JF;
/** Dialog to edit settings.
*
* Created on September 20, 2007, 7:17 PM
*
* @author pquiring
*/
public class EditSettings extends javax.swing.JDialog {
/** Creates new form EditSettings */
private EditSettings(java.awt.Frame parent, boolean modal, Settings settings) {
super(parent, modal);
this.settings = settings;
initComponents();
setTitle("Edit Settings");
setComponentOrientation(((parent == null) ? javax.swing.JOptionPane.getRootFrame() : parent).getComponentOrientation());
if (parent != null) setLocationRelativeTo(parent);
load();
JF.assignHotKey(this, bOk, java.awt.event.KeyEvent.VK_ENTER);
JF.assignHotKey(this, bCancel, java.awt.event.KeyEvent.VK_ESCAPE);
}
/** 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() {
bOk = new javax.swing.JButton();
bCancel = new javax.swing.JButton();
sFontSize = new javax.swing.JSpinner();
jLabel1 = new javax.swing.JLabel();
cbUnix = new javax.swing.JCheckBox();
cbClean = new javax.swing.JCheckBox();
jLabel2 = new javax.swing.JLabel();
sTabSize = new javax.swing.JSpinner();
cbAutoIndent = new javax.swing.JCheckBox();
cbLineWrap = new javax.swing.JCheckBox();
cbPreserve = new javax.swing.JCheckBox();
FormListener formListener = new FormListener();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setResizable(false);
addKeyListener(formListener);
bOk.setMnemonic('o');
bOk.setText("OK");
bOk.addActionListener(formListener);
bOk.addKeyListener(formListener);
bCancel.setMnemonic('c');
bCancel.setText("Cancel");
bCancel.addActionListener(formListener);
bCancel.addKeyListener(formListener);
sFontSize.addChangeListener(formListener);
sFontSize.addKeyListener(formListener);
jLabel1.setText("Font Size");
cbUnix.setText("Create new files in Unix format (LF)");
cbUnix.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
cbUnix.setMargin(new java.awt.Insets(0, 0, 0, 0));
cbUnix.addKeyListener(formListener);
cbClean.setText("Trim trailing spaces when saving");
cbClean.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
cbClean.setMargin(new java.awt.Insets(0, 0, 0, 0));
cbClean.addKeyListener(formListener);
jLabel2.setText("Tab Size");
sTabSize.addChangeListener(formListener);
sTabSize.addKeyListener(formListener);
cbAutoIndent.setText("Auto indent");
cbAutoIndent.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
cbAutoIndent.setMargin(new java.awt.Insets(0, 0, 0, 0));
cbLineWrap.setText("Line wrap");
cbLineWrap.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
cbLineWrap.setMargin(new java.awt.Insets(0, 0, 0, 0));
cbLineWrap.addKeyListener(formListener);
cbPreserve.setText("Preserve line endings (CRLF or LF)");
cbPreserve.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
cbPreserve.setMargin(new java.awt.Insets(0, 0, 0, 0));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(bOk)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bCancel))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(sTabSize)
.addComponent(sFontSize, javax.swing.GroupLayout.DEFAULT_SIZE, 42, Short.MAX_VALUE)))
.addComponent(cbClean)
.addComponent(cbUnix)
.addComponent(cbAutoIndent)
.addComponent(cbLineWrap)
.addComponent(cbPreserve))
.addContainerGap(55, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(sFontSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(sTabSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbPreserve)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbUnix)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbClean)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbAutoIndent)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbLineWrap)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(bOk)
.addComponent(bCancel))
.addContainerGap())
);
pack();
}
// Code for dispatching events from components to event handlers.
private class FormListener implements java.awt.event.ActionListener, java.awt.event.KeyListener, javax.swing.event.ChangeListener {
FormListener() {}
public void actionPerformed(java.awt.event.ActionEvent evt) {
if (evt.getSource() == bOk) {
EditSettings.this.bOkActionPerformed(evt);
}
else if (evt.getSource() == bCancel) {
EditSettings.this.bCancelActionPerformed(evt);
}
}
public void keyPressed(java.awt.event.KeyEvent evt) {
if (evt.getSource() == EditSettings.this) {
EditSettings.this.anykey(evt);
}
else if (evt.getSource() == bOk) {
EditSettings.this.anykey(evt);
}
else if (evt.getSource() == bCancel) {
EditSettings.this.anykey(evt);
}
else if (evt.getSource() == sFontSize) {
EditSettings.this.anykey(evt);
}
else if (evt.getSource() == cbUnix) {
EditSettings.this.anykey(evt);
}
else if (evt.getSource() == cbClean) {
EditSettings.this.anykey(evt);
}
else if (evt.getSource() == sTabSize) {
EditSettings.this.anykey(evt);
}
else if (evt.getSource() == cbLineWrap) {
EditSettings.this.anykey(evt);
}
}
public void keyReleased(java.awt.event.KeyEvent evt) {
}
public void keyTyped(java.awt.event.KeyEvent evt) {
}
public void stateChanged(javax.swing.event.ChangeEvent evt) {
if (evt.getSource() == sFontSize) {
EditSettings.this.sFontSizeStateChanged(evt);
}
else if (evt.getSource() == sTabSize) {
EditSettings.this.sTabSizeStateChanged(evt);
}
}
}// </editor-fold>//GEN-END:initComponents
private void anykey(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_anykey
int keyCode = evt.getKeyCode();
int mods = evt.getModifiers();
if (keyCode == java.awt.event.KeyEvent.VK_ESCAPE && mods == 0) {
bCancelActionPerformed(null);
}
if (keyCode == java.awt.event.KeyEvent.VK_ENTER && mods == 0) {
bOkActionPerformed(null);
}
}//GEN-LAST:event_anykey
private void sTabSizeStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_sTabSizeStateChanged
int tmp = ((Integer)sTabSize.getValue()).intValue();
if (tmp < MIN_TABSIZE) sTabSize.setValue(MIN_TABSIZE);
if (tmp > MAX_TABSIZE) sTabSize.setValue(MAX_TABSIZE);
}//GEN-LAST:event_sTabSizeStateChanged
private void sFontSizeStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_sFontSizeStateChanged
int tmp = ((Integer)sFontSize.getValue()).intValue();
if (tmp < MIN_FONTSIZE) sFontSize.setValue(MIN_FONTSIZE);
if (tmp > MAX_FONTSIZE) sFontSize.setValue(MAX_FONTSIZE);
}//GEN-LAST:event_sFontSizeStateChanged
private void bCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bCancelActionPerformed
dispose();
}//GEN-LAST:event_bCancelActionPerformed
private void bOkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bOkActionPerformed
save();
dispose();
}//GEN-LAST:event_bOkActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton bCancel;
private javax.swing.JButton bOk;
private javax.swing.JCheckBox cbAutoIndent;
private javax.swing.JCheckBox cbClean;
private javax.swing.JCheckBox cbLineWrap;
private javax.swing.JCheckBox cbPreserve;
private javax.swing.JCheckBox cbUnix;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JSpinner sFontSize;
private javax.swing.JSpinner sTabSize;
// End of variables declaration//GEN-END:variables
private Settings settings;
private static final int MIN_FONTSIZE = 8;
private static final int MAX_FONTSIZE = 24;
private static final int MIN_TABSIZE = 2;
private static final int MAX_TABSIZE = 8;
public static void editSettings(java.awt.Frame parent, Settings settings) {
EditSettings dialog = new EditSettings(parent, true, settings);
dialog.setVisible(true);
}
private void load() {
sFontSize.setValue(settings.fontSize);
cbPreserve.setSelected(settings.bPreserve);
cbUnix.setSelected(settings.bUnix);
cbClean.setSelected(settings.bClean);
sTabSize.setValue(settings.tabSize);
cbAutoIndent.setSelected(settings.bAutoIndent);
cbLineWrap.setSelected(settings.bLineWrap);
}
private void save() {
settings.fontSize = ((Integer)sFontSize.getValue()).intValue();
settings.bPreserve = cbPreserve.isSelected();
settings.bUnix = cbUnix.isSelected();
settings.bClean = cbClean.isSelected();
settings.tabSize = ((Integer)sTabSize.getValue()).intValue();
settings.bAutoIndent = cbAutoIndent.isSelected();
settings.bLineWrap = cbLineWrap.isSelected();
}
}