ws for biocase provider moved
authorKatja Luther <k.luther@bgbm.org>
Fri, 6 Dec 2019 12:58:49 +0000 (13:58 +0100)
committerKatja Luther <k.luther@bgbm.org>
Fri, 6 Dec 2019 12:58:49 +0000 (13:58 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/specimen/SpecimenProviderSelectionComposite.java

index 6fa042aa44390ea76116e3be15838bf16bfe7e6e..0dbd3beedc584e7923007d2c5c0b5c265ea4513a 100644 (file)
@@ -14,6 +14,8 @@ import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Set;
 
 import org.eclipse.equinox.internal.p2.ui.misc.StringMatcher;
 import org.eclipse.jface.fieldassist.ComboContentAdapter;
@@ -36,6 +38,9 @@ import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
 
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
 /**
  * @author pplitzner
  * @date 22.05.2014
@@ -81,18 +86,14 @@ public class SpecimenProviderSelectionComposite extends Composite {
         toolkit.adapt(btnBioCaseProvider, true, true);
         btnBioCaseProvider.setText("BioCASE Provider");
 //        txtAccessPoint = new Combo(this, SWT.BORDER);
-//        CdmPreference biocaseProvider = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.BioCaseProvider);
-//        if (biocaseProvider != null){
-//            String items[] = biocaseProvider.getValue().split(";");
-//            txtAccessPoint.setItems(items);
-//        }
+//
 
         txtAccessPoint = new Combo(this, SWT.BORDER);
-
+        Set<String> itemList = new HashSet<>();
         URL url;
         String response = null;
         try {
-            url = new URL("http://www.biocase.org/whats_biocase/gbif_biocase.cgi");
+            url = new URL("https://www.biocase.org/whats_biocase/gbif_biocase.cgi");
 
             HttpURLConnection conn = (HttpURLConnection) url.openConnection();
             conn.setRequestProperty("Accept", "application/json");
@@ -100,7 +101,7 @@ public class SpecimenProviderSelectionComposite extends Composite {
     //        conn.setReadTimeout(TIMEOUT*9);
 
             if (conn.getResponseCode() != 200) {
-                throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
+             //TODO
             }
             BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
 
@@ -122,13 +123,16 @@ public class SpecimenProviderSelectionComposite extends Composite {
 
             int i = 0;
             String service_url = null;
-            items = new String[jsonResponseArray.length()];
+
+//            items = new String[jsonResponseArray.length()];
             while (i<jsonResponseArray.length()){
                 JSONObject object = jsonResponseArray.getJSONObject(i);
                 service_url = (String) object.get("service_url");
                 if (service_url != null){
-                    txtAccessPoint.add(service_url);
-                    items[i] = service_url;
+                    if (itemList.add(service_url)){
+                        txtAccessPoint.add(service_url);
+                    }
+//                    items[i] = service_url;
                 }
                 i++;
             }
@@ -137,7 +141,17 @@ public class SpecimenProviderSelectionComposite extends Composite {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-
+        String biocaseProvider = PreferencesUtil.getStringValue(PreferencePredicate.BioCaseProvider.getKey());
+        if (biocaseProvider != null){
+            String items[] = biocaseProvider.split(";");
+            for (String item: items){
+                if (itemList.add(item)){
+                    txtAccessPoint.add(item);
+                }
+            }
+        }
+        items = new String[itemList.size()];
+        items = itemList.toArray(items);
 
         GridData dataProviderUri = new GridData();
         dataProviderUri.horizontalAlignment = GridData.FILL;