Parent window parameter != null will make EvAClient not exit the VM on closing. (MK rev. 224)
This commit is contained in:
@@ -18,6 +18,7 @@ import java.awt.Dimension;
|
||||
import java.awt.Event;
|
||||
import java.awt.Frame;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.Window;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.KeyEvent;
|
||||
@@ -164,6 +165,15 @@ public class EvAClient implements RemoteStateListener, Serializable {
|
||||
*
|
||||
*/
|
||||
public EvAClient(final String hostName) {
|
||||
this(hostName, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor of GUI of EvA2.
|
||||
* Works as client for the EvA2 server.
|
||||
*
|
||||
*/
|
||||
public EvAClient(final String hostName, final Window parent) {
|
||||
final SplashScreen fSplashScreen = new SplashScreen(EvAInfo.splashLocation);
|
||||
|
||||
// preload some classes (into system cache) in a parallel thread
|
||||
@@ -179,7 +189,7 @@ public class EvAClient implements RemoteStateListener, Serializable {
|
||||
SwingUtilities.invokeLater( new Runnable() {
|
||||
public void run(){
|
||||
long startTime = System.currentTimeMillis();
|
||||
init(hostName); // this takes a bit
|
||||
init(hostName, parent); // this takes a bit
|
||||
long wait = System.currentTimeMillis() - startTime;
|
||||
try {
|
||||
// if splashScreenTime has not passed, sleep some more
|
||||
@@ -199,7 +209,7 @@ public class EvAClient implements RemoteStateListener, Serializable {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private void init(String hostName) {
|
||||
private void init(String hostName, final Window parent) {
|
||||
//EVA_EDITOR_PROPERTIES
|
||||
useDefaultModule = getProperty("DefaultModule");
|
||||
|
||||
@@ -249,7 +259,9 @@ public class EvAClient implements RemoteStateListener, Serializable {
|
||||
Set<String> keys = System.getenv().keySet();
|
||||
if (keys.contains("MATLAB")) {
|
||||
System.out.println("Seems like Ive been started from Matlab: not killing JVM");
|
||||
} else System.exit(1);
|
||||
} else {
|
||||
if (parent == null) System.exit(1);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -282,7 +294,7 @@ public class EvAClient implements RemoteStateListener, Serializable {
|
||||
if (TRACE) {
|
||||
System.out.println(EVAHELP.getSystemPropertyString());
|
||||
}
|
||||
EvAClient Client = new EvAClient((args.length == 1) ? args[0] : null);
|
||||
EvAClient Client = new EvAClient((args.length == 1) ? args[0] : null, null);
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user