git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
JAL-3518 separation of ChimeraXManager, pull up of closeViewer etc
[jalview.git]
/
src
/
ext
/
edu
/
ucsf
/
rbvi
/
strucviz2
/
ChimeraManager.java
diff --git
a/src/ext/edu/ucsf/rbvi/strucviz2/ChimeraManager.java
b/src/ext/edu/ucsf/rbvi/strucviz2/ChimeraManager.java
index
31f5dc8
..
ea48cb6
100644
(file)
--- a/
src/ext/edu/ucsf/rbvi/strucviz2/ChimeraManager.java
+++ b/
src/ext/edu/ucsf/rbvi/strucviz2/ChimeraManager.java
@@
-333,10
+333,7
@@
public class ChimeraManager
public void stopListening()
{
public void stopListening()
{
- // TODO send this command when viewer connection is closed in Jalview
- String command = isChimeraX
- ? "info notify stop models jalview; info notify stop selection jalview"
- : "listen stop models ; listen stop selection ";
+ String command = "listen stop models ; listen stop selection ";
sendChimeraCommand(command, false);
}
sendChimeraCommand(command, false);
}
@@
-350,19
+347,13
@@
public class ChimeraManager
/*
* listen for model changes
*/
/*
* listen for model changes
*/
- String command = isChimeraX
- ? ("info notify start models prefix ModelChanged jalview url "
- + uri)
- : ("listen start models url " + uri);
+ String command = "listen start models url " + uri;
sendChimeraCommand(command, false);
/*
* listen for selection changes
*/
sendChimeraCommand(command, false);
/*
* listen for selection changes
*/
- command = isChimeraX
- ? ("info notify start selection jalview prefix SelectionChanged url "
- + uri)
- : ("listen start select prefix SelectionChanged url " + uri);
+ command = "listen start select prefix SelectionChanged url " + uri;
sendChimeraCommand(command, false);
}
sendChimeraCommand(command, false);
}
@@
-438,10
+429,7
@@
public class ChimeraManager
{
List<String> selectedResidues = new ArrayList<>();
{
List<String> selectedResidues = new ArrayList<>();
- // in fact 'listinfo' (undocumented) works in ChimeraX
- String command = (isChimeraX
- ? "info"
- : "list") + " selection level residue";
+ String command = "list selection level residue";
List<String> chimeraReply = sendChimeraCommand(command, true);
if (chimeraReply != null)
{
List<String> chimeraReply = sendChimeraCommand(command, true);
if (chimeraReply != null)
{
@@
-498,7
+486,7
@@
public class ChimeraManager
{
List<ChimeraModel> modelList = new ArrayList<>();
String command = "list models type "
{
List<ChimeraModel> modelList = new ArrayList<>();
String command = "list models type "
- + (isChimeraX ? "AtomicStructure" : "molecule");
+ + (isChimeraX() ? "AtomicStructure" : "molecule");
List<String> list = sendChimeraCommand(command, true);
if (list != null)
{
List<String> list = sendChimeraCommand(command, true);
if (list != null)
{
@@
-586,7
+574,6
@@
public class ChimeraManager
{
// ensure symbolic links are resolved
chimeraPath = Paths.get(chimeraPath).toRealPath().toString();
{
// ensure symbolic links are resolved
chimeraPath = Paths.get(chimeraPath).toRealPath().toString();
- isChimeraX = chimeraPath.toLowerCase().contains("chimerax");
File path = new File(chimeraPath);
// uncomment the next line to simulate Chimera not installed
// path = new File(chimeraPath + "x");
File path = new File(chimeraPath);
// uncomment the next line to simulate Chimera not installed
// path = new File(chimeraPath + "x");
@@
-599,16
+586,7
@@
public class ChimeraManager
args.add(chimeraPath);
// shows Chimera output window but suppresses REST responses:
// args.add("--debug");
args.add(chimeraPath);
// shows Chimera output window but suppresses REST responses:
// args.add("--debug");
- if (isChimeraX())
- {
- args.add("--cmd");
- args.add("remote rest start");
- }
- else
- {
- args.add("--start");
- args.add("RESTServer");
- }
+ addLaunchArguments(args);
ProcessBuilder pb = new ProcessBuilder(args);
chimera = pb.start();
error = "";
ProcessBuilder pb = new ProcessBuilder(args);
chimera = pb.start();
error = "";
@@
-640,6
+618,18
@@
public class ChimeraManager
}
/**
}
/**
+ * Adds command-line arguments to start the REST server
+ * <p>
+ * Method extracted for Jalview to allow override in ChimeraXManager
+ * @param args
+ */
+ protected void addLaunchArguments(List<String> args)
+ {
+ args.add("--start");
+ args.add("RESTServer");
+ }
+
+ /**
* Read and return the port number returned in the reply to --start RESTServer
*/
private int getPortNumber()
* Read and return the port number returned in the reply to --start RESTServer
*/
private int getPortNumber()
@@
-751,7
+741,7
@@
public class ChimeraManager
public List<String> getAttrList()
{
List<String> attributes = new ArrayList<>();
public List<String> getAttrList()
{
List<String> attributes = new ArrayList<>();
- String command = (isChimeraX ? "info " : "list ") + "resattr";
+ String command = (isChimeraX() ? "info " : "list ") + "resattr";
final List<String> reply = sendChimeraCommand(command, true);
if (reply != null)
{
final List<String> reply = sendChimeraCommand(command, true);
if (reply != null)
{
@@
-811,8
+801,6
@@
public class ChimeraManager
private volatile boolean busy = false;
private volatile boolean busy = false;
- private boolean isChimeraX;
-
/**
* Send a command to Chimera.
*
/**
* Send a command to Chimera.
*
@@
-873,7
+861,7
@@
public class ChimeraManager
{
String restUrl = "http://127.0.0.1:" + this.chimeraRestPort + "/run";
List<NameValuePair> commands = new ArrayList<>(1);
{
String restUrl = "http://127.0.0.1:" + this.chimeraRestPort + "/run";
List<NameValuePair> commands = new ArrayList<>(1);
- String method = isChimeraX() ? "GET" : "POST";
+ String method = getHttpRequestMethod();
if ("GET".equals(method))
{
command = command.replace(" ", "+").replace("#", "%23")
if ("GET".equals(method))
{
command = command.replace(" ", "+").replace("#", "%23")
@@
-914,6
+902,15
@@
public class ChimeraManager
}
/**
}
/**
+ * Returns "POST" as the HTTP request method to use for REST service calls to Chimera
+ * @return
+ */
+ protected String getHttpRequestMethod()
+ {
+ return "POST";
+ }
+
+ /**
* Send a command to stdin of Chimera process, and optionally read any
* responses.
*
* Send a command to stdin of Chimera process, and optionally read any
* responses.
*
@@
-964,11
+961,6
@@
public class ChimeraManager
public boolean isChimeraX()
{
public boolean isChimeraX()
{
- return isChimeraX;
- }
-
- public void setChimeraX(boolean b)
- {
- isChimeraX = b;
+ return false;
}
}
}
}