/* * To change this template, choose Tools | Templates * and open the template in the editor. */ /* * ScriptPanel.java * * Created on Jan 6, 2010, 9:22:09 AM */ package ngmfconsole; import static ngmfconsole.Main.logger; import java.awt.Color; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; 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.io.OutputStream; import java.io.PrintStream; import java.io.Writer; import java.util.Properties; import java.util.logging.Level; import javax.swing.ImageIcon; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; /** * * @author od */ public class SimPanel extends javax.swing.JPanel { private static final long serialVersionUID = 7070640351201952343L; // Console console; File file = newFile; boolean modified; long lastModified; Thread task; // static final File newFile = new File("NewSim"); static final String INSTALLING = "Runtime installation in progress, wait..."; static final ImageIcon RUNNING = new ImageIcon(SimPanel.class.getResource("/ngmfconsole/resources/running.gif")); // // quoting for Win/Linux/Mac static final String q = File.pathSeparatorChar == ';' ? "\"" : ""; // OutputStream out = new OutputStream() { @Override public void write(int b) throws IOException { printStdout(String.valueOf((char) b)); } @Override public void write(byte[] b, int off, int len) throws IOException { printStdout(new String(b, off, len)); } @Override public void write(byte[] b) throws IOException { write(b, 0, b.length); } }; // PrintStream sout = new PrintStream(out, true); SimPanel(Console con) { this.console = con; initComponents(); setRunningIndicator(false); syslogCombo.addItem(Level.OFF); syslogCombo.addItem(Level.ALL); syslogCombo.addItem(Level.SEVERE); syslogCombo.addItem(Level.WARNING); syslogCombo.addItem(Level.INFO); syslogCombo.addItem(Level.CONFIG); syslogCombo.addItem(Level.FINE); syslogCombo.addItem(Level.FINER); syslogCombo.addItem(Level.FINEST); syslogCombo.setSelectedItem(Level.OFF); script.addKeyListener(new KeyAdapter() { @Override public void keyTyped(KeyEvent e) { if (e.isControlDown() || e.isAltDown() || e.isConsumed()) { return; } if (!modified) { modified = true; console.toggleTitle(SimPanel.this); } } @Override public void keyPressed(KeyEvent e) { if (!e.isControlDown()) { return; } if (e.getKeyCode() == KeyEvent.VK_S) { save(); } else if (e.getKeyCode() == KeyEvent.VK_R) { run(); } } }); script.setFont(new java.awt.Font("Monospaced", 0, script.getFont().getSize())); // NOI18N stdout.setFont(new java.awt.Font("Monospaced", 0, stdout.getFont().getSize())); // NOI18N stderr.setFont(new java.awt.Font("Monospaced", 0, stderr.getFont().getSize())); // NOI18N split.setResizeWeight(0.75); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { split.setDividerLocation(0.65); } }); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { split = new javax.swing.JSplitPane(); jScrollPane1 = new javax.swing.JScrollPane(); script = new javax.swing.JTextArea(); jTabbedPane1 = new javax.swing.JTabbedPane(); jScrollPane2 = new javax.swing.JScrollPane(); stdout = new javax.swing.JTextArea(); jScrollPane3 = new javax.swing.JScrollPane(); stderr = new javax.swing.JTextArea(); jPanel1 = new javax.swing.JPanel(); runner = new javax.swing.JLabel(); jToolBar1 = new javax.swing.JToolBar(); saveButton = new javax.swing.JButton(); jSeparator2 = new javax.swing.JToolBar.Separator(); runButton = new javax.swing.JButton(); stopButton = new javax.swing.JButton(); jSeparator1 = new javax.swing.JToolBar.Separator(); editButton = new javax.swing.JButton(); graphButton = new javax.swing.JButton(); docButton = new javax.swing.JButton(); buildButton = new javax.swing.JButton(); outputButton = new javax.swing.JButton(); clearButton = new javax.swing.JButton(); jSeparator3 = new javax.swing.JToolBar.Separator(); jPanel3 = new javax.swing.JPanel(); logLabel = new javax.swing.JLabel(); syslogCombo = new javax.swing.JComboBox(); setName("Form"); // NOI18N setLayout(new java.awt.BorderLayout()); split.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT); split.setName("split"); // NOI18N split.setOneTouchExpandable(true); jScrollPane1.setName("jScrollPane1"); // NOI18N script.setColumns(20); script.setRows(5); script.setName("script"); // NOI18N jScrollPane1.setViewportView(script); split.setLeftComponent(jScrollPane1); jTabbedPane1.setTabPlacement(javax.swing.JTabbedPane.BOTTOM); jTabbedPane1.setName("jTabbedPane1"); // NOI18N jScrollPane2.setName("jScrollPane2"); // NOI18N stdout.setColumns(20); stdout.setEditable(false); stdout.setRows(5); stdout.setName("stdout"); // NOI18N jScrollPane2.setViewportView(stdout); jTabbedPane1.addTab("stdout", jScrollPane2); jScrollPane3.setName("jScrollPane3"); // NOI18N stderr.setColumns(20); stderr.setEditable(false); stderr.setForeground(java.awt.Color.red); stderr.setRows(5); stderr.setName("stderr"); // NOI18N jScrollPane3.setViewportView(stderr); jTabbedPane1.addTab("stderr/log", jScrollPane3); split.setRightComponent(jTabbedPane1); add(split, java.awt.BorderLayout.CENTER); jPanel1.setName("jPanel1"); // NOI18N jPanel1.setLayout(new java.awt.BorderLayout()); runner.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ngmfconsole/resources/running.gif"))); // NOI18N runner.setText(" "); runner.setName("runner"); // NOI18N jPanel1.add(runner, java.awt.BorderLayout.EAST); jToolBar1.setFloatable(false); jToolBar1.setRollover(true); jToolBar1.setName("jToolBar1"); // NOI18N saveButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ngmfconsole/resources/oxygen/Devices-media-floppy-icon.png"))); // NOI18N saveButton.setToolTipText("Save (Ctrl+S)"); saveButton.setFocusable(false); saveButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); saveButton.setName("saveButton"); // NOI18N saveButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); saveButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { saveButtonActionPerformed(evt); } }); jToolBar1.add(saveButton); jSeparator2.setName("jSeparator2"); // NOI18N jToolBar1.add(jSeparator2); runButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ngmfconsole/resources/oxygen/Actions-go-next-view-icon.png"))); // NOI18N runButton.setToolTipText("Run (Ctrl+R)"); runButton.setFocusable(false); runButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); runButton.setName("runButton"); // NOI18N runButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); runButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { runButtonActionPerformed(evt); } }); jToolBar1.add(runButton); stopButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ngmfconsole/resources/oxygen/Actions-process-stop-icon.png"))); // NOI18N stopButton.setToolTipText("Stop"); stopButton.setEnabled(false); stopButton.setFocusable(false); stopButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); stopButton.setName("stopButton"); // NOI18N stopButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); stopButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { stopButtonActionPerformed(evt); } }); jToolBar1.add(stopButton); jSeparator1.setName("jSeparator1"); // NOI18N jToolBar1.add(jSeparator1); editButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ngmfconsole/resources/oxygen/0-Apps-accessories-calculator-icon.png"))); // NOI18N editButton.setToolTipText("Parameter Editor"); editButton.setFocusable(false); editButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); editButton.setName("editButton"); // NOI18N editButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); editButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { editButtonActionPerformed(evt); } }); jToolBar1.add(editButton); graphButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ngmfconsole/resources/oxygen/Actions-office-chart-bar-icon.png"))); // NOI18N graphButton.setToolTipText("Analysis"); graphButton.setFocusable(false); graphButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); graphButton.setName("graphButton"); // NOI18N graphButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); graphButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { graphButtonActionPerformed(evt); } }); jToolBar1.add(graphButton); docButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ngmfconsole/resources/oxygen/Apps-preferences-plugin-script-icon.png"))); // NOI18N docButton.setToolTipText("Generate Docbook5 documentation."); docButton.setFocusable(false); docButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); docButton.setName("docButton"); // NOI18N docButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); docButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { docButtonActionPerformed(evt); } }); jToolBar1.add(docButton); buildButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ngmfconsole/resources/oxygen/Categories-applications-development-icon.png"))); // NOI18N buildButton.setFocusable(false); buildButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); buildButton.setName("buildButton"); // NOI18N buildButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); buildButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buildButtonActionPerformed(evt); } }); jToolBar1.add(buildButton); outputButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ngmfconsole/resources/oxygen/Actions-document-open-recent-icon.png"))); // NOI18N outputButton.setToolTipText("Last Output Folder"); outputButton.setFocusable(false); outputButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); outputButton.setName("outputButton"); // NOI18N outputButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); outputButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { outputButtonActionPerformed(evt); } }); jToolBar1.add(outputButton); clearButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ngmfconsole/resources/oxygen/Apps-utilities-terminal-icon.png"))); // NOI18N clearButton.setToolTipText("Clear Console output"); clearButton.setFocusable(false); clearButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); clearButton.setName("clearButton"); // NOI18N clearButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); clearButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { clearButtonActionPerformed(evt); } }); jToolBar1.add(clearButton); jSeparator3.setName("jSeparator3"); // NOI18N jToolBar1.add(jSeparator3); jPanel3.setName("jPanel3"); // NOI18N logLabel.setText("Logging:"); logLabel.setToolTipText("Set Logging level"); logLabel.setName("logLabel"); // NOI18N syslogCombo.setMaximumSize(new java.awt.Dimension(120, 2000)); syslogCombo.setName("syslogCombo"); // NOI18N syslogCombo.setPreferredSize(new java.awt.Dimension(120, 24)); javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addGap(6, 6, 6) .addComponent(logLabel) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(syslogCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(logLabel) .addComponent(syslogCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) ); jToolBar1.add(jPanel3); jPanel1.add(jToolBar1, java.awt.BorderLayout.CENTER); add(jPanel1, java.awt.BorderLayout.NORTH); }// </editor-fold>//GEN-END:initComponents void setEnableControls(boolean enable) { runButton.setEnabled(enable); stopButton.setEnabled(!enable); saveButton.setEnabled(enable); if (!isGroovy()) { buildButton.setEnabled(enable); logLabel.setEnabled(enable); syslogCombo.setEnabled(enable); graphButton.setEnabled(enable); editButton.setEnabled(enable); // digestButton.setEnabled(enable); outputButton.setEnabled(enable); } } void run() { if (console.isInstalling()) { sout.println(INSTALLING); return; } if ((script.getText() == null) || (script.getText().isEmpty())) { return; } setEnableControls(false); setRunningIndicator(true); save(); task = new Thread() { @Override public void run() { try { Processes1 p = createProcess("-r"); if (p == null) { sout.println("\n\nERROR CREATING PROCESS."); return; } sout.println("STARTING: " + file); int exitValue = p.exec(); if (exitValue == 0) { sout.println("\n\nDONE."); } } catch (Throwable E) { logger.log(Level.SEVERE, "Error", E); E.printStackTrace(System.err); } finally { setEnableControls(true); setRunningIndicator(false); } } }; task.start(); } private void runButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_runButtonActionPerformed run(); }//GEN-LAST:event_runButtonActionPerformed private void stopButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_stopButtonActionPerformed if (task == null || !task.isAlive()) { return; } task.interrupt(); setEnableControls(true); setRunningIndicator(false); sout.println("\n\nSTOPPED."); }//GEN-LAST:event_stopButtonActionPerformed private void editButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editButtonActionPerformed runProcess("-e"); }//GEN-LAST:event_editButtonActionPerformed private void graphButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_graphButtonActionPerformed runProcess("-a"); }//GEN-LAST:event_graphButtonActionPerformed private void docButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_docButtonActionPerformed runProcess("-d"); }//GEN-LAST:event_docButtonActionPerformed private void clearButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clearButtonActionPerformed // runProcess("-s"); // sign is disabled. resetOutput(); }//GEN-LAST:event_clearButtonActionPerformed private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed save(); }//GEN-LAST:event_saveButtonActionPerformed private void outputButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_outputButtonActionPerformed runProcess("-o"); }//GEN-LAST:event_outputButtonActionPerformed private void buildButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buildButtonActionPerformed runProcess("-b"); }//GEN-LAST:event_buildButtonActionPerformed void save() { save(false); } void runProcess(final String flag) { if (console.isInstalling()) { sout.println(INSTALLING); return; } if ((script.getText() == null) || (script.getText().isEmpty())) { return; } save(); new Thread() { @Override public void run() { try { Processes1 p = createProcess(flag); if (p == null) { return; } p.exec(); } catch (Throwable E) { logger.log(Level.SEVERE, "Error", E); E.printStackTrace(System.out); } } }.start(); } private void setRunningIndicator(boolean show) { runner.setIcon(show ? RUNNING : null); } boolean checkClose() { if (!modified) { return true; } else { Object[] options = {"Save", "Discard", "Cancel"}; int n = JOptionPane.showOptionDialog(console, "File " + file + " is modified.", "Warning", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[2]); if (n == 0) { save(false); return true; } if (n == 2) { return false; } } return true; } File getFile() { return file == newFile ? null : file; } boolean isModified() { return modified; } boolean isGroovy() { return file != null && file.getName().endsWith("groovy"); } boolean isSim() { return file != null && (file.getName().endsWith("sim") || file.getName().endsWith("luca") || file.getName().endsWith("fast") || file.getName().endsWith("esp") || file.getName().endsWith("dds")); } void save(boolean as) { if (as) { JFileChooser fc = new JFileChooser(console.getOpenChooser()); fc.setDialogTitle("Save Simulation As"); if (file.isAbsolute()) { fc.setSelectedFile(file); } int result = fc.showSaveDialog(console); if (result == JFileChooser.APPROVE_OPTION) { file = fc.getSelectedFile(); } else { return; } } if (!file.isAbsolute()) { JFileChooser fc = new JFileChooser(console.getOpenChooser()); int result = fc.showSaveDialog(console); if (result == JFileChooser.APPROVE_OPTION) { file = fc.getSelectedFile(); } else { return; } } try { BufferedWriter b = new BufferedWriter(new FileWriter(file)); b.write(script.getText()); b.close(); modified = false; console.toggleTitle(SimPanel.this); enableForGroovy(); } catch (IOException e) { logger.log(Level.SEVERE, "Error", e); e.printStackTrace(System.err); } } void loadFile(File file) { try { if (file.isAbsolute() && file.exists()) { BufferedReader in = new BufferedReader(new FileReader(file)); String str; StringBuilder b = new StringBuilder(); while ((str = in.readLine()) != null) { b.append(str).append('\n'); } in.close(); lastModified = file.lastModified(); this.file = file; script.setText(b.toString()); script.setCaretPosition(0); enableForGroovy(); } } catch (IOException e) { logger.log(Level.SEVERE, "Error", e); e.printStackTrace(System.err); } } void enableForGroovy() { saveButton.setEnabled(true); runButton.setEnabled(false); clearButton.setEnabled(false); editButton.setEnabled(false); graphButton.setEnabled(false); docButton.setEnabled(false); syslogCombo.setEnabled(false); logLabel.setEnabled(false); outputButton.setEnabled(false); buildButton.setEnabled(false); if (isGroovy()) { runButton.setEnabled(true); clearButton.setEnabled(true); return; } if (isSim()) { buildButton.setEnabled(true); runButton.setEnabled(true); editButton.setEnabled(true); graphButton.setEnabled(true); docButton.setEnabled(true); syslogCombo.setEnabled(true); logLabel.setEnabled(true); outputButton.setEnabled(true); clearButton.setEnabled(true); return; } } String getLogLevel() { return syslogCombo.getSelectedItem().toString(); } Processes1 createProcess(String flag) throws Exception { String[] jvmoptions = {}; String work_dir = console.getWork(); String java_home = Main.java_home(); String oms_version = Utils.getOMSAppVersion(); File conf = new File(console.getWork() + File.separatorChar + Console.OMS_DIR, Console.PROJECT_PROPERTIES); if (conf.exists()) { Properties p = new Properties(); FileReader fr = new FileReader(conf); p.load(fr); fr.close(); String jvmo = p.getProperty(Console.PREF_JAVA_OPTIONS); if (jvmo != null) { jvmoptions = jvmo.trim().split("\\s+"); } work_dir = p.getProperty(Console.PREF_WORK_DIR, work_dir); java_home = p.getProperty(Console.PREF_JAVA_HOME, java_home); oms_version = p.getProperty(Console.PREF_OMS_VERSION, oms_version); } // if (oms_version.compareToIgnoreCase(Utils.getOMSAppVersion()) > 0) { // sout.println("This project requires OMS version: '" + oms_version + "', running " + Utils.getOMSAppVersion()); // return null; // } if (!new File(java_home).exists()) { sout.println("Java home not found: " + java_home); return null; } File oms3Home = Console.getOMSHome(oms_version); if (!oms3Home.exists()) { sout.println("OMS3 home not found: " + oms3Home); return null; } if (!new File(work_dir).exists()) { sout.println("Working directory not found: " + work_dir); return null; } File omsall = new File(oms3Home, Console.jars[0]); if (!omsall.exists()) { sout.println("Not found: " + omsall); return null; } if (console.getClearOutput()) { resetOutput(); } Processes1 p = new Processes1(new File(java_home + File.separator + "bin" + File.separator + "java")); p.setWorkingDirectory(new File(work_dir)); p.setArguments(jvmoptions, q + "-Doms3.work=" + console.getWork() + q, "-cp", q + Utils.cp_all(oms3Home, console.getWork()) + q, "oms3.CLI", "-l", getLogLevel(), flag, q + file.toString() + q); p.redirectOutput(new Writer() { @Override public void write(char[] cbuf, int off, int len) throws IOException { printStdout(new String(cbuf, off, len)); } @Override public void flush() throws IOException { } @Override public void close() throws IOException { } }); p.redirectError(new Writer() { @Override public void write(char[] cbuf, int off, int len) throws IOException { jTabbedPane1.setSelectedIndex(1); jTabbedPane1.setForegroundAt(1, Color.red); // jTabbedPane1.setBackgroundAt(1, Color.red); printStderr(new String(cbuf, off, len)); } @Override public void flush() throws IOException { } @Override public void close() throws IOException { } }); return p; } void resetOutput() { stdout.setText(""); stderr.setText(""); jTabbedPane1.setSelectedIndex(0); jTabbedPane1.setForegroundAt(1, Color.BLACK); Runtime.getRuntime().gc(); } void printStderr(String text) { stderr.append(text); stderr.setCaretPosition(stderr.getDocument().getLength() - (text.length() - 1)); } void printStdout(String text) { if (text.lastIndexOf("%r") > 0) { stdout.replaceRange(text.substring(text.lastIndexOf("%r") + 2), stdout.getText().lastIndexOf('\n') + 1, stdout.getText().length()); } else { stdout.append(text); stdout.setCaretPosition(stdout.getDocument().getLength() - (text.length() - 1)); } } // public static void main(String[] args) { // System.out.println("3.1rc8".compareToIgnoreCase("3.1rc10")); // } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton buildButton; private javax.swing.JButton clearButton; private javax.swing.JButton docButton; private javax.swing.JButton editButton; private javax.swing.JButton graphButton; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel3; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JToolBar.Separator jSeparator1; private javax.swing.JToolBar.Separator jSeparator2; private javax.swing.JToolBar.Separator jSeparator3; private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JToolBar jToolBar1; private javax.swing.JLabel logLabel; private javax.swing.JButton outputButton; private javax.swing.JButton runButton; private javax.swing.JLabel runner; private javax.swing.JButton saveButton; private javax.swing.JTextArea script; private javax.swing.JSplitPane split; private javax.swing.JTextArea stderr; private javax.swing.JTextArea stdout; private javax.swing.JButton stopButton; private javax.swing.JComboBox syslogCombo; // End of variables declaration//GEN-END:variables }