package org.wildstang.wildrank.desktop.modes; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.swing.JButton; import javax.swing.JProgressBar; import org.wildstang.wildrank.desktop.GlobalAppHandler; import org.wildstang.wildrank.desktop.MatchReader; import org.wildstang.wildrank.desktop.utils.FileUtilities; import org.wildstang.wildrank.desktop.utils.Logger; public class MatchCSVGenerator extends Mode implements ActionListener { JButton retrieve; JProgressBar bar; MatchReader reader; List<File> files = new ArrayList<File>(); @Override public void initializePanel() { retrieve = new JButton("Generate Match CSV!"); retrieve.addActionListener(this); bar = new JProgressBar(); c.gridx = 0; c.gridy = 0; panel.add(retrieve, c); c.gridy = 1; panel.add(bar, c); update.setMode("Match CVS Gen"); } @Override public void actionPerformed(ActionEvent event) { GlobalAppHandler.getInstance().disableBackButton(); if (event.getSource() == retrieve) { File csv = new File(FileUtilities.getNonsyncedDirectory() + File.separator + "event" + File.separator + "WildRank.csv"); File matchesLocation = new File(FileUtilities.getSyncedDirectory() + File.separator + "matches"); csv.getParentFile().mkdirs(); matchesLocation.getParentFile().mkdirs(); try { if (!csv.exists()) { update.updateData("Creating Local XML", 0, 0); csv.createNewFile(); } } catch (IOException e) { e.printStackTrace(); } try { reader = new MatchReader(csv, appData); } catch (IOException e1) { e1.printStackTrace(); } Logger.getInstance().log("Matches locaiton: " + matchesLocation.getAbsolutePath()); listFilesForFolder(matchesLocation); update.updateData("Reading Matches", 0, files.size()); bar.setMaximum(files.size()); for (int i = 0; i < files.size(); i++) { try { update.updateData("Reading Matches", i + 1, files.size()); reader.readAerialAssist(files.get(i)); bar.setValue(i + 1); } catch (Exception e) { Logger.getInstance().log("Error in file " + files.get(i).getAbsolutePath()); e.printStackTrace(); } } update.updateData("Finished!", 0, 0); try { reader.finish(); } catch (IOException e) { e.printStackTrace(); } GlobalAppHandler.getInstance().enableBackButton(); setMode(new MainMenu()); } } public void listFilesForFolder(final File folder) { if (!folder.exists()) { folder.mkdir(); } for (final File fileEntry : folder.listFiles()) { if (fileEntry.isDirectory()) { listFilesForFolder(fileEntry); } else { files.add(fileEntry); } } } }