/*
 * Created on 29-Apr-2009
 *
 * TODO 
 */
package uk.ac.roe.wfau;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

/**
 * @author MAR
 *
 */
public class GESQueryRetrieverThread extends QueryRetrieverThread{
    static String startCell="<td align=\"right\" nowrap=\"nowrap\">";
    static String endCell="</td> \n";
    static String displayURL=GESHTMLSchema.baseCGIURL+"showSpectrum.cgi?";
    static String FITSDOWNLOADURL=GESHTMLSchema.baseCGIURL+"fits_download.cgi?";
    static String GIURL=GESHTMLSchema.baseJSPURL+"GetImage?mode=show&";
    /**
     * @param dbURL
     */
    public String getFromEmail(){
        return "ges-support@roe.ac.uk";
    }
    static String GESTITLE ="GES - SQL Query Results";
    public String getTitle() {
        return GESTITLE;
    }
    public GESQueryRetrieverThread(String dbURL) {
        super(dbURL);
        // TODO Auto-generated constructor stub
    }

    public static String [][] showArray = null;
    	//{ {"filename","nSpec"},{"filename"},{"multiframeID","ra","dec"} };
   // boolean [] showBoolean = new boolean [] {false};
    
    
    public StringBuffer getLinkInfo () {
        StringBuffer st=new StringBuffer("");
        if (showBoolean[1]) {
            st.append("The sLink column can be used to display the spectrum.<p>");
        }
        if (showBoolean[2]) {
            st.append("The getFLink column can be used to download the referenced FITS file.<p>");
        }
        if (showBoolean[3]) {
            st.append("The getMFLink column can be used to display 1 arcmin image cut-outs around the RA/Dec of the object.<p>");
        }        
        return st;
    }
    
    public StringBuffer getShowTitles () {
        StringBuffer st=new StringBuffer("");
            if (showBoolean[1]) {
                st.append("<th nowrap=\"nowrap\">sLink</th>");
            }
            if (showBoolean[2]) {
                st.append("<th nowrap=\"nowrap\">getFLink</th>");
            }
            if (showBoolean[3]) {
                st.append("<th nowrap=\"nowrap\">getMFLink</th>");
            }
            
        
        return st;
    }
    public StringBuffer getShowLinks (ResultSet rs) {
        StringBuffer st=new StringBuffer("");
     
        try {
            if (showBoolean[1]) {
                st.append(startCell);
      
        st.append("<a href=\""+displayURL+"extNum=0&filename="+rs.getString("filename")+"&nSpec="+
                rs.getString("nSpec")+"\" target=display>view<a/>");
        st.append(endCell);
            }
            
            if (showBoolean[2]) {
                st.append(startCell);
                st.append("<a href=\""+FITSDOWNLOADURL+"file="+rs.getString("filename")+"\">download<a/>");
                st.append(endCell);
            }
            
            if (showBoolean[3]) {
                st.append(startCell);
                st.append("<a href=\""+GIURL+"ra="+rs.getString("ra")+"&dec="+
                        rs.getString("dec")+"&mfid="+rs.getString("multiframeID")+"&database="+database+"&archive=vsa\" target=getI>view<a/>");
                st.append(endCell);
             }
            
            
            
        }
        catch (Exception e){
            return EMPTYSTRINGBUFFER;  
        }
        
        return st;
    }
     
    public void setShowBoolean(ResultSetMetaData rsmd) {
        
        showBoolean=showArrayPresent(rsmd,showArray);
        //logger.info(showBoolean[0]+" "+showBoolean[1]);
    }
    protected String getExtraPostTableHTML() {
        return "Please check the "+database+ " entry in the <a target=\"_blank\" href=\""
    +GESHTMLSchema.baseURL+"releasehistory.html\"> release history</a> for documentation pertaining to this release";
    }
}
