/*
* PoliticalMode.java
*
* Created on August 18, 2007, 9:08 PM
*/
package editor.mapmode;
import editor.MapPanel;
import editor.ProvinceData.Province;
import editor.Text;
import java.awt.Graphics2D;
import java.awt.Paint;
/**
*
* @author Michael Myers
* @since 0.5pre3
*/
public final class PoliticalMode extends ProvincePaintingMode {
/** Creates a new instance of PoliticalMode */
public PoliticalMode() {
super();
}
public PoliticalMode(MapPanel panel) {
super(panel);
}
protected void paintProvince(final Graphics2D g, int provId) {
final String owner = mapPanel.getModel().getHistString(provId, "owner");
final String controller = (owner == null ? null : mapPanel.getModel().getHistString(provId, "controller"));
if (owner == null) {
mapPanel.paintProvince(g, provId, Utilities.getCtryColor("NAT"));
} else if (controller == null) {
final Paint p = Utilities.createPaint(Utilities.getCtryColor(owner), Utilities.COLOR_NO_HIST);
// if (p != null)
mapPanel.paintProvince(g, provId, p);
// else
// System.err.println("Unknown problem in PoliticalMode.java");
} else if (!owner.equalsIgnoreCase(controller)) {
final Paint p = Utilities.createPaint(Utilities.getCtryColor(owner), Utilities.getCtryColor(controller));
// if (p != null)
mapPanel.paintProvince(g, provId, p);
// else
// System.err.println("Unknown problem in PoliticalMode.java");
} else {
mapPanel.paintProvince(g, provId, Utilities.getCtryColor(owner));
}
}
protected void paintSeaZone(final Graphics2D g, int id) {
// do nothing
}
public String getTooltipExtraText(final Province curr) {
final int id = curr.getId();
if (!editor.Main.map.isLand(id))
return "";
String owner = mapPanel.getModel().getHistString(id, "owner");
String controller = mapPanel.getModel().getHistString(id, "controller");
if (owner == null && controller == null)
return "";
owner = Text.getText(owner);
controller = Text.getText(controller);
final StringBuilder ret = new StringBuilder();
if (owner != null && !Utilities.isNotACountry(owner))
ret.append("Owner: ").append(owner).append("<br />");
if (controller != null && !controller.equalsIgnoreCase(owner))
ret.append("Controller: ").append(Utilities.isNotACountry(controller) ? "none" : controller);
return ret.toString();
}
}