package cryodex;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.JFileChooser;
import cryodex.modules.xwing.XWingPlayer;
public class PlayerImport {
public static void importPlayers(){
BufferedReader reader = null;
try {
JFileChooser fc = new JFileChooser();
int returnVal = fc.showOpenDialog(Main.getInstance());
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
reader = new BufferedReader(new FileReader(file));
String line = reader.readLine();
Map<String, Integer> headerMap = new HashMap<String, Integer>();
String[] headers = line.split(",");
int i = 0;
for(String s : headers){
headerMap.put(s, i);
i++;
}
Integer firstName = headerMap.get("\"First Name\"");
Integer lastName = headerMap.get("\"Last Name\"");
Integer name = headerMap.get("\"Name\"");
Integer emailAddress = headerMap.get("\"Email Address\"");
Integer group = headerMap.get("\"Group\"");
Integer squad = headerMap.get("\"Squad\"");
List<Player> players = new ArrayList<Player>();
line = reader.readLine();
while(line != null){
String[] playerLine = line.split(",");
String playerName = null;
if(firstName != null && lastName != null){
playerName = playerLine[firstName] + " " + playerLine[lastName];
} else if(name != null){
playerName = playerLine[name];
}
playerName = playerName.replace("\"", "");
Player p = new Player(playerName);
p.setEmail(getString(emailAddress, playerLine));
p.setGroupName(getString(group, playerLine));
XWingPlayer xp = new XWingPlayer(p);
xp.setSquadId(getString(squad, playerLine));
p.getModuleInfo().add(xp);
players.add(p);
line = reader.readLine();
}
Main.getInstance().getRegisterPanel().importPlayers(players);
}
} catch (Exception e) {
try {
if(reader != null){
reader.close();
}
} catch (IOException e1) {}
e.printStackTrace();
}
}
private static String getString(Integer column, String[] playerLine) {
String returnString = null;
if(column != null){
returnString = playerLine[column];
returnString = returnString.replace("\"", "");
}
return returnString;
}
}