mev-4.0.01/source/org/tigr/microarray/mev/r/RconnectionManager.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2  * Created on Aug 16, 2005
2 26 Feb 07 jari 3  */
2 26 Feb 07 jari 4 package org.tigr.microarray.mev.r;
2 26 Feb 07 jari 5
2 26 Feb 07 jari 6 import java.awt.Frame;
2 26 Feb 07 jari 7
2 26 Feb 07 jari 8 import javax.swing.JOptionPane;
2 26 Feb 07 jari 9
2 26 Feb 07 jari 10 /**
2 26 Feb 07 jari 11  * @author iVu
2 26 Feb 07 jari 12  */
2 26 Feb 07 jari 13 public class RconnectionManager {
2 26 Feb 07 jari 14   private Rconnection rc;
2 26 Feb 07 jari 15   private Frame frame;
2 26 Feb 07 jari 16   private String sConn;
2 26 Feb 07 jari 17   private int iPort;
2 26 Feb 07 jari 18   
2 26 Feb 07 jari 19   
2 26 Feb 07 jari 20   public RconnectionManager( Frame frameP, String connPathP, int iPortP ) {
2 26 Feb 07 jari 21     this.frame = frameP;
2 26 Feb 07 jari 22     this.sConn = connPathP;
2 26 Feb 07 jari 23     this.iPort = iPortP;
2 26 Feb 07 jari 24   }
2 26 Feb 07 jari 25   
2 26 Feb 07 jari 26   
2 26 Feb 07 jari 27   /**
2 26 Feb 07 jari 28    * As long as the user wants, recursively try to make a connection.
2 26 Feb 07 jari 29    * @return
2 26 Feb 07 jari 30    */
2 26 Feb 07 jari 31   public Rconnection getConnection() {
2 26 Feb 07 jari 32     if( this.rc == null ) {
2 26 Feb 07 jari 33       try {
2 26 Feb 07 jari 34         this.rc = new Rconnection( this.sConn, this.iPort );
2 26 Feb 07 jari 35       } catch( RSrvException e ) {
2 26 Feb 07 jari 36         String s = e.getMessage();
2 26 Feb 07 jari 37         if( s.startsWith( "Cannot connect" ) ) {
2 26 Feb 07 jari 38           //inform user, allow them to start it, then connect
2 26 Feb 07 jari 39           RamaConnectionDialog rcd = new RamaConnectionDialog( this.frame );
2 26 Feb 07 jari 40           int i = rcd.showModal();
2 26 Feb 07 jari 41           if( i == JOptionPane.OK_OPTION ) {
2 26 Feb 07 jari 42             //continue
2 26 Feb 07 jari 43             this.getConnection();
2 26 Feb 07 jari 44           } else {
2 26 Feb 07 jari 45             return null;
2 26 Feb 07 jari 46           }
2 26 Feb 07 jari 47         }
2 26 Feb 07 jari 48       }
2 26 Feb 07 jari 49     }
2 26 Feb 07 jari 50     
2 26 Feb 07 jari 51     return this.rc;
2 26 Feb 07 jari 52   }//getConnection();
2 26 Feb 07 jari 53 }//
2 26 Feb 07 jari 54
2 26 Feb 07 jari 55 /*
2 26 Feb 07 jari 56 fraught with peril, removed
2 26 Feb 07 jari 57
2 26 Feb 07 jari 58 public int startRserve() {
2 26 Feb 07 jari 59   String sOs = System.getProperty( "os.name" );
2 26 Feb 07 jari 60   if( sOs.toLowerCase().indexOf( "mac" ) != -1 ) {
2 26 Feb 07 jari 61     try {            
2 26 Feb 07 jari 62       Runtime rt = Runtime.getRuntime();
2 26 Feb 07 jari 63       Process proc = rt.exec("R CMD Rserve --no-save");
2 26 Feb 07 jari 64       InputStream stderr = proc.getErrorStream();
2 26 Feb 07 jari 65       InputStreamReader isr = new InputStreamReader(stderr);
2 26 Feb 07 jari 66       BufferedReader br = new BufferedReader(isr);
2 26 Feb 07 jari 67       String line = null;
2 26 Feb 07 jari 68       System.out.println("<ERROR>");
2 26 Feb 07 jari 69       while ( (line = br.readLine()) != null)
2 26 Feb 07 jari 70           System.out.println(line);
2 26 Feb 07 jari 71       System.out.println("</ERROR>");
2 26 Feb 07 jari 72       int exitVal = proc.waitFor();
2 26 Feb 07 jari 73       System.out.println("Process exitValue: " + exitVal);
2 26 Feb 07 jari 74       return 1;
2 26 Feb 07 jari 75     } catch (Throwable t) {
2 26 Feb 07 jari 76       t.printStackTrace();
2 26 Feb 07 jari 77       return -1;
2 26 Feb 07 jari 78     }
2 26 Feb 07 jari 79   } else {
2 26 Feb 07 jari 80     return -1;
2 26 Feb 07 jari 81   }
2 26 Feb 07 jari 82 }//startRserve()
2 26 Feb 07 jari 83
2 26 Feb 07 jari 84
2 26 Feb 07 jari 85 public int pingRserve() {
2 26 Feb 07 jari 86   return -1;
2 26 Feb 07 jari 87 }
2 26 Feb 07 jari 88 */