package org.wildstang.wildrank.desktop.modes; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JProgressBar; import org.json.JSONArray; import org.json.JSONObject; import org.wildstang.wildrank.desktop.GlobalAppHandler; import org.wildstang.wildrank.desktop.utils.FileUtilities; import org.wildstang.wildrank.desktop.utils.JSONTools; import org.wildstang.wildrank.desktop.utils.Logger; public class EventConfigurationDownloader extends Mode implements ActionListener, Runnable { JButton download; JComboBox<String> spinner; static JLabel note; static JLabel downloaded; static JProgressBar progress; Thread thread; @Override public void initializePanel() { progress = new JProgressBar(); download = new JButton("Download!"); download.addActionListener(this); note = new JLabel("Not downloading"); downloaded = new JLabel("0/0"); c.gridx = 0; c.gridy = 0; c.gridwidth = 3; panel.add(download, c); c.gridx = 0; c.gridy = 1; c.gridwidth = 2; panel.add(note, c); c.gridx = 2; c.gridwidth = 1; panel.add(downloaded, c); c.gridx = 0; c.gridy = 2; c.gridwidth = 3; panel.add(progress, c); update.setMode("Event Config Downloader"); } @Override public void run() { GlobalAppHandler.getInstance().disableBackButton(); note.setText("Loading event details"); progress.setIndeterminate(true); String eventDetailsJson = JSONTools.getJsonFromUrl("http://www.thebluealliance.com/api/v2/event/" + appData.getEventKey()); Logger.getInstance().log("EventDetails: " + eventDetailsJson.toString()); JSONObject jsonEvent = new JSONObject(eventDetailsJson); String eventMatches = JSONTools.getJsonFromUrl("http://www.thebluealliance.com/api/v2/event/" + appData.getEventKey() + "/matches"); JSONArray matchesJSONArray = new JSONArray(eventMatches); jsonEvent.put("matches", matchesJSONArray); File localFile = new File(FileUtilities.getSyncedDirectory() + File.separator + "event" + File.separator + "event.json"); try { localFile.createNewFile(); BufferedWriter bw = new BufferedWriter(new FileWriter(localFile)); bw.write(jsonEvent.toString()); bw.flush(); bw.close(); } catch (Exception e) { e.printStackTrace(); } GlobalAppHandler.getInstance().enableBackButton(); setMode(new PitAssigner()); } @Override public void actionPerformed(ActionEvent event) { if (event.getSource() == download) { thread = new Thread(this); try { thread.start(); } catch (Exception e) { e.printStackTrace(); } download.setEnabled(false); } } }