this.seqs = new vamsas.objects.simple.SequenceSet();
this.seqs.setSeqs(seqarray);
}
+ /**
+ *
+ * @return true if getAlignment will return a valid alignment result.
+ */
+ public boolean hasResults() {
+ if (subjobComplete && result!=null && jobs[0].result.isFinished())
+ return true;
+ return false;
+ }
public Object[] getAlignment() {
- if (result!=null) {
+ if (result!=null && result.isFinished()) {
SequenceI[] alseqs=null;
char alseq_gapchar='-';
int alseq_l=0;
nwidth+=width;
}
} else {
- if (jobs[0].subjobComplete && jobs[0].result!=null) {
+ if (jobs[0].hasResults()) {
Object[] alg = jobs[0].getAlignment();
alignment = (SequenceI[]) alg[0];
alorders.add(alg[1]);
af.addSortByOrderMenuItem(WebServiceName + " Ordering",
(AlignmentOrder) alorders.get(0));
} else {
+ // construct a non-redundant ordering set
+ Vector names=new Vector();
+ for (int i=0,l=alorders.size(); i<l; i++) {
+ String orderName = new String("Region "+i);
+ int j=i+1;
+ int r=l;
+ while (j<l) {
+ if (((AlignmentOrder) alorders.get(i)).equals(((AlignmentOrder) alorders.get(j)))) {
+ alorders.remove(j); l--;
+ orderName+=","+j;
+ } else
+ j++;
+ }
+
+ if (i==0 && j==1)
+ names.add(new String(""));
+ else
+ names.add(orderName);
+ }
for (int i=0,l=alorders.size(); i<l; i++) {
- af.addSortByOrderMenuItem(WebServiceName + " Region "+i+" Ordering",
+ af.addSortByOrderMenuItem(WebServiceName + ((String) names.get(i))+" Ordering",
(AlignmentOrder) alorders.get(i));
}
}