+ maxLength++;
+ // now edit the flanking gaps to justify to either left or right
+ int cLength,extent,diff;
+ for (int i = 0; i < sequences.size(); i++)
+ {
+ current = getSequenceAt(i);
+
+ cLength = 1+ends[i*2+1]-ends[i*2];
+ diff = maxLength-cLength; // number of gaps to indent
+ extent = current.getLength();
+ if (right)
+ {
+ // right justify
+ if (extent>ends[i*2+1])
+ {
+ current.deleteChars(ends[i*2+1]+1, extent);
+ modified = true;
+ }
+ if (ends[i*2]>diff)
+ {
+ current.deleteChars(0, ends[i*2]-diff);
+ modified = true;
+ } else {
+ if (ends[i*2]<diff)
+ {
+ current.insertCharAt(0, diff-ends[i*2],gapCharacter);
+ modified = true;
+ }
+ }
+ } else {
+ // left justify
+ if (ends[i*2]>0)
+ {
+ current.deleteChars(0, ends[i*2]);
+ modified = true;
+ ends[i*2+1]-=ends[i*2];
+ extent-=ends[i*2];
+ }
+ if (extent>maxLength)
+ {
+ current.deleteChars(maxLength+1, extent);
+ modified = true;
+ } else {
+ if (extent<maxLength)
+ {
+ current.insertCharAt(extent, maxLength-extent,gapCharacter);
+ modified = true;
+ }
+ }
+ }