/*
* FindDialog.java
*
* Created on July 29, 2007, 4:04 PM
*/
package javaforce;
import javaforce.FindEvent;
import java.awt.event.KeyEvent;
/**
* Opens a find text dialog which uses FindEvent for callback handling.
*
* @author Peter Quiring
*/
public class FindDialog extends javax.swing.JDialog {
/**
* Creates new form FindDialog
*/
private FindDialog(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
setTitle("Find");
setComponentOrientation(((parent == null) ? javax.swing.JOptionPane.getRootFrame() : parent).getComponentOrientation());
if (parent != null) {
setLocationRelativeTo(parent);
}
}
/**
* 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() {
jLabel1 = new javax.swing.JLabel();
text = new javax.swing.JTextField();
cbWhole = new javax.swing.JCheckBox();
cbCase = new javax.swing.JCheckBox();
find = new javax.swing.JButton();
cancel = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setResizable(false);
addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
anykey(evt);
}
});
jLabel1.setText("Find What:");
text.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
anykey(evt);
}
});
cbWhole.setMnemonic('w');
cbWhole.setText("Match whole word only");
cbWhole.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
cbWhole.setMargin(new java.awt.Insets(0, 0, 0, 0));
cbWhole.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
anykey(evt);
}
});
cbCase.setMnemonic('c');
cbCase.setText("Match case sensitive");
cbCase.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
cbCase.setMargin(new java.awt.Insets(0, 0, 0, 0));
cbCase.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
anykey(evt);
}
});
find.setText("Find");
find.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
findActionPerformed(evt);
}
});
find.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
anykey(evt);
}
});
cancel.setText("Cancel");
cancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelActionPerformed(evt);
}
});
cancel.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
anykey(evt);
}
});
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(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(text, javax.swing.GroupLayout.DEFAULT_SIZE, 199, Short.MAX_VALUE))
.addComponent(cbWhole)
.addComponent(cbCase)
.addGroup(layout.createSequentialGroup()
.addComponent(find)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cancel)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(text, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbWhole)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbCase)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(find)
.addComponent(cancel))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// </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 == KeyEvent.VK_ESCAPE && mods == 0) {
cancelActionPerformed(null);
}
if (keyCode == KeyEvent.VK_ENTER && mods == 0) {
findActionPerformed(null);
}
}//GEN-LAST:event_anykey
private void cancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelActionPerformed
this.dispose();
}//GEN-LAST:event_cancelActionPerformed
private void findActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_findActionPerformed
fe.findEvent(this);
this.dispose();
}//GEN-LAST:event_findActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton cancel;
private javax.swing.JCheckBox cbCase;
private javax.swing.JCheckBox cbWhole;
private javax.swing.JButton find;
private javax.swing.JLabel jLabel1;
private javax.swing.JTextField text;
// End of variables declaration//GEN-END:variables
private FindEvent fe;
public String getText() {
return text.getText();
}
public boolean getWhole() {
return cbWhole.isSelected();
}
public boolean getCase() {
return cbCase.isSelected();
}
public static void showFindDialog(java.awt.Frame parent, boolean modular, String text, boolean bWhole, boolean bCase, FindEvent fe) {
FindDialog dialog = new FindDialog(parent, modular);
dialog.fe = fe;
dialog.text.setText(text);
dialog.cbWhole.setSelected(bWhole);
dialog.cbCase.setSelected(bCase);
dialog.text.selectAll();
dialog.setVisible(true);
}
}