+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.ws;
import jalview.gui.WebserviceInfo;
* bookkeeper class for the WebServiceInfo GUI, maintaining records of web
* service jobs handled by the window and reflecting any status updates.
*
+ * TODO: separate from the GUI cleanly since it also holds logic for
+ * interpreting failure states
+ *
* @author JimP
*
*/
* @param OutputHeader
* @param j
*/
- public void updateJobPanelState(WebserviceInfo wsInfo, String OutputHeader,
- AWsJob j)
+ public void updateJobPanelState(WebserviceInfo wsInfo,
+ String OutputHeader, AWsJob j)
{
+ if (j.cancelled)
+ {
+ cancelled++;
+ j.subjobComplete = true;
+ wsInfo.setStatus(j.jobnum, WebserviceInfo.STATE_CANCELLED_OK);
+ return;
+ }
if (j.submitted)
{
String progheader = "";
{
serror++;
j.subjobComplete = true;
- wsInfo
- .setStatus(j.jobnum,
- WebserviceInfo.STATE_STOPPED_SERVERERROR);
+ wsInfo.setStatus(j.jobnum,
+ WebserviceInfo.STATE_STOPPED_SERVERERROR);
}
else if (j.isBroken())
{
wsInfo.setStatus(j.jobnum, WebserviceInfo.STATE_STOPPED_ERROR);
}
// and pass on any sub-job messages to the user
- wsInfo.setProgressText(j.jobnum, OutputHeader);
- wsInfo.appendProgressText(j.jobnum, progheader);
+ StringBuffer output = new StringBuffer();
+ if (OutputHeader != null)
+ {
+
+ output.append(OutputHeader);
+ }
+ if (progheader != null)
+ {
+ output.append(progheader);
+ }
if (j.hasStatus())
{
- wsInfo.appendProgressText(j.jobnum, j.getStatus());
+ // Could try to squash OOMs here, but it usually doesn't help - there
+ // probably won't be
+ // enough memory to handle the results later on anyway.
+ // try {
+ String stat = j.getStatus();
+ if (stat != null)
+ {
+ output.append(stat);
+ }
+ // } catch (OutOfMemoryError e)
+ // {
+ // System.err.println("Out of memory when displaying status. Squashing
+ // error.");
+ // wsInfo.appendProgressText(j.jobnum,
+ // "..\n(Out of memory when displaying status)\n");
+ // }
}
+ wsInfo.setProgressText(j.jobnum, output.toString());
}
else
{