+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.datamodel.AlignmentI#findIndex(jalview.datamodel.SequenceI)
+ */
+ @Override
+ public int findIndex(SequenceI s)
+ {
+ int i = 0;
+
+ while (i < sequences.size())
+ {
+ if (s == getSequenceAt(i))
+ {
+ return i;
+ }
+
+ i++;
+ }
+
+ return -1;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * jalview.datamodel.AlignmentI#findIndex(jalview.datamodel.SearchResults)
+ */
+ @Override
+ public int findIndex(SearchResults results)
+ {
+ int i = 0;
+
+ while (i < sequences.size())
+ {
+ if (results.involvesSequence(getSequenceAt(i)))
+ {
+ return i;
+ }
+ i++;
+ }
+ return -1;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ public int getHeight()
+ {
+ return sequences.size();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ public int getWidth()
+ {
+ int maxLength = -1;
+
+ for (int i = 0; i < sequences.size(); i++)
+ {
+ if (getSequenceAt(i).getLength() > maxLength)
+ {
+ maxLength = getSequenceAt(i).getLength();
+ }
+ }
+
+ return maxLength;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param gc
+ * DOCUMENT ME!
+ */
+ @Override
+ public void setGapCharacter(char gc)
+ {
+ gapCharacter = gc;
+ synchronized (sequences)
+ {
+ for (SequenceI seq : sequences)
+ {
+ seq.setSequence(seq.getSequenceAsString().replace('.', gc)
+ .replace('-', gc).replace(' ', gc));
+ }
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ public char getGapCharacter()
+ {
+ return gapCharacter;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.datamodel.AlignmentI#isAligned()
+ */
+ @Override
+ public boolean isAligned()
+ {
+ return isAligned(false);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.datamodel.AlignmentI#isAligned(boolean)
+ */
+ @Override
+ public boolean isAligned(boolean includeHidden)
+ {
+ int width = getWidth();
+ if (hiddenSequences == null || hiddenSequences.getSize() == 0)
+ {
+ includeHidden = true; // no hidden sequences to check against.
+ }
+ for (int i = 0; i < sequences.size(); i++)
+ {
+ if (includeHidden || !hiddenSequences.isHidden(getSequenceAt(i)))
+ {
+ if (getSequenceAt(i).getLength() != width)