Project

General

Profile

« Previous | Next » 

Revision 5eee5e77

Added by Patrick Plitzner almost 6 years ago

ref #7362 Implement search interface for terminology service

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/OntologyTermContentProvider.java
12 12
import java.util.Collection;
13 13

  
14 14
import org.eclipse.jface.viewers.ITreeContentProvider;
15
import org.json.JSONArray;
16
import org.json.JSONException;
17
import org.json.JSONObject;
18 15

  
19
import eu.etaxonomy.taxeditor.view.webimport.termimport.requests.RequestNarrower;
16
import eu.etaxonomy.taxeditor.view.webimport.termimport.parser.OntologyTermParser;
17
import eu.etaxonomy.taxeditor.view.webimport.termimport.requests.RequestBroader;
20 18
import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrapper;
21 19

  
22 20
/**
......
26 24
 */
27 25
public class OntologyTermContentProvider implements ITreeContentProvider {
28 26

  
29
    private String ontologyLabel;
30

  
31 27
    @Override
32 28
    public Object[] getElements(Object inputElement) {
33 29
        Collection<Object> elements = new ArrayList<>();
......
39 35

  
40 36
    @Override
41 37
    public Object[] getChildren(Object parentElement) {
42
        Collection<OntologyTermWrapper> wrapperList = new ArrayList<>();
43 38
        if(parentElement instanceof OntologyTermWrapper){
44
            String parentUri = ((OntologyTermWrapper) parentElement).getUri();
45
            String response = new RequestNarrower(parentUri, ontologyLabel).request();
46
            try {
47
                JSONObject jsonResponse = new JSONObject(response);
48
                JSONArray responseArray = jsonResponse.getJSONArray("results");
49
                for(int i=0;i<responseArray.length();i++){
50
                    JSONObject terminology = responseArray.getJSONObject(i);
51
                    String label = terminology.getString("label");
52
                    String uriString = terminology.getString("uri");
53
                    wrapperList.add(new OntologyTermWrapper(uriString, label));
54
                }
55
            } catch (JSONException e) {
56
                e.printStackTrace();
57
            }
39
            OntologyTermWrapper wrapper = (OntologyTermWrapper) parentElement;
40
            String response = new RequestBroader(wrapper.getUri(), wrapper.getSourceTerminology()).request();
41
            Collection<OntologyTermWrapper> broader = OntologyTermParser.parse(response, ((OntologyTermWrapper) parentElement).getSourceTerminology());
42
            return broader.toArray();
58 43
        }
59
        return wrapperList.toArray();
44
        return null;
60 45
    }
61 46

  
62 47
    @Override
......
69 54
        return true;
70 55
    }
71 56

  
72
    public void setOntologyLabel(String ontologyLabel) {
73
        this.ontologyLabel = ontologyLabel;
74
    }
75

  
76 57
}

Also available in: Unified diff