/*
* ReplaceDialog.java
*
* Created on July 29, 2007, 4:04 PM
*/
package javaforce;
import javaforce.ReplaceEvent;
import java.awt.event.KeyEvent;
/**
* Opens a replace text dialog that uses the ReplaceEvent interface for event
* handling.
*
* @author Peter Quiring
*/
public class ReplaceDialog extends javax.swing.JDialog {
/**
* Creates new form ReplaceDialog
*/
private ReplaceDialog(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
setTitle("Replace");
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();
jLabel2 = new javax.swing.JLabel();
findText = new javax.swing.JTextField();
replaceText = new javax.swing.JTextField();
cbWhole = new javax.swing.JCheckBox();
cbCase = new javax.swing.JCheckBox();
findReplace = new javax.swing.JButton();
replaceAll = new javax.swing.JButton();
cancel = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
anykey(evt);
}
});
jLabel1.setText("Find What:");
jLabel2.setText("Replace With:");
findText.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
anykey(evt);
}
});
replaceText.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);
}
});
findReplace.setMnemonic('f');
findReplace.setText("Find");
findReplace.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
findReplaceActionPerformed(evt);
}
});
findReplace.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
anykey(evt);
}
});
replaceAll.setMnemonic('a');
replaceAll.setText("Replace All");
replaceAll.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
replaceAllActionPerformed(evt);
}
});
replaceAll.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()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel2)
.addComponent(jLabel1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(findText, javax.swing.GroupLayout.DEFAULT_SIZE, 190, Short.MAX_VALUE)
.addComponent(replaceText, javax.swing.GroupLayout.DEFAULT_SIZE, 190, Short.MAX_VALUE)))
.addComponent(cbWhole)
.addComponent(cbCase)
.addGroup(layout.createSequentialGroup()
.addComponent(findReplace)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(replaceAll)
.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(findText, 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(replaceText, 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(findReplace)
.addComponent(replaceAll)
.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) {
findReplaceActionPerformed(null);
}
if (keyCode == KeyEvent.VK_A && mods == KeyEvent.ALT_MASK) {
replaceAllActionPerformed(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 replaceAllActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_replaceAllActionPerformed
re.replaceAllEvent(this);
this.dispose();
}//GEN-LAST:event_replaceAllActionPerformed
private void findReplaceActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_findReplaceActionPerformed
if (!found) {
found = re.findEvent(this);
if (found) {
findReplace.setText("Replace");
}
} else {
re.replaceEvent(this);
found = false;
findReplace.setText("Find");
}
}//GEN-LAST:event_findReplaceActionPerformed
// 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 findReplace;
private javax.swing.JTextField findText;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JButton replaceAll;
private javax.swing.JTextField replaceText;
// End of variables declaration//GEN-END:variables
private ReplaceEvent re;
private boolean found = false;
public String getFindText() {
return findText.getText();
}
public String getReplaceText() {
return replaceText.getText();
}
public boolean getWhole() {
return cbWhole.isSelected();
}
public boolean getCase() {
return cbCase.isSelected();
}
public static void showReplaceDialog(java.awt.Frame parent, boolean modular, String findText, String replaceText, boolean bWhole, boolean bCase, ReplaceEvent re) {
ReplaceDialog dialog = new ReplaceDialog(parent, modular);
dialog.re = re;
dialog.findText.setText(findText);
dialog.replaceText.setText(replaceText);
dialog.cbWhole.setSelected(bWhole);
dialog.cbCase.setSelected(bCase);
dialog.findText.selectAll();
dialog.setVisible(true);
}
}