diff --git a/uk/ac/sanger/artemis/circular/digest/CircularGenomeController.java b/uk/ac/sanger/artemis/circular/digest/CircularGenomeController.java index f7e854f25decaf52c4aef3b2a977a025d4e05a04..a3b94a6498c8137d9834231c01995a603b0e1521 100644 --- a/uk/ac/sanger/artemis/circular/digest/CircularGenomeController.java +++ b/uk/ac/sanger/artemis/circular/digest/CircularGenomeController.java @@ -40,9 +40,11 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import java.awt.event.MouseMotionListener; import java.io.File; +import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.util.List; +import java.util.Vector; import javax.swing.JFrame; import javax.swing.JOptionPane; @@ -63,10 +65,12 @@ public class CircularGenomeController * Create in-silico PFGE from a restriction enzyme digest and draw * alongside DNAPlotter */ - protected void setup(CircularGenomeCommandBean cgcb, String fileName) throws Exception + protected void setup(CircularGenomeCommandBean cgcb, List<String> fileNames) + throws Exception { try { + String fileName = fileNames.get(0); EntryGroup entryGroup = getEntryGroupFromFile(fileName); if(fileName == null) { @@ -114,7 +118,8 @@ public class CircularGenomeController } p.waitFor(); - final ReportDetails rd = Utils.findCutSitesFromEmbossReport(output.getCanonicalPath()); + final ReportDetails rd = Utils.findCutSitesFromEmbossReport( + new FileReader(output.getCanonicalPath())); if (rd.cutSites.size() == 0) JOptionPane.showMessageDialog(null, @@ -173,8 +178,10 @@ public class CircularGenomeController Dimension d = f.getToolkit().getScreenSize(); JPanel mainPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0)); + JScrollPane jspDNA = new JScrollPane(dna); + mainPanel.add(inSilicoGelPanel); - mainPanel.add(dna); + mainPanel.add(jspDNA); JScrollPane jsp = new JScrollPane(mainPanel); jsp.getViewport().setBackground(Color.white); @@ -288,21 +295,28 @@ public class CircularGenomeController CircularGenomeController controller = new CircularGenomeController(); try { - String fileName = null; + List fileNames = null; if(args != null && args.length > 0) { if(args.length == 1) - fileName = args[0]; + { + fileNames = new Vector(); + fileNames.add(args[0]); + } for(int i=0; i<args.length; i++) { if(args[i].startsWith("-enz")) command.setEnzymeName(args[i+1]); else if(args[i].startsWith("-seq")) - fileName = args[i+1]; + { + if(fileNames == null) + fileNames = new Vector(); + fileNames.add(args[i+1]); + } } } - controller.setup(command, fileName); + controller.setup(command, fileNames); } catch (Exception e) { diff --git a/uk/ac/sanger/artemis/circular/digest/Utils.java b/uk/ac/sanger/artemis/circular/digest/Utils.java index fd19e72fd3b6c2ff2a9adc4d9c1f9dbdc5ce3cbd..fb4addab7d2bb924ef89922b854c56b63826da9e 100644 --- a/uk/ac/sanger/artemis/circular/digest/Utils.java +++ b/uk/ac/sanger/artemis/circular/digest/Utils.java @@ -30,8 +30,8 @@ import uk.ac.sanger.artemis.io.QualifierVector; import uk.ac.sanger.artemis.sequence.MarkerRange; import java.io.BufferedReader; -import java.io.FileReader; import java.io.IOException; +import java.io.Reader; import java.util.Hashtable; import java.util.Iterator; import java.util.List; @@ -41,16 +41,17 @@ public class Utils { //private static final Logger logger = Logger.getLogger(Utils.class); - public static ReportDetails findCutSitesFromEmbossReport(String fileName) + protected static ReportDetails findCutSitesFromEmbossReport(Reader reader) { EmbossTableParser etp = new EmbossTableParser(); ReportDetails ret = new ReportDetails(); try { - BufferedReader br = new BufferedReader(new FileReader(fileName)); + BufferedReader br = new BufferedReader(reader); ret.cutSites = etp.parse(br); ret.length = etp.getLength(); - } catch (IOException exp) + } + catch (IOException exp) { throw new RuntimeException("Couldn't read, or parse results"); } @@ -64,7 +65,7 @@ public class Utils * @param entryGroup * @return */ - public static DNADraw createDNADrawFromReportDetails(final ReportDetails rd, + protected static DNADraw createDNADrawFromReportDetails(final ReportDetails rd, final EntryGroup entryGroup) { DNADraw dna = new DNADraw();