kkv change
authorjprocter <Jim Procter>
Mon, 5 Feb 2007 14:44:38 +0000 (14:44 +0000)
committerjprocter <Jim Procter>
Mon, 5 Feb 2007 14:44:38 +0000 (14:44 +0000)
src/jalview/gui/UserQuestionnaireCheck.java

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