+ JOptionPane
+ .showMessageDialog(
+ Desktop.desktop,
+ sh.serviceType+" can only be used\nfor amino acid alignments.",
+ "Wrong type of sequences!",
+ JOptionPane.WARNING_MESSAGE);
+ return;
+
+ }
+ if (sh.action.toLowerCase().contains("conservation"))
+ {
+ // Build an AACons style client - take alignment, return annotation for columns
+
+ List<AlignCalcWorkerI> clnts = alignFrame.getViewport()
+ .getCalcManager()
+ .getRegisteredWorkersOfClass(AAConsClient.class);
+ if (clnts == null || clnts.size() == 0)
+ {
+ if (!processParams(sh, editParams))
+ {
+ return;
+ }
+ alignFrame
+ .getViewport()
+ .getCalcManager()
+ .registerWorker(
+ new AAConsClient(sh, alignFrame, preset, paramset));
+ }
+ else
+ {
+ AAConsClient worker = (AAConsClient) clnts.get(0);
+ if (editParams)
+ {
+ paramset = worker.getArguments();
+ preset = worker.getPreset();
+ }
+
+ if (!processParams(sh, editParams, true))
+ return;
+ // reinstate worker if it was blacklisted (might have happened due to
+ // invalid parameters)
+ alignFrame.getViewport().getCalcManager().workerMayRun(worker);
+ worker.updateParameters(preset, paramset);
+
+ }
+ }
+ if (sh.action.toLowerCase().contains("disorder"))
+ {
+ // build IUPred style client. take sequences, returns annotation per sequence.