From 048137e4ef1a2252d884afdd6ac8a12f0385eb16 Mon Sep 17 00:00:00 2001 From: jprocter Date: Mon, 5 Feb 2007 14:44:38 +0000 Subject: [PATCH] kkv change --- src/jalview/gui/UserQuestionnaireCheck.java | 256 +++++++++++++-------------- 1 file changed, 128 insertions(+), 128 deletions(-) diff --git a/src/jalview/gui/UserQuestionnaireCheck.java b/src/jalview/gui/UserQuestionnaireCheck.java index 9ce8d01..b2b19b9 100644 --- a/src/jalview/gui/UserQuestionnaireCheck.java +++ b/src/jalview/gui/UserQuestionnaireCheck.java @@ -1,128 +1,128 @@ -package jalview.gui; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.net.URL; - -import javax.swing.JOptionPane; - -public class UserQuestionnaireCheck implements Runnable { - /** - * Implements the client side machinery for detecting a new questionnaire, - * checking if the user has responded to an existing one, - * and prompting the user for responding to a questionnaire. - * This is intended to work with the perl CGI scripts checkresponder.pl and - * questionnaire.pl - */ - String url; - UserQuestionnaireCheck(String url) { - this.url = url; - } - public void run() { - boolean prompt=false; - try { - if (url.indexOf("checkresponder.pl")==-1) { - throw new Error("Invalid URL for the checkForQuestionnaire() method. The -questionnaire method is for Jalview user questionnaires only."); - } - // extract qid if there is one - else just get the latest - String rid=null,qid=null; - String args=null; - String baseurl=null,surl=null; - int t; - if ((t=url.indexOf("?"))>-1) { - args=url.substring(t+1); - surl=url.substring(0,t); - } - if ((t=url.lastIndexOf('/'))>-1) { - baseurl=url.substring(0,t+1); - } - if (args!=null && (t=args.indexOf("qid="))>-1) { - int e = args.indexOf("&",t+4); - if (e<0) - qid=args.substring(t+4); - else - qid=args.substring(t+4,e); - if (qid!=null && qid.length()==0) - qid=null; - } - - if (qid==null) { - // get a new questionnaire - URL qurl = new URL(url); - BufferedReader br = new BufferedReader(new InputStreamReader(qurl.openStream())); - String qresp=null; - while ((qresp=br.readLine())!=null) { - // check if response is of form we expect. - if (qresp.indexOf(':')>-1) { - rid=null; - qid=qresp.substring(0,qresp.indexOf(':')); - if (qresp.indexOf(':')<(qresp.length()-1)) { - rid = qresp.substring(qresp.indexOf(':')+1); - } - } - } - } else { - // retrieve an id for an existing questionnaire - // get a new questionnaire - URL qurl = new URL(url); - BufferedReader br = new BufferedReader(new InputStreamReader(qurl.openStream())); - String qresp=null; - while ((qresp=br.readLine())!=null) { - // check if response is of form we expect. - if (qresp.indexOf(':')>-1) { - rid=null; - qid=qresp.substring(0,qresp.indexOf(':')); - if (qresp.indexOf(':')<(qresp.length()-1)) { - rid = qresp.substring(qresp.indexOf(':')+1); - } - } - } - - } - // compare the questionnaire id against the id of the last questionnaire - // that the user was prompted with. - if (qid!=null) { - String lastq=jalview.bin.Cache.getProperty("QUESTIONNAIRE"); - if (lastq==null || !lastq.startsWith(qid+":")) { - prompt = true; - } else { - String qrid = lastq.substring(lastq.indexOf(':')+1); // retrieve old rid - if (qrid!=null && !qrid.equals("null")) - rid = qrid; - // see if we have already responsed to this questionnaire. - URL qurl = new URL(url+"?qid="+qid+"&rid="+rid); - BufferedReader br = new BufferedReader(new InputStreamReader(qurl.openStream())); - String qresp; - if (br.ready() && (qresp=br.readLine())!=null && qresp.indexOf("NOTYET")>-1) { - prompt=true; // not yet responded under that ID - } - } - } - // Update our local property cache - jalview.bin.Cache.setProperty("QUESTIONNAIRE",qid+":"+rid); - if (prompt) { - String qurl = null; - if (baseurl!=null) - qurl = baseurl+"questionnaire.pl?qid="+qid+"&rid="+rid; - else - qurl = url; - jalview.bin.Cache.log.info("Prompting user for questionnaire at "+qurl); - int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop, - "There is a new Questionnaire available." + - "Would you like to complete it now ?\n", - "Jalview User Survey", - JOptionPane.YES_NO_OPTION, - JOptionPane.QUESTION_MESSAGE); - - if (reply == JOptionPane.YES_OPTION) - { - jalview.bin.Cache.log.debug("Opening "+qurl); - jalview.util.BrowserLauncher.openURL(qurl); - } - } - } catch (Exception e) { - jalview.bin.Cache.log.warn("When trying to access questionnaire URL "+url,e); - } - } - -} +package jalview.gui; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.URL; + +import javax.swing.JOptionPane; + +public class UserQuestionnaireCheck implements Runnable { + /** + * Implements the client side machinery for detecting a new questionnaire, + * checking if the user has responded to an existing one, + * and prompting the user for responding to a questionnaire. + * This is intended to work with the perl CGI scripts checkresponder.pl and + * questionnaire.pl + */ + String url; + UserQuestionnaireCheck(String url) { + this.url = url; + } + public void run() { + boolean prompt=false; + try { + if (url.indexOf("checkresponder.pl")==-1) { + throw new Error("Invalid URL for the checkForQuestionnaire() method. The -questionnaire method is for Jalview user questionnaires only."); + } + // extract qid if there is one - else just get the latest + String rid=null,qid=null; + String args=null; + String baseurl=null,surl=null; + int t; + if ((t=url.indexOf("?"))>-1) { + args=url.substring(t+1); + surl=url.substring(0,t); + } + if ((t=url.lastIndexOf('/'))>-1) { + baseurl=url.substring(0,t+1); + } + if (args!=null && (t=args.indexOf("qid="))>-1) { + int e = args.indexOf("&",t+4); + if (e<0) + qid=args.substring(t+4); + else + qid=args.substring(t+4,e); + if (qid!=null && qid.length()==0) + qid=null; + } + + if (qid==null) { + // get a new questionnaire + URL qurl = new URL(url); + BufferedReader br = new BufferedReader(new InputStreamReader(qurl.openStream())); + String qresp=null; + while ((qresp=br.readLine())!=null) { + // check if response is of form we expect. + if (qresp.indexOf(':')>-1) { + rid=null; + qid=qresp.substring(0,qresp.indexOf(':')); + if (qresp.indexOf(':')<(qresp.length()-1)) { + rid = qresp.substring(qresp.indexOf(':')+1); + } + } + } + } else { + // retrieve an id for an existing questionnaire + // get a new questionnaire + URL qurl = new URL(url); + BufferedReader br = new BufferedReader(new InputStreamReader(qurl.openStream())); + String qresp=null; + while ((qresp=br.readLine())!=null) { + // check if response is of form we expect. + if (qresp.indexOf(':')>-1) { + rid=null; + qid=qresp.substring(0,qresp.indexOf(':')); + if (qresp.indexOf(':')<(qresp.length()-1)) { + rid = qresp.substring(qresp.indexOf(':')+1); + } + } + } + + } + // compare the questionnaire id against the id of the last questionnaire + // that the user was prompted with. + if (qid!=null) { + String lastq=jalview.bin.Cache.getProperty("QUESTIONNAIRE"); + if (lastq==null || !lastq.startsWith(qid+":")) { + prompt = true; + } else { + String qrid = lastq.substring(lastq.indexOf(':')+1); // retrieve old rid + if (qrid!=null && !qrid.equals("null")) + rid = qrid; + // see if we have already responsed to this questionnaire. + URL qurl = new URL(url+"?qid="+qid+"&rid="+rid); + BufferedReader br = new BufferedReader(new InputStreamReader(qurl.openStream())); + String qresp; + if (br.ready() && (qresp=br.readLine())!=null && qresp.indexOf("NOTYET")>-1) { + prompt=true; // not yet responded under that ID + } + } + } + // Update our local property cache + jalview.bin.Cache.setProperty("QUESTIONNAIRE",qid+":"+rid); + if (prompt) { + String qurl = null; + if (baseurl!=null) + qurl = baseurl+"questionnaire.pl?qid="+qid+"&rid="+rid; + else + qurl = url; + jalview.bin.Cache.log.info("Prompting user for questionnaire at "+qurl); + int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop, + "There is a new Questionnaire available." + + "Would you like to complete it now ?\n", + "Jalview User Survey", + JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE); + + if (reply == JOptionPane.YES_OPTION) + { + jalview.bin.Cache.log.debug("Opening "+qurl); + jalview.util.BrowserLauncher.openURL(qurl); + } + } + } catch (Exception e) { + jalview.bin.Cache.log.warn("When trying to access questionnaire URL "+url,e); + } + } + +} -- 1.7.10.2