package editor.mapmode; import editor.MapPanel; import editor.ProvinceData.Province; import editor.Text; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Paint; /** * A <code>MapMode</code> that paints all land provinces the color of the * country that owns them. * @author Michael Myers * @since 0.4pre1 */ public class OwnerControllerMode extends ProvincePaintingMode { public OwnerControllerMode() { super(); } public OwnerControllerMode(MapPanel panel) { super(panel); } protected void paintProvince(final Graphics2D g, int provId) { final String owner = mapPanel.getModel().getHistString(provId, "owner"); final String controller = mapPanel.getModel().getHistString(provId, "controller"); if (owner == null) { mapPanel.paintProvince(g, provId, Utilities.COLOR_NO_HIST); } else if(owner.equals("")) { //no owner mapPanel.paintProvince(g, provId, getCtryColor(owner)); } else if(!(owner.equals(controller)) && controller != null && !controller.equals("")) { final Paint p = Utilities.createPaint(getCtryColor(owner), getCtryColor(controller)); mapPanel.paintProvince(g, provId, p); } else { mapPanel.paintProvince(g, provId, getCtryColor(owner)); } } protected void paintSeaZone(final Graphics2D g, int id) { // Don't paint sea zones. return; } protected Color getCtryColor(String country) { return Utilities.getCtryColor(country); } public String getTooltipExtraText(final Province current) { final int id = current.getId(); if (!editor.Main.map.isLand(id)) return ""; final String ret = Text.getText(mapPanel.getModel().getHistString(id, "owner")); if (ret.length() == 0) return ""; return "Owned by: " + ret; } }