import jalview.api.structures.JalviewStructureDisplayI;
import jalview.bin.Cache;
import jalview.datamodel.AlignmentI;
-import jalview.datamodel.HiddenColumns;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SearchResultMatchI;
import jalview.datamodel.SearchResultsI;
import jalview.httpserver.AbstractRequestHandler;
import jalview.io.DataSourceType;
import jalview.structure.AtomSpec;
-import jalview.structure.StructureCommandsI.SuperposeData;
+import jalview.structure.StructureCommand;
+import jalview.structure.StructureCommandI;
import jalview.structure.StructureSelectionManager;
import jalview.structures.models.AAStructureBindingModel;
-import jalview.util.MessageManager;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.net.BindException;
import java.util.ArrayList;
-import java.util.BitSet;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashMap;
* @param getResponse
*/
@Override
- public List<String> executeCommand(final String command,
+ public List<String> executeCommand(final StructureCommandI command,
boolean getResponse)
{
if (chimeraManager == null || command == null)
}
List<String> reply = null;
// trim command or it may never find a match in the replyLog!!
+ String cmd = command.getCommand().trim();
List<String> lastReply = chimeraManager
- .sendChimeraCommand(command.trim(), getResponse);
+ .sendChimeraCommand(cmd, getResponse);
if (getResponse)
{
reply = lastReply;
if (debug)
{
- log("Response from command ('" + command + "') was:\n" + lastReply);
+ log("Response from command ('" + cmd + "') was:\n" + lastReply);
}
}
return reply;
}
- /**
- * @param command
- */
- protected void executeWhenReady(String command)
- {
- waitForChimera();
- executeCommand(command, false);
- waitForChimera();
- }
-
- private void waitForChimera()
- {
- while (chimeraManager != null && chimeraManager.isBusy())
- {
- try
- {
- Thread.sleep(15);
- } catch (InterruptedException q)
- {
- }
- }
- }
-
@Override
public synchronized String[] getStructureFiles()
{
* Chimera: https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/midas/save.html
* ChimeraX: https://www.cgl.ucsf.edu/chimerax/docs/user/commands/save.html
*/
- String command = getCommandGenerator().saveSession(filepath);
+ String command = getCommandGenerator().saveSession(filepath)
+ .getCommand();
List<String> reply = chimeraManager.sendChimeraCommand(command, true);
if (reply.contains("Session written"))
{
* Chimera: https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/midas/open.html
* ChimeraX: https://www.cgl.ucsf.edu/chimerax/docs/user/commands/open.html
*/
- executeCommand("open " + filepath, true);
+ executeCommand(getCommandGenerator().loadFile(filepath), true);
// todo: test for failure - how?
return true;
}
return 0;
}
- String[] commands = getCommandGenerator()
+ List<StructureCommandI> commands = getCommandGenerator()
.setAttributesForFeatures(getSsm(), files, getSequence(), avp);
- if (commands.length > 10)
+ if (commands.size() > 10)
{
sendCommandsByFile(commands);
}
else
{
- for (String command : commands)
+ for (StructureCommandI command : commands)
{
sendAsynchronousCommand(command, null);
}
}
- return commands.length;
+ return commands.size();
}
/**
*
* @param commands
*/
- protected void sendCommandsByFile(String[] commands)
+ protected void sendCommandsByFile(List<StructureCommandI> commands)
{
try
{
File tmp = File.createTempFile("chim", getCommandFileExtension());
tmp.deleteOnExit();
PrintWriter out = new PrintWriter(new FileOutputStream(tmp));
- for (String command : commands)
+ for (StructureCommandI command : commands)
{
- out.println(command);
+ out.println(command.getCommand());
}
out.flush();
out.close();
String path = tmp.getAbsolutePath();
- String command = getCommandGenerator().openCommandFile(path);
+ StructureCommandI command = getCommandGenerator()
+ .openCommandFile(path);
sendAsynchronousCommand(command, null);
} catch (IOException e)
{
// fails for 'average.bfactor' (which is bad):
String cmd = "list residues attr '" + attName + "'";
- List<String> residues = executeCommand(cmd, true);
+ List<String> residues = executeCommand(new StructureCommand(cmd), true);
boolean featureAdded = createFeaturesForAttributes(attName, residues);
if (featureAdded)
}
@Override
- public int getModelNoForFile(String pdbFile)
+ public String getModelIdForFile(String pdbFile)
{
List<ChimeraModel> foundModels = chimeraMaps.get(pdbFile);
if (foundModels != null && !foundModels.isEmpty())
{
- return foundModels.get(0).getModelNumber();
+ return String.valueOf(foundModels.get(0).getModelNumber());
}
- return -1;
+ return "";
}
/**