Project

General

Profile

« Previous | Next » 

Revision 3799b968

Added by Patrick Plitzner almost 6 years ago

ref #7362 Add ontology selection to GfBio import

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/GfBioTerminologyImportPresenter.java
8 8
*/
9 9
package eu.etaxonomy.taxeditor.view.webimport.termimport;
10 10

  
11
import java.util.ArrayList;
11 12
import java.util.Collection;
12 13

  
13 14
import org.eclipse.jface.util.LocalSelectionTransfer;
15
import org.eclipse.jface.viewers.ArrayContentProvider;
16
import org.eclipse.jface.viewers.ComboViewer;
17
import org.eclipse.jface.viewers.ISelection;
18
import org.eclipse.jface.viewers.IStructuredSelection;
14 19
import org.eclipse.swt.SWT;
15 20
import org.eclipse.swt.dnd.DND;
16 21
import org.eclipse.swt.dnd.DragSourceAdapter;
......
21 26
import org.eclipse.swt.events.SelectionAdapter;
22 27
import org.eclipse.swt.events.SelectionEvent;
23 28

  
29
import eu.etaxonomy.taxeditor.l10n.Messages;
24 30
import eu.etaxonomy.taxeditor.model.MessagingUtils;
25 31
import eu.etaxonomy.taxeditor.view.webimport.termimport.parser.SuggestParser;
32
import eu.etaxonomy.taxeditor.view.webimport.termimport.parser.TerminologyParser;
33
import eu.etaxonomy.taxeditor.view.webimport.termimport.requests.RequestSearch;
26 34
import eu.etaxonomy.taxeditor.view.webimport.termimport.requests.RequestSuggest;
35
import eu.etaxonomy.taxeditor.view.webimport.termimport.requests.RequestTerminologies;
27 36
import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrapper;
37
import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.TerminologyWrapper;
28 38

  
29 39
/**
30 40
 * @author pplitzner
......
33 43
 */
34 44
public class GfBioTerminologyImportPresenter {
35 45

  
46
    private static final String NO_CONNECTION_TITLE = Messages.GfBioTerminologyImportPresenter_NO_CONNECTION_TITLE;
47
    private static final String NO_CONNECTION_MESSAGE = Messages.GfBioTerminologyImportPresenter_NO_CONNECTION_MESSAGE;
48

  
36 49
    private GfBioTerminologyImportComposite composite;
37 50

  
38 51
    public GfBioTerminologyImportPresenter(GfBioTerminologyImportComposite composite) {
......
55 68
                }
56 69
            }
57 70
        });
71
        String response = new RequestTerminologies().request();
72
        if(response==null){
73
            MessagingUtils.informationDialog(NO_CONNECTION_TITLE, NO_CONNECTION_MESSAGE);
74
            return;
75
        }
76
        Collection<TerminologyWrapper> terminologies = TerminologyParser.parse(response);
77
        //combo
78
        ComboViewer comboOntologies = composite.getComboTerminologies();
79
        comboOntologies.setLabelProvider(new TerminologyLabelProvider());
80
        comboOntologies.setContentProvider(new ArrayContentProvider());
81
        comboOntologies.setInput(terminologies);
82
        composite.getBtnRemoveTerminology().addSelectionListener(new SelectionAdapter() {
83
            @Override
84
            public void widgetSelected(SelectionEvent e) {
85
                composite.getComboTerminologies().setSelection(null);
86
            }
87
        });
88

  
89
        composite.getTreeTermHierarchy().setContentProvider(new OntologyTermContentProvider());
90
        composite.getTreeTermHierarchy().setLabelProvider(new OntologyTermLabelProvider());
91

  
58 92
        //tree results
59 93
        composite.getTreeTermHierarchy().setContentProvider(new OntologyTermContentProvider());
60 94
        composite.getTreeTermHierarchy().setLabelProvider(new OntologyTermLabelProvider());
......
77 111

  
78 112
    private void search(){
79 113
        String searchString = composite.getTxtSearch().getText();
80
        String response = new RequestSuggest(searchString).request();
81
        if(response==null){
82
            MessagingUtils.informationDialog("Web service unavailable", "Could not retrieve data from web service");
83
            return;
114
        ISelection selection = composite.getComboTerminologies().getSelection();
115
        Collection<OntologyTermWrapper> wrapperList = new ArrayList<>();
116
        if(selection instanceof IStructuredSelection && !selection.isEmpty()){
117
            //FIXME add support for mutliple terminology selection
118
            Object next = ((IStructuredSelection) selection).iterator().next();
119
            if(next instanceof TerminologyWrapper){
120
                String response = new RequestSearch(searchString, ((TerminologyWrapper) next).getName()).request();
121
                if(response==null){
122
                    MessagingUtils.informationDialog(NO_CONNECTION_TITLE, NO_CONNECTION_MESSAGE);
123
                    return;
124
                }
125
                wrapperList = SuggestParser.parse(response);
126
            }
127
        }
128
        else{
129
            String response = new RequestSuggest(searchString).request();
130
            if(response==null){
131
                MessagingUtils.informationDialog(NO_CONNECTION_TITLE, NO_CONNECTION_MESSAGE);
132
                return;
133
            }
134
            wrapperList = SuggestParser.parse(response);
135
        }
136
        if(wrapperList.isEmpty()){
137
            MessagingUtils.informationDialog(Messages.GfBioTerminologyImportPresenter_NO_RESULTS_TITLE, Messages.GfBioTerminologyImportPresenter_NO_RESULTS_MESSAGE);
84 138
        }
85
        Collection<OntologyTermWrapper> wrapperList = SuggestParser.parse(response);
86 139
        composite.getTreeTermHierarchy().setInput(wrapperList);
87 140
    }
88 141

  

Also available in: Unified diff