package games.strategy.triplea.ui.screen.drawable;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import games.strategy.engine.data.GameData;
import games.strategy.engine.data.PlayerID;
import games.strategy.engine.data.Territory;
import games.strategy.triplea.ui.IUIContext;
import games.strategy.triplea.ui.mapdata.MapData;
// Rewritten class to use country markers rather than shading for Convoy Centers/Routes.
public class ConvoyZoneDrawable implements IDrawable {
private final String m_player;
private final String m_location;
private final IUIContext m_uiContext;
public ConvoyZoneDrawable(final PlayerID player, final Territory location, final IUIContext uiContext) {
super();
m_player = player.getName();
m_location = location.getName();
m_uiContext = uiContext;
}
@Override
public void draw(final Rectangle bounds, final GameData data, final Graphics2D graphics, final MapData mapData,
final AffineTransform unscaled, final AffineTransform scaled) {
Image img;
if (mapData.useNation_convoyFlags()) {
img = m_uiContext.getFlagImageFactory().getConvoyFlag(data.getPlayerList().getPlayerID(m_player));
} else {
img = m_uiContext.getFlagImageFactory().getFlag(data.getPlayerList().getPlayerID(m_player));
}
final Point point = mapData.getConvoyMarkerLocation(data.getMap().getTerritory(m_location));
graphics.drawImage(img, point.x - bounds.x, point.y - bounds.y, null);
}
@Override
public int getLevel() {
return CAPITOL_MARKER_LEVEL;
}
}