/*
*
* Paros and its related class files.
*
* Paros is an HTTP/HTTPS proxy for assessing web application security.
* Copyright (C) 2003-2004 Chinotec Technologies Company
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the Clarified Artistic License
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* Clarified Artistic License for more details.
*
* You should have received a copy of the Clarified Artistic License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
// ZAP: 2012/04/25 Added @Override annotation to all appropriate methods.
// ZAP: 2012/06/25 Changed visibility of getFilterReplaceDialog() from private
// to protected to ease inheritance. Created processFilterReplaceDialog() method
// to ease extensibility and moved code from getFilterReplaceDialog() there.
// ZAP: 2013/03/03 Issue 546: Remove all template Javadoc comments
// ZAP: 2013/05/02 Re-arranged all modifiers into Java coding standard order
package org.parosproxy.paros.extension.filter;
import java.util.regex.Pattern;
import javax.swing.JOptionPane;
public abstract class FilterAbstractReplace extends FilterAdaptor {
private FilterReplaceDialog filterReplaceDialog = null;
private Pattern pattern = null;
private String txtReplace = "";
/**
* This method initializes filterReplaceDialog
*
* @return org.parosproxy.paros.extension.filter.FilterReplaceDialog
*/
protected FilterReplaceDialog getFilterReplaceDialog() {
if (filterReplaceDialog == null) {
filterReplaceDialog = new FilterReplaceDialog(getView().getMainFrame(), true);
}
return filterReplaceDialog;
}
@Override
public boolean isPropertyExists() {
return true;
}
@Override
public void editProperty() {
FilterReplaceDialog dialog = getFilterReplaceDialog();
dialog.setView(getView());
int result = dialog.showDialog();
if (result == JOptionPane.CANCEL_OPTION) {
return;
}
processFilterReplaceDialog(dialog);
}
/**
* Is called when the dialog is closed (except its exit code is
* {@link JOptionPane#CANCEL_OPTION}).
*
* @param dialog
*/
protected void processFilterReplaceDialog(FilterReplaceDialog dialog) {
// ZAP: Created new method for inheritance reasons to allow for better
// re-usability and extensibility.
if (dialog.getTxtPattern().getText().equals("")) {
pattern = null;
// disable filter when empty pattern is entered
setEnabled(false);
} else {
pattern = Pattern.compile(dialog.getTxtPattern().getText(), Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
// enable filter when pattern is entered
setEnabled(true);
}
txtReplace = dialog.getTxtReplaceWith().getText();
}
protected Pattern getPattern() {
return pattern;
}
protected String getReplaceText() {
return txtReplace;
}
}