2 |
26 Feb 07 |
jari |
1 |
/* |
2 |
26 Feb 07 |
jari |
* 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 |
* @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 |
* As long as the user wants, recursively try to make a connection. |
2 |
26 Feb 07 |
jari |
* @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 |
//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 |
//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 |
fraught with peril, removed |
2 |
26 Feb 07 |
jari |
57 |
|
2 |
26 Feb 07 |
jari |
public int startRserve() { |
2 |
26 Feb 07 |
jari |
String sOs = System.getProperty( "os.name" ); |
2 |
26 Feb 07 |
jari |
if( sOs.toLowerCase().indexOf( "mac" ) != -1 ) { |
2 |
26 Feb 07 |
jari |
try { |
2 |
26 Feb 07 |
jari |
Runtime rt = Runtime.getRuntime(); |
2 |
26 Feb 07 |
jari |
Process proc = rt.exec("R CMD Rserve --no-save"); |
2 |
26 Feb 07 |
jari |
InputStream stderr = proc.getErrorStream(); |
2 |
26 Feb 07 |
jari |
InputStreamReader isr = new InputStreamReader(stderr); |
2 |
26 Feb 07 |
jari |
BufferedReader br = new BufferedReader(isr); |
2 |
26 Feb 07 |
jari |
String line = null; |
2 |
26 Feb 07 |
jari |
System.out.println("<ERROR>"); |
2 |
26 Feb 07 |
jari |
while ( (line = br.readLine()) != null) |
2 |
26 Feb 07 |
jari |
System.out.println(line); |
2 |
26 Feb 07 |
jari |
System.out.println("</ERROR>"); |
2 |
26 Feb 07 |
jari |
int exitVal = proc.waitFor(); |
2 |
26 Feb 07 |
jari |
System.out.println("Process exitValue: " + exitVal); |
2 |
26 Feb 07 |
jari |
return 1; |
2 |
26 Feb 07 |
jari |
} catch (Throwable t) { |
2 |
26 Feb 07 |
jari |
t.printStackTrace(); |
2 |
26 Feb 07 |
jari |
return -1; |
2 |
26 Feb 07 |
jari |
78 |
} |
2 |
26 Feb 07 |
jari |
} else { |
2 |
26 Feb 07 |
jari |
return -1; |
2 |
26 Feb 07 |
jari |
81 |
} |
2 |
26 Feb 07 |
jari |
}//startRserve() |
2 |
26 Feb 07 |
jari |
83 |
|
2 |
26 Feb 07 |
jari |
84 |
|
2 |
26 Feb 07 |
jari |
public int pingRserve() { |
2 |
26 Feb 07 |
jari |
return -1; |
2 |
26 Feb 07 |
jari |
87 |
} |
2 |
26 Feb 07 |
jari |
88 |
*/ |