Boolean isError = Boolean.valueOf(false);
- // set wrap scope here so it can be applied after structures are opened
+ // set wrap, showSSAnnotations, showAnnotations and hideTFrows scope here so
+ // it can be applied after structures are opened
boolean wrap = false;
+ boolean showSSAnnotations = false;
+ boolean showAnnotations = false;
+ boolean hideTFrows = false;
+ AlignFrame af = null;
if (avm.containsArg(Arg.APPEND) || avm.containsArg(Arg.OPEN))
{
boolean first = true;
boolean progressBarSet = false;
- AlignFrame af;
// Combine the APPEND and OPEN files into one list, along with whether it
// was APPEND or OPEN
List<ArgValue> openAvList = new ArrayList<>();
}
// Show secondary structure annotations?
- boolean showSSAnnotations = avm.getFromSubValArgOrPref(
+ showSSAnnotations = avm.getFromSubValArgOrPref(
Arg.SHOWSSANNOTATIONS, av.getSubVals(), null,
"STRUCT_FROM_PDB", true);
-
// Show sequence annotations?
- boolean showAnnotations = avm.getFromSubValArgOrPref(
- Arg.SHOWANNOTATIONS, av.getSubVals(), null,
- "SHOW_ANNOTATIONS", true);
-
- boolean hideTFrows = (avm.getBoolean(Arg.NOTEMPFAC));
- final AlignFrame _af = af;
- // many of jalview's format/layout methods are only thread safe on the
- // swingworker thread.
- // all these methods should be on the alignViewController so it can
- // coordinate such details
- try
- {
- SwingUtilities.invokeAndWait(new Runnable()
- {
+ showAnnotations = avm.getFromSubValArgOrPref(Arg.SHOWANNOTATIONS,
+ av.getSubVals(), null, "SHOW_ANNOTATIONS", true);
+ // hide the Temperature Factor row?
+ hideTFrows = (avm.getBoolean(Arg.NOTEMPFAC));
- @Override
- public void run()
- {
- _af.setAnnotationsVisibility(showSSAnnotations, true,
- false);
-
- _af.setAnnotationsVisibility(showAnnotations, false, true);
-
- // show temperature factor annotations?
- if (hideTFrows)
- {
- // do this better (annotation types?)
- List<String> hideThese = new ArrayList<>();
- hideThese.add("Temperature Factor");
- hideThese.add(AlphaFoldAnnotationRowBuilder.LABEL);
- AlignmentUtils.showOrHideSequenceAnnotations(
- _af.getCurrentView().getAlignment(), hideThese,
- null, false, false);
- }
- }
- });
- } catch (Exception x)
- {
- Console.warn(
- "Unexpected exception adjusting annotation row visibility.",
- x);
- }
+ // showSSAnnotations, showAnnotations, hideTFrows used after opening
+ // structure
// wrap alignment? do this last for formatting reasons
wrap = avm.getFromSubValArgOrPref(Arg.WRAP, sv, null,
// open the structure (from same PDB file or given PDBfile)
if (!avm.getBoolean(Arg.NOSTRUCTURE))
{
-
- AlignFrame af = afMap.get(id);
+ if (af == null)
+ {
+ af = afMap.get(id);
+ }
if (avm.containsArg(Arg.STRUCTURE))
{
commandArgsProvided = true;
}
}
- if (wrap)
+ if (af == null)
{
+ af = afMap.get(id);
+ }
+ // many of jalview's format/layout methods are only thread safe on the
+ // swingworker thread.
+ // all these methods should be on the alignViewController so it can
+ // coordinate such details
+ if (headless)
+ {
+ showOrHideAnnotations(af, showSSAnnotations, showAnnotations,
+ hideTFrows);
+ }
+ else
+ {
+ try
+ {
+ AlignFrame _af = af;
+ final boolean _showSSAnnotations = showSSAnnotations;
+ final boolean _showAnnotations = showAnnotations;
+ final boolean _hideTFrows = hideTFrows;
+ SwingUtilities.invokeAndWait(() -> {
+ showOrHideAnnotations(_af, _showSSAnnotations, _showAnnotations,
+ _hideTFrows);
+ }
- AlignFrame af = afMap.get(id);
+ );
+ } catch (Exception x)
+ {
+ Console.warn(
+ "Unexpected exception adjusting annotation row visibility.",
+ x);
+ }
+ }
+
+ if (wrap)
+ {
+ if (af == null)
+ {
+ af = afMap.get(id);
+ }
if (af != null)
{
af.setWrapFormat(wrap, true);
return theseArgsWereParsed && !isError;
}
+ private static void showOrHideAnnotations(AlignFrame af,
+ boolean showSSAnnotations, boolean showAnnotations,
+ boolean hideTFrows)
+ {
+ Console.debug(
+ "##### Setting showSSAnnotations to " + showSSAnnotations);
+ Console.debug("##### Setting showAnnotations to " + showAnnotations);
+ Console.debug("##### Setting hideTFrows to " + hideTFrows);
+ af.setAnnotationsVisibility(showSSAnnotations, true, false);
+
+ af.setAnnotationsVisibility(showAnnotations, false, true);
+
+ // show temperature factor annotations?
+ if (hideTFrows)
+ {
+ // do this better (annotation types?)
+ List<String> hideThese = new ArrayList<>();
+ hideThese.add("Temperature Factor");
+ hideThese.add(AlphaFoldAnnotationRowBuilder.LABEL);
+ AlignmentUtils.showOrHideSequenceAnnotations(
+ af.getCurrentView().getAlignment(), hideThese, null, false,
+ false);
+ }
+ }
+
protected void processGroovyScript(String id)
{
ArgValuesMap avm = argParser.getLinkedArgs(id);