import javax.swing.JDialog;
import javax.swing.JFrame;
+import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import jalview.gui.PromptUserConfig;
import jalview.gui.QuitHandler;
import jalview.gui.QuitHandler.QResponse;
+import jalview.gui.StructureViewerBase;
import jalview.io.AppletFormatAdapter;
import jalview.io.BioJsHTMLOutput;
import jalview.io.DataSourceType;
public void run()
{
Console.debug("Running shutdown hook");
+ QuitHandler.startForceQuit();
+ boolean closeExternal = Cache
+ .getDefault("DEFAULT_CLOSE_EXTERNAL_VIEWERS", false)
+ || Cache.getDefault("ALWAYS_CLOSE_EXTERNAL_VIEWERS", false);
+ StructureViewerBase.setQuitClose(closeExternal);
+ if (desktop != null)
+ {
+ for (JInternalFrame frame : Desktop.desktop.getAllFrames())
+ {
+ if (frame instanceof StructureViewerBase)
+ {
+ ((StructureViewerBase) frame).closeViewer(closeExternal);
+ }
+ }
+ }
+
if (QuitHandler.gotQuitResponse() == QResponse.CANCEL_QUIT)
{
// Got to here by a SIGTERM signal.
// Note we will not actually cancel the quit from here -- it's too
- // late -- but we can wait for saving files.
+ // late -- but we can wait for saving files and close external viewers
+ // if configured.
+ // Close viewers/Leave viewers open
Console.debug("Checking for saving files");
QuitHandler.getQuitResponse(false);
}
Jalview.exit(null, 0);
}
- if (bootstrapArgs.contains(Arg.HEADLESS))
+ // new CLI
+ headlessArg = isHeadless(bootstrapArgs);
+ if (headlessArg)
{
System.setProperty("java.awt.headless", "true");
- // new
- headlessArg = bootstrapArgs.getBoolean(Arg.HEADLESS);
}
+ // old CLI
if (aparser.contains("nodisplay") || aparser.contains("nogui")
|| aparser.contains("headless"))
{
System.setProperty("java.awt.headless", "true");
- // old
headless = true;
}
// anything else!
System.out.println("[TESTOUTPUT] arg "
+ (yes ? a.argString() : a.negateArgString()) + " was set");
}
+
+ private static boolean isHeadless(BootstrapArgs bootstrapArgs)
+ {
+ if (bootstrapArgs == null)
+ {
+ return false;
+ }
+ boolean isHeadless = false;
+ if (bootstrapArgs.contains(Arg.GUI))
+ {
+ isHeadless = !bootstrapArgs.getBoolean(Arg.GUI);
+ }
+ else if (bootstrapArgs.contains(Arg.HEADLESS))
+ {
+ isHeadless = bootstrapArgs.getBoolean(Arg.HEADLESS);
+ }
+ else if (bootstrapArgs.argsHaveOption(Opt.OUTPUTFILE))
+ {
+ isHeadless = true;
+ }
+ return isHeadless;
+ }
}
+ ChannelProperties.getProperty("app_name"),
Opt.UNARY, Opt.BOOTSTRAP),
HEADLESS(Type.CONFIG,
- "Run Jalview in headless mode. No GUI interface will be created and Jalview will quit after all arguments have been processed.",
+ "Run Jalview in headless mode. No GUI interface will be created and Jalview will quit after all arguments have been processed. "
+ + "Headless mode is assumed if an output file is to be generated, this can be overridden with --noheadless or --gui.",
+ Opt.BOOLEAN, Opt.BOOTSTRAP),
+ GUI(Type.CONFIG,
+ "Do not run Jalview in headless mode. This overrides the assumption of headless mode when an output file is to be generated.",
Opt.UNARY, Opt.BOOTSTRAP),
JABAWS(Type.CONFIG, "Set a different URL to connect to a JABAWS server.",
Opt.STRING, Opt.BOOTSTRAP),
"Output an image of the open alignment window. Format is specified by the subval modifier, a following --type argument or guessed from the file extension. Valid formats/extensions are:\n"
+ "svg,\n" + "png,\n" + "eps,\n" + "html,\n" + "biojs.",
Opt.STRING, Opt.LINKED, Opt.ALLOWSUBSTITUTIONS, Opt.ALLOWALL,
- Opt.REQUIREINPUT, Opt.OUTPUT, Opt.PRIMARY),
+ Opt.REQUIREINPUT, Opt.OUTPUTFILE, Opt.PRIMARY),
TYPE(Type.IMAGE,
"Set the image format for the preceding --image. Valid values are:\n"
+ "svg,\n" + "png,\n" + "eps,\n" + "html,\n" + "biojs.",
Opt.STRING, Opt.LINKED, Opt.ALLOWALL),
STRUCTUREIMAGE(Type.STRUCTUREIMAGE,
"Export an image of a 3D structure opened in JMOL", Opt.STRING,
- Opt.LINKED, Opt.MULTI),
+ Opt.LINKED, Opt.MULTI, Opt.OUTPUTFILE),
STRUCTUREIMAGETYPE(Type.STRUCTUREIMAGE,
"Set the structure image format for the preceding --structureimage. Valid values are:\n"
+ "svg,\n" + "png,\n" + "eps,\n" + "html,\n" + "biojs.",
+ "clustal (aln),\n" + "phylip (phy),\n"
+ "jalview (jvp, jar).",
Opt.STRING, Opt.LINKED, Opt.ALLOWSUBSTITUTIONS, Opt.ALLOWALL,
- Opt.REQUIREINPUT, Opt.OUTPUT, Opt.PRIMARY),
+ Opt.REQUIREINPUT, Opt.OUTPUTFILE, Opt.PRIMARY),
FORMAT(Type.OUTPUT,
"Sets the format for the preceding --output file. Valid formats are:\n"
+ "fasta,\n" + "pfam,\n" + "stockholm,\n" + "pir,\n"
INPUT, // This Arg counts as an input for REQUIREINPUT
REQUIREINPUT, // This Arg can only be applied via --all if there is an
// input (i.e. --open or --append)
- OUTPUT, // This Arg provides an output filename. With Opt.ALLOWALL *.ext is
- // shorthand for --all --output={basename}.ext
+ OUTPUTFILE, // This Arg provides an output filename. With Opt.ALLOWALL *.ext
+ // is
+ // shorthand for --all --output={basename}.ext
STORED, // This Arg resets and creates a new set of "opened" linkedIds
HELP, // This Arg is a --help type arg
PRIMARY, // This Arg is the main Arg for its type
return true;
}
+ protected Opt[] getOptions()
+ {
+ return argOptions;
+ }
+
protected void setOptions(Opt... options)
{
this.argOptions = options;
{
if (linkedId == null)
{
- if (a.hasOption(Opt.OUTPUT) && a.hasOption(Opt.ALLOWALL)
+ if (a.hasOption(Opt.OUTPUTFILE) && a.hasOption(Opt.ALLOWALL)
&& val.startsWith(MATCHALLLINKEDIDS))
{
// --output=*.ext is shorthand for --all --output {basename}.ext
val = LINKEDIDDIRNAME + File.separator + LINKEDIDBASENAME
+ val.substring(MATCHALLLINKEDIDS.length());
}
- else if (a.hasOption(Opt.OUTPUT) && a.hasOption(Opt.ALLOWALL)
+ else if (a.hasOption(Opt.OUTPUTFILE) && a.hasOption(Opt.ALLOWALL)
&& val.startsWith(MATCHOPENEDLINKEDIDS))
{
// --output=open*.ext is shorthand for --opened --output
private Set<File> argFiles = new HashSet<>();
+ private Set<Opt> argsOptions = new HashSet<>();
+
public static BootstrapArgs getBootstrapArgs(String[] args)
{
List<String> argList = new ArrayList<>(Arrays.asList(args));
Arg a = ArgParser.argMap.get(argName);
+ if (a != null)
+ {
+ for (Opt opt : a.getOptions())
+ {
+ if (!argsOptions.contains(opt))
+ {
+ argsOptions.add(opt);
+ }
+ }
+ }
+
if (a == null || !a.hasOption(Opt.BOOTSTRAP))
{
// not a valid bootstrap arg
return false;
}
if (bootstrapArgMap.containsKey(a))
+ {
return Boolean.parseBoolean(get(a));
+ }
else
+ {
return a.getDefaultBoolValue();
+ }
+ }
+
+ public boolean argsHaveOption(Opt opt)
+ {
+ return argsOptions.contains(opt);
}
}
}
}
Jalview.setCurrentAlignFrame(null);
- System.out.println("ALL CLOSED");
+ jalview.bin.Console.info("ALL CLOSED");
/*
* reset state of singleton objects as appropriate (clear down session state
import java.io.File;
import java.util.List;
+import java.util.Locale;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import javax.swing.JTextPane;
import com.formdev.flatlaf.extras.FlatDesktop;
+import com.formdev.flatlaf.extras.FlatDesktop.QuitResponse;
import jalview.api.AlignmentViewPanel;
import jalview.bin.Cache;
private static boolean interactive = true;
+ private static QuitResponse flatlafResponse = null;
+
public static enum QResponse
{
NULL, QUIT, CANCEL_QUIT, FORCE_QUIT
private static ExecutorService executor = Executors.newFixedThreadPool(3);
- public static QResponse setQuitHandler()
+ public static void setQuitHandler()
{
FlatDesktop.setQuitHandler(response -> {
- Runnable performQuit = () -> {
- response.performQuit();
- setResponse(QResponse.QUIT);
- };
- Runnable performForceQuit = () -> {
- response.performQuit();
- setResponse(QResponse.FORCE_QUIT);
- };
- Runnable cancelQuit = () -> {
- response.cancelQuit();
- // reset
- setResponse(QResponse.NULL);
- };
- getQuitResponse(true, performQuit, performForceQuit, cancelQuit);
+ flatlafResponse = response;
+ Desktop.instance.desktopQuit();
});
+ }
- return gotQuitResponse();
+ public static void startForceQuit()
+ {
+ setResponse(QResponse.FORCE_QUIT);
}
private static QResponse gotQuitResponse = QResponse.NULL;
protected static QResponse setResponse(QResponse qresponse)
{
gotQuitResponse = qresponse;
+ if ((qresponse == QResponse.CANCEL_QUIT || qresponse == QResponse.NULL)
+ && flatlafResponse != null)
+ {
+ flatlafResponse.cancelQuit();
+ }
return qresponse;
}
qd.showDialogOnTopAsync(
new StringBuilder(
MessageManager.getString("label.quit_jalview"))
- .append("\n").append(messageString)
- .toString(),
+ .append("\n").append(messageString).toString(),
MessageManager.getString("action.quit"),
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null,
new Object[]
int count = Desktop.instance.structureViewersStillRunningCount();
if (count > 0)
{
+ String alwaysCloseExternalViewers = Cache
+ .getDefault("ALWAYS_CLOSE_EXTERNAL_VIEWERS", "ask");
String prompt = MessageManager
.formatMessage(count == 1 ? "label.confirm_quit_viewer"
: "label.confirm_quit_viewers");
String[] buttonsText = { MessageManager.getString("action.yes"),
MessageManager.getString("action.no"), cancelQuitText };
- int confirmResponse = JvOptionPane.showOptionDialog(
- Desktop.instance, prompt, title,
- JvOptionPane.YES_NO_CANCEL_OPTION,
- JvOptionPane.WARNING_MESSAGE, null, buttonsText,
- cancelQuit);
+ int confirmResponse = -1;
+ if (alwaysCloseExternalViewers == null || "ask".equals(
+ alwaysCloseExternalViewers.toLowerCase(Locale.ROOT)))
+ {
+ confirmResponse = JvOptionPane.showOptionDialog(Desktop.instance,
+ prompt, title, JvOptionPane.YES_NO_CANCEL_OPTION,
+ JvOptionPane.WARNING_MESSAGE, null, buttonsText,
+ cancelQuit);
+ }
+ else
+ {
+ confirmResponse = Cache
+ .getDefault("ALWAYS_CLOSE_EXTERNAL_VIEWERS", false)
+ ? JvOptionPane.YES_OPTION
+ : JvOptionPane.NO_OPTION;
+ }
if (confirmResponse == JvOptionPane.CANCEL_OPTION)
{
public void commandsOpenTest(String cmdLine, boolean cmdArgs,
int numFrames, String[] sequences)
{
- String[] args = cmdLine.split("\\s+");
+ String[] args = (cmdLine + " --gui").split("\\s+");
Jalview.main(args);
Commands cmds = Jalview.getInstance().getCommands();
Assert.assertNotNull(cmds);
throws IOException
{
cleanupFiles(filenames);
- String[] args = cmdLine.split("\\s+");
+ String[] args = (cmdLine + " --gui").split("\\s+");
Jalview.main(args);
Commands cmds = Jalview.getInstance().getCommands();
Assert.assertNotNull(cmds);
String[] filenames) throws IOException
{
cleanupFiles(filenames);
- String[] args = cmdLine.split("\\s+");
+ String[] args = (cmdLine + " --gui").split("\\s+");
Jalview.main(args);
Commands cmds = Jalview.getInstance().getCommands();
Assert.assertNotNull(cmds);
{
return new Object[][] {
//
- { "--nonews --nosplash --open=./examples/test_fab41.result/sample.a2m "
+ { "--gui --nonews --nosplash --open=./examples/test_fab41.result/sample.a2m "
+ "--structure=./examples/test_fab41.result/test_fab41_unrelaxed_rank_1_model_3.pdb "
+ "--structureimage=" + testfiles + "/structureimage1.png "
+ "--open=./examples/test_fab41.result/sample.a2m "
{
return new Object[][] {
//
- { "--argfile=" + testfiles + "/**/*.txt", new String[]
+ { "--gui --argfile=" + testfiles + "/**/*.txt", new String[]
{ testfiles + "/dir1/test1.png", testfiles + "/dir2/test1.png",
testfiles + "/dir3/subdir/test0.png" } },
- { "--argfile=" + testfiles + "/**/argfile.txt", new String[]
+ { "--gui --argfile=" + testfiles + "/**/argfile.txt", new String[]
{ testfiles + "/dir1/test1.png", testfiles + "/dir2/test1.png" } },
- { "--argfile=" + testfiles + "/dir*/argfile.txt", new String[]
+ { "--gui --argfile=" + testfiles + "/dir*/argfile.txt", new String[]
{ testfiles + "/dir1/test1.png", testfiles + "/dir2/test1.png" } },
- { "--initsubstitutions --append examples/uniref50.fa --image "
+ { "--gui --initsubstitutions --append examples/uniref50.fa --image "
+ testfiles + "/{basename}.png",
new String[]
{ testfiles + "/uniref50.png" } },
- { "--append examples/uniref50.fa --nosubstitutions --image "
+ { "--gui --append examples/uniref50.fa --nosubstitutions --image "
+ testfiles + "/{basename}.png",
new String[]
{ testfiles + "/{basename}.png" } }
{ "examples/uniref50.fa " + testfiles + "/test1.fa", true, 2,
ArrayUtils.concatArrays(someUniref50Seqs, t1) },
{ "examples/uniref50.fa " + testfiles + "/test1.fa", true, 2, t1 },
- { "--argfile=" + testfiles + "/argfile0.txt", true, 1,
+ { "--gui --argfile=" + testfiles + "/argfile0.txt", true, 1,
ArrayUtils.concatArrays(t1, t3) },
- { "--argfile=" + testfiles + "/argfile*.txt", true, 5,
+ { "--gui --argfile=" + testfiles + "/argfile*.txt", true, 5,
ArrayUtils.concatArrays(t1, t2, t3) },
- { "--argfile=" + testfiles + "/argfile.autocounter", true, 3,
+ { "--gui --argfile=" + testfiles + "/argfile.autocounter", true, 3,
ArrayUtils.concatArrays(t1, t2) } };
}
public void allLinkedIdsTest(String cmdLine, String[] filenames,
String[] nonfilenames)
{
- String[] args = cmdLine.split("\\s+");
+ String[] args = (cmdLine + " --gui").split("\\s+");
Jalview.main(args);
Commands cmds = Jalview.getInstance().getCommands();
Assert.assertNotNull(cmds);
//
/*
*/
- { "--open=test/jalview/bin/argparser/testfiles/*.fa --substitutions --all --output={dirname}/{basename}.stk --close",
+ { "--gui --open=test/jalview/bin/argparser/testfiles/*.fa --substitutions --all --output={dirname}/{basename}.stk --close",
new String[]
{ "test/jalview/bin/argparser/testfiles/test1.stk",
"test/jalview/bin/argparser/testfiles/test2.stk",
"test/jalview/bin/argparser/testfiles/test3.stk", },
null },
- { "--open=test/jalview/bin/argparser/testfiles/*.fa --substitutions --all --image={dirname}/{basename}.png --close",
+ { "--gui --open=test/jalview/bin/argparser/testfiles/*.fa --substitutions --all --image={dirname}/{basename}.png --close",
new String[]
{ "test/jalview/bin/argparser/testfiles/test1.png",
"test/jalview/bin/argparser/testfiles/test2.png",
"test/jalview/bin/argparser/testfiles/test3.png", },
null },
- { "--open=test/jalview/bin/argparser/testfiles/*.fa --all --output={dirname}/{basename}.stk --close",
+ { "--gui --open=test/jalview/bin/argparser/testfiles/*.fa --all --output={dirname}/{basename}.stk --close",
new String[]
{ "test/jalview/bin/argparser/testfiles/test1.stk",
"test/jalview/bin/argparser/testfiles/test2.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test1.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk", }, },
- { "--open=test/jalview/bin/argparser/**/*.fa --all --output={dirname}/{basename}.stk --close",
+ { "--gui --open=test/jalview/bin/argparser/**/*.fa --all --output={dirname}/{basename}.stk --close",
new String[]
{ "test/jalview/bin/argparser/testfiles/test1.stk",
"test/jalview/bin/argparser/testfiles/test2.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk", },
null },
- { "--open=test/jalview/bin/argparser/**/*.fa --output=*.stk --close",
+ { "--gui --open=test/jalview/bin/argparser/**/*.fa --output=*.stk --close",
new String[]
{ "test/jalview/bin/argparser/testfiles/test1.stk",
"test/jalview/bin/argparser/testfiles/test2.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk", },
null },
- { "--open=test/jalview/bin/argparser/testfiles/dir1/*.fa --open=test/jalview/bin/argparser/testfiles/dir2/*.fa --output=*.stk --close",
+ { "--gui --open=test/jalview/bin/argparser/testfiles/dir1/*.fa --open=test/jalview/bin/argparser/testfiles/dir2/*.fa --output=*.stk --close",
new String[]
{ "test/jalview/bin/argparser/testfiles/dir1/test1.stk",
"test/jalview/bin/argparser/testfiles/dir1/test2.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test1.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk", }, },
- { "--open=test/jalview/bin/argparser/testfiles/dir1/*.fa --open=test/jalview/bin/argparser/testfiles/dir2/*.fa --output=open*.stk --close",
+ { "--gui --open=test/jalview/bin/argparser/testfiles/dir1/*.fa --open=test/jalview/bin/argparser/testfiles/dir2/*.fa --output=open*.stk --close",
new String[]
{ "test/jalview/bin/argparser/testfiles/dir2/test1.stk",
"test/jalview/bin/argparser/testfiles/dir2/test2.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test1.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk", }, },
- { "--open=test/jalview/bin/argparser/testfiles/dir1/*.fa --open=test/jalview/bin/argparser/testfiles/dir2/*.fa --opened --output={dirname}/{basename}.stk --close",
+ { "--gui --open=test/jalview/bin/argparser/testfiles/dir1/*.fa --open=test/jalview/bin/argparser/testfiles/dir2/*.fa --opened --output={dirname}/{basename}.stk --close",
new String[]
{ "test/jalview/bin/argparser/testfiles/dir2/test1.stk",
"test/jalview/bin/argparser/testfiles/dir2/test2.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test1.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
"test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk", }, },
- { "--open=test/jalview/bin/argparser/testfiles/dir1/*.fa --output open*.stk --open=test/jalview/bin/argparser/testfiles/dir2/*.fa --output=open*.aln --close",
+ { "--gui --open=test/jalview/bin/argparser/testfiles/dir1/*.fa --output open*.stk --open=test/jalview/bin/argparser/testfiles/dir2/*.fa --output=open*.aln --close",
new String[]
{ "test/jalview/bin/argparser/testfiles/dir1/test1.stk",
"test/jalview/bin/argparser/testfiles/dir1/test2.stk",
//
/*
*/
- { "--nonews --nosplash --debug " + "--append=examples/uniref50.fa "
+ { "--gui --nonews --nosplash --debug "
+ + "--append=examples/uniref50.fa "
+ "--colour=gecos-flower "
+ "--structure=[seqid=FER1_SPIOL]examples/AlphaFold/AF-P00221-F1-model_v4.cif "
+ "--paematrix=examples/AlphaFold/AF-P00221-F1-predicted_aligned_error_v4.json "
+ "--props=test/jalview/bin/commandsTest2.jvprops1 ",
15, 7, 1 },
- { "--nonews --nosplash --debug " + "--append=examples/uniref50.fa "
+ { "--gui --nonews --nosplash --debug "
+ + "--append=examples/uniref50.fa "
+ "--colour=gecos-flower "
+ "--structure=[seqid=FER1_SPIOL]examples/AlphaFold/AF-P00221-F1-model_v4.cif "
+ "--paematrix=examples/AlphaFold/AF-P00221-F1-predicted_aligned_error_v4.json "
+ "--props=test/jalview/bin/commandsTest2.jvprops2 ",
15, 4, 1 },
- { "--nonews --nosplash --debug " + "--append=examples/uniref50.fa "
+ { "--gui --nonews --nosplash --debug "
+ + "--append=examples/uniref50.fa "
+ "--colour=gecos-flower "
+ "--structure=[seqid=FER1_SPIOL]examples/AlphaFold/AF-P00221-F1-model_v4.cif "
+ "--paematrix=examples/AlphaFold/AF-P00221-F1-predicted_aligned_error_v4.json "
+ "--noshowssannotations "
+ "--props=test/jalview/bin/commandsTest2.jvprops1 ",
15, 4, 1 },
- { "--nonews --nosplash --debug " + "--append=examples/uniref50.fa "
+ { "--gui --nonews --nosplash --debug "
+ + "--append=examples/uniref50.fa "
+ "--colour=gecos-flower "
+ "--structure=[seqid=FER1_SPIOL]examples/AlphaFold/AF-P00221-F1-model_v4.cif "
+ "--paematrix=examples/AlphaFold/AF-P00221-F1-predicted_aligned_error_v4.json "
+ "--noshowannotations "
+ "--props=test/jalview/bin/commandsTest2.jvprops1 ",
15, 3, 1 },
- { "--nonews --nosplash --debug " + "--append=examples/uniref50.fa "
+ { "--gui --nonews --nosplash --debug "
+ + "--append=examples/uniref50.fa "
+ "--colour=gecos-flower "
+ "--structure=[seqid=FER1_SPIOL]examples/AlphaFold/AF-P00221-F1-model_v4.cif "
+ "--paematrix=examples/AlphaFold/AF-P00221-F1-predicted_aligned_error_v4.json "
+ "--noshowannotations " + "--noshowssannotations "
+ "--props=test/jalview/bin/commandsTest2.jvprops1 ",
15, 0, 1 },
- { "--nonews --nosplash --debug " + "--append=examples/uniref50.fa "
+ { "--gui --nonews --nosplash --debug "
+ + "--append=examples/uniref50.fa "
+ "--colour=gecos-flower "
+ "--structure=[seqid=FER1_SPIOL]examples/AlphaFold/AF-P00221-F1-model_v4.cif "
+ "--paematrix=examples/AlphaFold/AF-P00221-F1-predicted_aligned_error_v4.json "
+ "--noshowannotations " + "--noshowssannotations "
+ "--props=test/jalview/bin/commandsTest2.jvprops1 ",
15, 0, 1 },
- { "--nonews --nosplash --debug --nowebservicediscovery --props=test/jalview/bin/commandsTest.jvprops --argfile=test/jalview/bin/commandsTest2.argfile1 ",
+ { "--gui --nonews --nosplash --debug --nowebservicediscovery --props=test/jalview/bin/commandsTest.jvprops --argfile=test/jalview/bin/commandsTest2.argfile1 ",
16, 19, 3 },
- { "--nonews --nosplash --debug --nowebservicediscovery --props=test/jalview/bin/commandsTest.jvprops --argfile=test/jalview/bin/commandsTest2.argfile2 ",
+ { "--gui --nonews --nosplash --debug --nowebservicediscovery --props=test/jalview/bin/commandsTest.jvprops --argfile=test/jalview/bin/commandsTest2.argfile2 ",
16, 0, 2 },
- { "--nonews --nosplash --debug --nowebservicediscovery --props=test/jalview/bin/commandsTest.jvprops --open=./examples/test_fab41.result/sample.a2m "
+ { "--gui --nonews --nosplash --debug --nowebservicediscovery --props=test/jalview/bin/commandsTest.jvprops --open=./examples/test_fab41.result/sample.a2m "
+ "--allstructures "
+ "--structure=./examples/test_fab41.result/test_fab41_unrelaxed_rank_1_model_3.pdb "
+ "--structureviewer=none "
+ "--structure=./examples/test_fab41.result/test_fab41_unrelaxed_rank_2_model_4.pdb "
+ "--structure=./examples/test_fab41.result/test_fab41_unrelaxed_rank_3_model_2.pdb",
16, 10, 0 },
- { "--nonews --nosplash --debug --nowebservicediscovery --props=test/jalview/bin/commandsTest.jvprops --open=./examples/test_fab41.result/sample.a2m "
+ { "--gui --nonews --nosplash --debug --nowebservicediscovery --props=test/jalview/bin/commandsTest.jvprops --open=./examples/test_fab41.result/sample.a2m "
+ "--allstructures "
+ "--structure=./examples/test_fab41.result/test_fab41_unrelaxed_rank_1_model_3.pdb "
+ "--noallstructures " + "--structureviewer=none "