/*
* AdvancedCustomMode.java
*
* Created on June 12, 2007, 12:47 PM
*/
package editor.mapmode;
import editor.MapPanel;
import java.awt.Graphics2D;
import java.util.regex.Pattern;
/**
* Similar to {@link CustomMode}, but with regex support.
* @author Michael Myers
*/
public class AdvancedCustomMode extends CustomMode {
private final Pattern pattern;
/** Creates a new instance of AdvancedCustomMode */
public AdvancedCustomMode(String name, String pattern) {
super(name, pattern);
this.pattern = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);
}
public AdvancedCustomMode(MapPanel panel, String name, String pattern) {
super(panel, name, pattern);
this.pattern = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);
}
protected void paintProvince(final Graphics2D g, int provId) {
final String prop = mapPanel.getModel().getHistString(provId, name);
if (prop == null || !pattern.matcher(prop).matches()) {
mapPanel.paintProvince(g, provId, notFoundColor);
} else {
mapPanel.paintProvince(g, provId, foundColor);
}
}
public String toString() {
return "Provinces with " + name + " matching " + pattern;
}
}