*/
package jalview.ws.jws2;
+import jalview.datamodel.Alignment;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.AlignmentView;
+import jalview.datamodel.SequenceI;
+import jalview.gui.AlignFrame;
+import jalview.gui.Desktop;
+import jalview.gui.JvSwingUtils;
+import jalview.util.MessageManager;
+import jalview.ws.jws2.jabaws2.Jws2Instance;
+import jalview.ws.params.WsParamSetI;
+
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
-import javax.swing.*;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
-import jalview.datamodel.*;
-import jalview.gui.*;
import compbio.data.msa.MsaWS;
import compbio.metadata.Argument;
-import jalview.util.MessageManager;
-import jalview.ws.jws2.jabaws2.Jws2Instance;
-import jalview.ws.params.WsParamSetI;
/**
* DOCUMENT ME!
WsURL, wsInfo, alignFrame, WebServiceName, jobtitle, msa,
submitGaps, preserveOrder, seqdataset);
wsInfo.setthisService(msathread);
+ if (isValidAlignment(alignFrame.getCurrentView().getAlignment()))
+ {
+
msathread.start();
+ }
}
+ private boolean isValidAlignment(AlignmentI seqdataset)
+ {
+ String header = wsInfo.getInfoText()
+ + "\nValidating submited Alignment...";
+ wsInfo.setInfoText(header);
+ int validSeqCount = 0;
+ List<SequenceI> seqs = seqdataset.getSequences();
+ if (seqs.size() < 2)
+ {
+ wsInfo.setInfoText(header
+ + "\nA minimum of two sequences is required to perform this operation");
+ return false;
+ }
+
+ for (SequenceI seq : seqs)
+ {
+
+ if (seq.getSequenceAsString().matches(
+ "([(a-zA-Z?)(-?)(.?)]+)?[a-zA-Z]([(a-zA-Z?)(-?)(.?)]+)?"))
+ {
+ ++validSeqCount;
+ }
+ if (validSeqCount > 1)
+ {
+ wsInfo.setInfoText(header
+ + "\nAlignment sequences was successfully validated");
+ return true;
+ }
+ }
+
+ wsInfo.setInfoText(header
+ + "\nA minimum of two sequences with at least one non-gap character in each sequence is required to perform this operation");
+ return false;
+ }
+
+ public static void main(String[] args)
+ {
+ System.out
+ .println("A"
+ .matches("([(a-zA-Z?)(-?)(.?)]+)?[a-zA-Z]([(a-zA-Z?)(-?)(.?)]+)?"));
+ }
+
+
+
protected String getServiceActionKey()
{
return "MsaWS";