package magic.ui.screen.duel.player;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import magic.model.player.AiProfile;
import magic.model.player.IPlayerProfileListener;
import magic.model.player.PlayerProfile;
import magic.model.player.PlayerProfiles;
import magic.translate.MText;
import magic.ui.dialog.AiPropertiesDialog;
@SuppressWarnings("serial")
public class SelectAiPlayerScreen extends SelectPlayerScreen {
// translatable strings
private static final String _S1 = "Select AI Player";
public SelectAiPlayerScreen(final IPlayerProfileListener listener, final PlayerProfile playerProfile) {
super(MText.get(_S1), new AiPlayerJList());
addListener(listener);
refreshProfilesJList(playerProfile);
}
private AiProfile[] getPlayerProfilesArray() {
final List<PlayerProfile> sortedPlayersList = getSortedPlayersList();
return sortedPlayersList.toArray(new AiProfile[0]);
}
@Override
protected void createDefaultPlayerProfiles() throws IOException {
PlayerProfiles.createDefaultAiPlayerProfiles();
}
@Override
protected int getPreferredWidth() {
return 490;
}
@Override
protected void doNewPlayerAction() {
final AiPropertiesDialog dialog = new AiPropertiesDialog();
final PlayerProfile newProfile = dialog.getPlayerProfile();
if (newProfile != null) {
PlayerProfiles.getPlayerProfiles().put(newProfile.getId(), newProfile);
refreshProfilesJList(newProfile);
}
}
@Override
protected void doEditPlayerAction() {
final AiProfile profile = (AiProfile) getSelectedPlayer();
new AiPropertiesDialog(profile);
getJList().repaint();
notifyPlayerUpdated(profile);
}
@Override
protected void refreshProfilesJList() {
refreshProfilesJList(null);
}
@Override
protected void refreshProfilesJList(PlayerProfile playerProfile) {
((AiPlayerJList)getJList()).setListData(getPlayerProfilesArray());
setSelectedListItem(playerProfile);
}
@Override
protected HashMap<String, PlayerProfile> getPlayerProfilesMap() {
return PlayerProfiles.getAiPlayerProfiles();
}
}