/** * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. * */ package cloudExplorer; import java.awt.Color; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JTextField; public class Graph implements Runnable { Thread getThread; NewJFrame mainFrame; String Home = System.getProperty("user.home"); String[] object = new String[1]; String temp_file = (Home + File.separator + "object.tmp"); String what = null; public static final JButton save = new JButton("Graph"); final JButton close = new JButton("Close"); final JLabel intro_label_main = new JLabel("Upon clicking the graph button on the bottom left, the selected CSV file will be"); final JLabel intro_label_main_two = new JLabel("processed and saved to your bucket and computer. There is a limitation of 475 plots."); final JLabel intro_label = new JLabel("Graphing controls:"); final JLabel graph_name = new JLabel("Name:"); final JLabel x_name = new JLabel("X-axis name:"); final JLabel x_whattograph = new JLabel("X column # in CSV:"); final JLabel y_whattograph = new JLabel("Y column # in CSV:"); final JLabel graph_size_x = new JLabel("Horizontal Graph Size: "); final JLabel graph_size_y = new JLabel("Vertical Graph Size:"); final JLabel interations = new JLabel("Plot every # of lines:"); final JLabel blank = new JLabel(" "); final JLabel blank2 = new JLabel(" "); final JLabel blank3 = new JLabel(" "); final JLabel blank4 = new JLabel(" "); final JLabel blank5 = new JLabel(" "); final JLabel blank6 = new JLabel(" "); final JLabel blank7 = new JLabel(" "); final JLabel blank8 = new JLabel(" "); final JLabel blank9 = new JLabel(" "); final JLabel blank10 = new JLabel(" "); final JLabel blank11 = new JLabel(" "); final JLabel blank12 = new JLabel(" "); final JLabel blank13 = new JLabel(" "); final JLabel blank14 = new JLabel(" "); final JLabel blank15 = new JLabel(" "); final JLabel blank16 = new JLabel(" "); final JLabel blank17 = new JLabel(" "); final JLabel blank18 = new JLabel(" "); final JLabel blank19 = new JLabel(" "); final JLabel blank20 = new JLabel(" "); final JLabel y_name = new JLabel("Y-axis name:"); final JCheckBox line_checkbox = new JCheckBox("Line Graph"); final JCheckBox debug_checkbox = new JCheckBox("Show debug info in console"); final JTextField x_whattograph_field = new JTextField("0"); final JTextField y_whattograph_field = new JTextField("1"); final JTextField graph_name_field = new JTextField("New Graph"); final JTextField x_name_field = new JTextField("X"); final JTextField y_name_field = new JTextField("Y"); final JTextField x_graphsize_field = new JTextField("600"); final JTextField interations_field = new JTextField("1"); final JTextField y_graphsize_field = new JTextField("300"); final JTextField delimiter_field = new JTextField(","); final JLabel delimiter_label = new JLabel("Delimiter:"); File check_temp = new File(temp_file); boolean first_pass = true; boolean proceed = true; boolean line = true; Boolean debug = false; Thread gt; int inter; ExecutorService executor = Executors.newFixedThreadPool((int) 1); public Graph(NewJFrame Frame, String Awhat) { mainFrame = Frame; what = Awhat; } void calibrateTextArea() { NewJFrame.jTextArea1.append("\n"); try { NewJFrame.jTextArea1.setCaretPosition(NewJFrame.jTextArea1.getLineStartOffset(NewJFrame.jTextArea1.getLineCount() - 1)); } catch (Exception e) { } } public void configure_display() { x_whattograph_field.setMaximumSize(new Dimension(250, 20)); y_whattograph_field.setMaximumSize(new Dimension(250, 20)); interations_field.setMaximumSize(new Dimension(250, 20)); interations_field.setMaximumSize(new Dimension(250, 20)); y_graphsize_field.setMaximumSize(new Dimension(250, 20)); x_graphsize_field.setMaximumSize(new Dimension(250, 20)); delimiter_field.setMaximumSize(new Dimension(250, 20)); delimiter_field.setMaximumSize(new Dimension(250, 20)); delimiter_field.setMaximumSize(new Dimension(250, 20)); graph_name_field.setMaximumSize(new Dimension(250, 20)); x_name_field.setMaximumSize(new Dimension(250, 20)); y_name_field.setMaximumSize(new Dimension(250, 20)); y_whattograph.setBackground(Color.white); y_whattograph.setForeground(Color.GRAY); y_whattograph.setBorder(null); intro_label_main.setBackground(Color.white); intro_label_main.setForeground(Color.GRAY); intro_label_main.setBorder(null); intro_label_main.setFont(intro_label_main.getFont().deriveFont(18.0f)); intro_label_main_two.setBackground(Color.white); intro_label_main_two.setForeground(Color.GRAY); intro_label_main_two.setBorder(null); intro_label_main_two.setFont(intro_label_main_two.getFont().deriveFont(18.0f)); line_checkbox.setBackground(Color.white); line_checkbox.setForeground(Color.GRAY); line_checkbox.setBorder(null); debug_checkbox.setBackground(Color.white); debug_checkbox.setForeground(Color.GRAY); debug_checkbox.setBorder(null); interations.setBackground(Color.white); interations.setForeground(Color.GRAY); interations.setBorder(null); x_whattograph.setBackground(Color.white); x_whattograph.setForeground(Color.GRAY); x_whattograph.setBorder(null); graph_name.setBackground(Color.white); graph_name.setForeground(Color.GRAY); graph_name.setBorder(null); delimiter_label.setBackground(Color.white); delimiter_label.setForeground(Color.GRAY); delimiter_label.setBorder(null); graph_size_x.setBackground(Color.white); graph_size_x.setForeground(Color.GRAY); graph_size_x.setBorder(null); intro_label.setBackground(Color.white); intro_label.setForeground(Color.GRAY); intro_label.setBorder(null); intro_label.setFont(intro_label.getFont().deriveFont(14.0f)); graph_size_y.setBackground(Color.white); graph_size_y.setForeground(Color.GRAY); graph_size_y.setBorder(null); y_name.setBackground(Color.white); y_name.setForeground(Color.GRAY); y_name.setBorder(null); x_name.setBackground(Color.white); x_name.setForeground(Color.GRAY); x_name.setBorder(null); save.setBackground(Color.white); save.setForeground(Color.BLUE); save.setBorder(null); save.setFont(save.getFont().deriveFont(14.0f)); close.setBackground(Color.white); close.setBorder(null); close.setForeground(Color.BLUE); close.setFont(close.getFont().deriveFont(14.0f)); close.setMaximumSize(new Dimension(150, 15)); save.setMaximumSize(new Dimension(150, 15)); mainFrame.jPanel11.removeAll(); mainFrame.jPanel14.removeAll(); mainFrame.jPanel11.setLayout(new BoxLayout(mainFrame.jPanel11, BoxLayout.Y_AXIS)); mainFrame.jPanel11.add(intro_label_main); mainFrame.jPanel11.add(intro_label_main_two); mainFrame.jPanel11.add(blank15); mainFrame.jPanel11.add(blank11); mainFrame.jPanel11.add(blank18); mainFrame.jPanel11.add(graph_name); mainFrame.jPanel11.add(graph_name_field); mainFrame.jPanel11.add(blank9); mainFrame.jPanel11.add(line_checkbox); mainFrame.jPanel11.add(blank6); mainFrame.jPanel11.add(blank12); mainFrame.jPanel11.add(graph_size_x); mainFrame.jPanel11.add(x_graphsize_field); mainFrame.jPanel11.add(graph_size_y); mainFrame.jPanel11.add(y_graphsize_field); mainFrame.jPanel11.add(blank); mainFrame.jPanel11.add(blank13); mainFrame.jPanel11.add(y_name); mainFrame.jPanel11.add(y_name_field); mainFrame.jPanel11.add(blank2); mainFrame.jPanel11.add(x_name); mainFrame.jPanel11.add(x_name_field); mainFrame.jPanel11.add(blank4); mainFrame.jPanel11.add(blank5); mainFrame.jPanel11.add(x_whattograph); mainFrame.jPanel11.add(x_whattograph_field); mainFrame.jPanel11.add(y_whattograph); mainFrame.jPanel11.add(y_whattograph_field); mainFrame.jPanel11.add(blank15); mainFrame.jPanel11.add(blank16); //mainFrame.jPanel11.add(delimiter_label); //mainFrame.jPanel11.add(delimiter_field); //mainFrame.jPanel11.add(blank14); //mainFrame.jPanel11.add(blank10); mainFrame.jPanel11.add(interations); mainFrame.jPanel11.add(interations_field); mainFrame.jPanel14.add(blank8); mainFrame.jPanel11.add(blank3); mainFrame.jPanel11.add(debug_checkbox); mainFrame.jPanel14.add(blank19); mainFrame.jPanel14.add(blank20); mainFrame.jPanel14.add(intro_label); mainFrame.jPanel14.add(blank7); mainFrame.jPanel14.add(save); mainFrame.jPanel14.add(blank11); mainFrame.jPanel14.add(close); save.setVisible(true); mainFrame.jPanel11.repaint(); mainFrame.jPanel11.revalidate(); mainFrame.jPanel11.validate(); mainFrame.jPanel11.add(blank2); save.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if ((x_whattograph_field.getText() == null || y_whattograph_field.getText() == null || graph_name_field.getText() == null) || x_name_field.getText() == null || y_name_field.getText() == null || x_graphsize_field.getText() == null || y_graphsize_field.getText() == null) { mainFrame.jTextArea1.append("\nError, please fill out all of the fields."); calibrateTextArea(); } else { if (debug_checkbox.isSelected()) { debug = true; } else { debug = false; } if (line_checkbox.isSelected()) { line = true; } else { line = false; } inter = Integer.parseInt(interations_field.getText()); if (!debug) { save.setVisible(false); } GraphThread.stop = false; Runnable start_graph = new GraphThread(mainFrame, what, graph_name_field.getText(), x_whattograph_field.getText(), y_whattograph_field.getText(), x_name_field.getText(), y_name_field.getText(), x_graphsize_field.getText(), y_graphsize_field.getText(), line, inter, delimiter_field.getText(), debug); executor.execute(start_graph); } } }); close.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { GraphThread.stop = true; executor.shutdownNow(); } catch (Exception stopping) { mainFrame.jTextArea1.append("\nError " + stopping.getMessage()); calibrateTextArea(); } mainFrame.jPanel11.removeAll(); mainFrame.jPanel11.repaint(); mainFrame.jPanel11.revalidate(); mainFrame.jPanel11.validate(); mainFrame.drawBuckets(); } }); } public void run() { first_pass = true; File check_what = new File(what); if (check_temp.exists()) { check_temp.delete(); } configure_display(); } void startc(String Awhat ) { (new Thread(new Graph(mainFrame, Awhat))).start(); } }