package org.wildstang.wildrank.desktop.modes; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; 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.utils.FileUtilities; import org.wildstang.wildrank.desktop.utils.Logger; public class NoteCompiler extends Mode implements ActionListener { JButton compile; JProgressBar progress; BufferedReader br; BufferedWriter bw; @Override protected void initializePanel() { progress = new JProgressBar(); compile = new JButton("Compile"); compile.addActionListener(this); c.gridx = 0; c.gridy = 0; c.gridwidth = 3; panel.add(compile, c); c.gridy = 1; panel.add(progress, c); update.setMode("Note Compiler"); } public void compile() throws IOException { GlobalAppHandler.getInstance().disableBackButton(); File folder = new File(FileUtilities.getUnintegratedDirectory() + File.separator + "notes"); Logger.getInstance().log("Folder path: " + folder.getAbsolutePath()); List<File> files = new ArrayList<File>(); FileUtilities.listFilesInDirectory(folder, files); File notesToCheck = new File(FileUtilities.getNonsyncedDirectory() + File.separator + "event" + File.separator + "notes_to_check.txt"); if (!notesToCheck.exists()) { notesToCheck.getParentFile().mkdirs(); notesToCheck.createNewFile(); } BufferedWriter toCheck = new BufferedWriter(new FileWriter(notesToCheck, true)); if (files != null) { for (File unintegratedFile : files) { File compiledFile = new File(FileUtilities.getSyncedDirectory() + File.separator + "notes" + File.separator + unintegratedFile.getName()); if (!compiledFile.getParentFile().exists()) { compiledFile.getParentFile().mkdir(); } if (!compiledFile.exists()) { compiledFile.createNewFile(); } bw = new BufferedWriter(new FileWriter(compiledFile, true)); br = new BufferedReader(new FileReader(unintegratedFile)); String line; boolean firstLine = false; if (compiledFile.length() == 0) { firstLine = true; } while ((line = br.readLine()) != null) { if (!firstLine) { bw.newLine(); } firstLine = false; bw.write(line); } if (unintegratedFile.length() != 0) { toCheck.write(unintegratedFile.getName()); toCheck.newLine(); } toCheck.flush(); bw.flush(); bw.close(); br.close(); unintegratedFile.delete(); } } toCheck.close(); GlobalAppHandler.getInstance().enableBackButton(); setMode(new MainMenu()); } @Override public void actionPerformed(ActionEvent event) { if (event.getSource() == compile) { try { compile(); } catch (IOException e) { e.printStackTrace(); GlobalAppHandler.getInstance().enableBackButton(); } } } }