/*
* 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 .
* The Jalview Authors are detailed in the 'AUTHORS' file.
*/
package jalview.gui;
import jalview.jbgui.GWebserviceInfo;
import jalview.util.MessageManager;
import jalview.ws.WSClientI;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.event.ActionEvent;
import java.awt.image.BufferedImage;
import java.util.Vector;
import javax.swing.JComponent;
import javax.swing.JEditorPane;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.StyleSheet;
/**
* Base class for web service client thread and gui TODO: create StAX parser to
* extract html body content reliably when preparing html formatted job statuses
*
* @author $author$
* @version $Revision$
*/
public class WebserviceInfo extends GWebserviceInfo
implements HyperlinkListener, IProgressIndicator
{
/** Job is Queued */
public static final int STATE_QUEUING = 0;
/** Job is Running */
public static final int STATE_RUNNING = 1;
/** Job has finished with no errors */
public static final int STATE_STOPPED_OK = 2;
/** Job has been cancelled with no errors */
public static final int STATE_CANCELLED_OK = 3;
/** job has stopped because of some error */
public static final int STATE_STOPPED_ERROR = 4;
/** job has failed because of some unavoidable service interruption */
public static final int STATE_STOPPED_SERVERERROR = 5;
int currentStatus = STATE_QUEUING;
Image image;
int angle = 0;
String title = "";
jalview.ws.WSClientI thisService;
boolean serviceIsCancellable;
JInternalFrame frame;
private IProgressIndicator progressBar;
@Override
public void setVisible(boolean aFlag)
{
super.setVisible(aFlag);
frame.setVisible(aFlag);
};
JTabbedPane subjobs = null;
java.util.Vector jobPanes = null;
private boolean serviceCanMergeResults = false;
private boolean viewResultsImmediatly = true;
/**
* Get
*
* @param flag
* to indicate if results will be shown in a new window as soon as
* they are available.
*/
public boolean isViewResultsImmediatly()
{
return viewResultsImmediatly;
}
/**
* Set
*
* @param flag
* to indicate if results will be shown in a new window as soon as
* they are available.
*/
public void setViewResultsImmediatly(boolean viewResultsImmediatly)
{
this.viewResultsImmediatly = viewResultsImmediatly;
}
private StyleSheet getStyleSheet(HTMLEditorKit editorKit)
{
// Copied blatantly from
// http://www.velocityreviews.com/forums/t132265-string-into-htmldocument.html
StyleSheet myStyleSheet = new StyleSheet();
myStyleSheet.addStyleSheet(editorKit.getStyleSheet());
editorKit.setStyleSheet(myStyleSheet);
/*
* Set the style sheet rules here by reading them from the constants
* interface.
*/
/*
* for (int ix=0; ixWS Job