+ // 1. recover correct names and attributes for each sequence in alignment.
+ /*
+ * TODO: housekeeping w.r.t. recovery of dataset and annotation references
+ * for input sequences, and then dataset sequence creation for new
+ * sequences retrieved from service // finally, attempt to de-uniquify to
+ * recover input sequence identity, and try to map back onto dataset Note:
+ * this jalview.analysis.SeqsetUtils.deuniquify(SeqNames, alseqs, true);
+ * will NOT WORK - the returned alignment may contain multiple versions of
+ * the input sequence, each being a subsequence of the original.
+ * deuniquify also removes existing annotation and features added in the
+ * previous step... al.setDataset(dataset); // add in new sequences
+ * retrieved from sequence search which are not already in dataset. //
+ * trigger a 'fetchDBids' to annotate sequences with database ids...
+ */
+ // jalview.analysis.SeqsetUtils.deuniquifyAndMerge(parentDataset,
+ // seqDetails, al,true);
+
+ jalview.analysis.SeqsetUtils.deuniquify(seqDetails,
+ al.getSequencesArray(), true);
+ // 2. Update names of associated nodes in any trees
+ for (NewickFile nf : trees)
+ {
+ // the following works because all trees are already had node/SequenceI
+ // associations created.
+ jalview.analysis.NJTree njt = new jalview.analysis.NJTree(
+ al.getSequencesArray(), nf);
+ // this just updates the displayed leaf name on the tree according to
+ // the SequenceIs.
+ njt.renameAssociatedNodes();
+ }
+
+ }
+
+ /**
+ * set modification flag. If anything modifies the alignment in the current
+ * set, this flag should be true
+ */
+ private boolean modified = false;
+
+ /**
+ * @return the modified
+ */
+ public boolean isModified()
+ {
+ return modified;
+ }
+
+ /**
+ * or the modification state with the given state
+ *
+ * @param modifiedFromAction
+ */
+ public void updateSetModified(boolean modifiedFromAction)
+ {
+ modified |= modifiedFromAction;
+ }