package org.openstreetmap.josm.data.osm;
import org.openstreetmap.josm.actions.search.SearchAction.SearchMode;
import org.openstreetmap.josm.actions.search.SearchAction.SearchSetting;
/**
*
* @author Petr_DlouhĂ˝
*/
public class Filter extends SearchSetting {
private static final String version = "1";
public Boolean enable = true;
public Boolean hide = false;
public Boolean inverted = false;
public Boolean applyForChildren = true;
public Filter() {
super("", SearchMode.add, false, false);
}
public Filter(String text, SearchMode mode, boolean caseSensitive, boolean regexSearch) {
super(text, mode, caseSensitive, regexSearch);
}
public Filter(String prefText){
super("", SearchMode.add, false, false);
String[] prfs = prefText.split(";");
if(prfs.length != 10 && !prfs[0].equals(version))
throw new Error("Incompatible filter preferences");
text = prfs[1];
if(prfs[2].equals("replace")) {
mode = SearchMode.replace;
}
if(prfs[2].equals("add")) {
mode = SearchMode.add;
}
if(prfs[2].equals("remove")) {
mode = SearchMode.remove;
}
if(prfs[2].equals("in_selection")) {
mode = SearchMode.in_selection;
}
caseSensitive = Boolean.parseBoolean(prfs[3]);
regexSearch = Boolean.parseBoolean(prfs[4]);
enable = Boolean.parseBoolean(prfs[6]);
hide = Boolean.parseBoolean(prfs[7]);
inverted = Boolean.parseBoolean(prfs[8]);
applyForChildren = Boolean.parseBoolean(prfs[9]);
}
public String getPrefString(){
return version + ";" +
text + ";" + mode + ";" + caseSensitive + ";" + regexSearch + ";" +
"legacy" + ";" + enable + ";" + hide + ";" +
inverted + ";" + applyForChildren;
}
}