+ if (af != null)
+ {
+ af.setProgressBar(MessageManager.getString("status.running_hmmbuild"),
+ barID);
+ }
+
+ List<SequenceGroup> groups = new ArrayList<>();
+ if (params != null)
+ {
+ for (ArgumentI arg : params)
+ {
+ String name = arg.getName();
+ if (MessageManager.getString("label.hmmbuild_for").equals(name))
+ {
+ String value = arg.getValue();
+ if ("Alignment".equals(value))
+ {
+ alignment = viewport.getAlignment();
+ break;
+ }
+ else if ("All groups and alignment".equals(value))
+ {
+ alignment = viewport.getAlignment();
+ groups.addAll(viewport.getAlignment().getGroups());
+ if (groups.size() > 0)
+ {
+ multiJob = true;
+ }
+ break;
+ }
+ else if ("All groups".equals(value))
+ {
+ alignment = null;
+ groups = viewport.getAlignment().getGroups();
+ if (groups.size() > 0)
+ {
+ multiJob = true;
+ }
+ break;
+ }
+ else if ("Selected group".equals(value))
+ {
+ alignment = null;
+ groups.add(viewport.getSelectionGroup());
+ break;
+ }
+ }
+ else if (MessageManager.getString("label.use_reference")
+ .equals(name))
+ {
+ if (!af.getViewport().hasReferenceAnnotation())
+ {
+ if (af != null)
+ {
+ af.setProgressBar(
+ MessageManager.getString("status.running_hmmbuild"),
+ barID);
+ }
+ JvOptionPane.showInternalMessageDialog(af, MessageManager
+ .getString("warn.no_reference_annotation"));
+ return;
+ }
+ }
+ }
+ }
+ else if (viewport != null)
+ {
+ alignment = viewport.getAlignment();
+ }
+
+ if (alignment != null)
+ {
+ forGroup = false;
+ runHMMBuild();
+ }
+
+ if (alignment == null)
+ {
+ alignment = viewport.getAlignment();
+ }
+
+ if (groups != null && groups.size() > 0)
+ {
+ for (SequenceGroup grp : groups)
+ {
+ group = grp;
+ forGroup = true;
+ runHMMBuild();
+ }
+ }
+
+ if (af != null)
+ {
+ af.setProgressBar("", barID);
+ }
+ }
+
+ private void runHMMBuild()
+ {