import jalview.datamodel.Sequence;
import jalview.gui.AlignFrame;
import jalview.gui.AlignViewport;
import jalview.datamodel.Sequence;
import jalview.gui.AlignFrame;
import jalview.gui.AlignViewport;
import jalview.gui.JvSwingUtils;
import jalview.gui.WebserviceInfo;
import jalview.gui.WsJobParameters;
import jalview.gui.JvSwingUtils;
import jalview.gui.WebserviceInfo;
import jalview.gui.WsJobParameters;
item.setToolTipText(MessageManager
.formatMessage("label.action_with_default_settings", action));
item.addActionListener((event) -> {
item.setToolTipText(MessageManager
.formatMessage("label.action_with_default_settings", action));
item.addActionListener((event) -> {
- Collections.emptyList(), title, submitGaps, true,
- alignment, viewport);
+ Collections.emptyList(), title, submitGaps, true,
+ alignment, viewport);
item.setToolTipText(MessageManager.getString(
"label.view_and_change_parameters_before_alignment"));
item.addActionListener((event) -> {
item.setToolTipText(MessageManager.getString(
"label.view_and_change_parameters_before_alignment"));
item.addActionListener((event) -> {
- .thenAcceptAsync((arguments) -> {
- if (arguments != null)
- {
- WebServiceWorkerI worker = new AlignmentWorker(msa,
- arguments, title, submitGaps, true, alignment,
- viewport);
- executor.submit(worker);
- }
- });
+ .thenAcceptAsync((arguments) -> {
+ if (arguments != null)
+ {
+ WebServiceWorkerI worker = new AlignmentWorker(msa,
+ arguments, title, submitGaps, true, alignment,
+ viewport);
+ executor.submit(worker);
+ }
+ });
preset.getDescription()));
item.setToolTipText(tooltip);
item.addActionListener((event) -> {
preset.getDescription()));
item.setToolTipText(tooltip);
item.addActionListener((event) -> {
- preset.getArguments(), title, submitGaps, true,
- alignment, viewport);
+ preset.getArguments(), title, submitGaps, true,
+ alignment, viewport);
- wsInfo.showResultsNewFrame
- .addActionListener(evt -> displayResults(results));
+ OutputWrapper out = prepareOutput(results);
+ wsInfo.showResultsNewFrame.addActionListener(evt -> displayNewFrame(
+ new Alignment(out.aln), out.alorders, out.hidden));
- private void displayResults(Map<Long, AlignmentI> alignments)
+ private class OutputWrapper
+ {
+ AlignmentI aln;
+
+ List<AlignmentOrder> alorders;
+
+ HiddenColumns hidden;
+
+ OutputWrapper(AlignmentI aln, List<AlignmentOrder> alorders,
+ HiddenColumns hidden)
+ {
+ this.aln = aln;
+ this.alorders = alorders;
+ this.hidden = hidden;
+ }
+ }
+
+ private OutputWrapper prepareOutput(Map<Long, AlignmentI> alignments)
{
List<AlignmentOrder> alorders = new ArrayList<>();
SequenceI[][] results = new SequenceI[jobs.size()][];
{
List<AlignmentOrder> alorders = new ArrayList<>();
SequenceI[][] results = new SequenceI[jobs.size()][];
/* Get the alignment including any empty sequences in the original
* order with original ids. */
JobInput input = inputs.get(job.getUid());
/* Get the alignment including any empty sequences in the original
* order with original ids. */
JobInput input = inputs.get(job.getUid());
// temporary workaround for deuniquify
@SuppressWarnings({ "rawtypes", "unchecked" })
Hashtable names = new Hashtable(input.sequenceNames);
// temporary workaround for deuniquify
@SuppressWarnings({ "rawtypes", "unchecked" })
Hashtable names = new Hashtable(input.sequenceNames);
-
- displayNewFrame(aln, alorders, hidden);
+ return new OutputWrapper(aln, alorders, hidden);
+ // displayNewFrame(aln, alorders, hidden);
* If alignment was requested from one half of a SplitFrame, show in a
* SplitFrame with the other pane similarly aligned.
*/
* If alignment was requested from one half of a SplitFrame, show in a
* SplitFrame with the other pane similarly aligned.
*/