From 6340f8bf788655163e1d5c3831358e2c0b3da4de Mon Sep 17 00:00:00 2001 From: ajt06004 Date: Thu, 5 Jul 2018 06:05:20 -0400 Subject: [PATCH] GUI fixes. --- .../pathwayimport/GraphiteImport.java | 7 +- .../uconn/tripoint/ui/CommandOutputPanel.java | 41 ++++++ src/edu/uconn/tripoint/ui/CommandRunner.java | 131 ++++++++++++++++++ src/edu/uconn/tripoint/ui/TriPOINT.java | 4 +- 4 files changed, 179 insertions(+), 4 deletions(-) create mode 100644 src/edu/uconn/tripoint/ui/CommandOutputPanel.java create mode 100644 src/edu/uconn/tripoint/ui/CommandRunner.java diff --git a/src/edu/uconn/tripoint/pathwayimport/GraphiteImport.java b/src/edu/uconn/tripoint/pathwayimport/GraphiteImport.java index 45cb44a..f30d807 100644 --- a/src/edu/uconn/tripoint/pathwayimport/GraphiteImport.java +++ b/src/edu/uconn/tripoint/pathwayimport/GraphiteImport.java @@ -57,9 +57,10 @@ public class GraphiteImport { String pathwayname = c.parseAndEval("names(cpathwaylist)["+rindex+"]").asString(); c.parseAndEval("curpath = cpathwaylist[["+rindex+"]]"); c.parseAndEval("ed <- edges(curpath)"); - String[] sources = c.parseAndEval("ed[,2]").asStrings(); - String[] destinations = c.parseAndEval("ed[,4]").asStrings(); - String[] edgetype = c.parseAndEval("ed[,6]").asStrings(); + + String[] sources = c.parseAndEval("ed$src").asStrings(); + String[] destinations = c.parseAndEval("ed$dest").asStrings(); + String[] edgetype = c.parseAndEval("ed$type").asStrings(); System.out.println("Loading "+pathwayname); Pathway p = new Pathway(pathwaylibrary+":"+pathwayname); diff --git a/src/edu/uconn/tripoint/ui/CommandOutputPanel.java b/src/edu/uconn/tripoint/ui/CommandOutputPanel.java new file mode 100644 index 0000000..ee00511 --- /dev/null +++ b/src/edu/uconn/tripoint/ui/CommandOutputPanel.java @@ -0,0 +1,41 @@ +package edu.uconn.tripoint.ui; + +import java.awt.BorderLayout; +import java.awt.Font; + +import javax.swing.BoxLayout; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; + +@SuppressWarnings("serial") +public class CommandOutputPanel extends JPanel { + + private JTextArea _ota; + + public CommandOutputPanel(Font font){ + setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); + + JLabel sol = new JLabel("Command Line Output:"); + sol.setHorizontalAlignment(JLabel.LEFT); + sol.setFont(font); + _ota = new JTextArea(15, 35); + _ota.setEditable(false); + JScrollPane osp = new JScrollPane(_ota); + osp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + osp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + JPanel opanel = new JPanel(new BorderLayout()); + opanel.add(sol, BorderLayout.NORTH); + opanel.add(osp, BorderLayout.CENTER); + + add(opanel); + } + + public void addLine(String s){ + _ota.append(s+"\n"); + revalidate(); + repaint(); + } + +} \ No newline at end of file diff --git a/src/edu/uconn/tripoint/ui/CommandRunner.java b/src/edu/uconn/tripoint/ui/CommandRunner.java new file mode 100644 index 0000000..f034701 --- /dev/null +++ b/src/edu/uconn/tripoint/ui/CommandRunner.java @@ -0,0 +1,131 @@ +package edu.uconn.tripoint.ui; + + +import java.awt.BorderLayout; +import java.awt.Font; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.PipedInputStream; +import java.io.PipedOutputStream; +import java.io.PrintStream; + +import javax.swing.JButton; +import javax.swing.JDialog; +import javax.swing.JFrame; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JProgressBar; +import javax.swing.SwingWorker; + +public class CommandRunner { + + private JFrame _frame; + private Font _labelfont; + private Process _p; + private String _title; + + public CommandRunner(JFrame frame, String title){ + _frame = frame; + _title = title; + } + + + + public void run() { + final JOptionPane pane = new JOptionPane(); + + final CommandOutputPanel op = new CommandOutputPanel(_labelfont); + + final JProgressBar jpb = new JProgressBar(); + jpb.setSize(500, 10); + jpb.setIndeterminate(true); + + final JButton cancel = new JButton("Cancel"); + final JButton finish = new JButton("Finish"); + + + final JPanel cp = new JPanel(new BorderLayout()); + cp.add(jpb, BorderLayout.CENTER); + cp.add(cancel, BorderLayout.EAST); + + final JPanel combinedpanel = new JPanel(new BorderLayout()); + combinedpanel.add(op, BorderLayout.NORTH); + combinedpanel.add(cp, BorderLayout.SOUTH); + + + pane.setMessage(combinedpanel); + pane.setOptions(new Object[]{}); + + final JDialog dialog = pane.createDialog(_frame, _title); + + finish.addActionListener(new ActionListener(){ + @Override + public void actionPerformed(ActionEvent e) { + dialog.dispose(); + } + + }); + + cancel.addActionListener(new ActionListener(){ + @Override + public void actionPerformed(ActionEvent e) { + if(_p != null){ + _p.destroy(); + } + dialog.dispose(); + } + }); + + + SwingWorker sw = new SwingWorker(){ + + @Override + protected Void doInBackground() throws Exception { + + try { + PipedOutputStream pout = new PipedOutputStream(); + System.setOut(new PrintStream(pout)); + PipedInputStream pin = new PipedInputStream(); + + BufferedReader stdin = new BufferedReader(new InputStreamReader(pin)); + System.out.println("Test"); + String s = null; + while((s = stdin.readLine()) != null){ + op.addLine(s); + op.revalidate(); + op.repaint(); + } + + stdin.close(); + + } catch (IOException e1) { + e1.printStackTrace(); + } + return null; + } + + @Override + protected void done(){ + cp.remove(jpb); + cp.remove(cancel); + cp.add(finish, BorderLayout.EAST); + dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); + dialog.revalidate(); + dialog.repaint(); + } + + }; + + sw.execute(); + + + dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); + dialog.setVisible(true); + + } + +} \ No newline at end of file diff --git a/src/edu/uconn/tripoint/ui/TriPOINT.java b/src/edu/uconn/tripoint/ui/TriPOINT.java index e772e73..3601e72 100644 --- a/src/edu/uconn/tripoint/ui/TriPOINT.java +++ b/src/edu/uconn/tripoint/ui/TriPOINT.java @@ -138,7 +138,9 @@ public class TriPOINT { } else{ - + final CommandRunner ppcr = new CommandRunner(_frame, "Run TriPOINT"); + //JOptionPane.showMessageDialog(_frame, iv.getErrorMessages().toString(),"Run TriPOINT"); + } }