Revision 9f8cd368
Added by Patrick Plitzner over 5 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/GfBioTerminologyImportPresenter.java | ||
---|---|---|
10 | 10 |
|
11 | 11 |
import java.util.ArrayList; |
12 | 12 |
import java.util.Collection; |
13 |
import java.util.Collections; |
|
14 |
import java.util.Comparator; |
|
13 | 15 |
import java.util.Iterator; |
16 |
import java.util.List; |
|
14 | 17 |
import java.util.stream.Collectors; |
15 | 18 |
|
16 | 19 |
import org.eclipse.jface.util.LocalSelectionTransfer; |
... | ... | |
35 | 38 |
import eu.etaxonomy.taxeditor.model.ColorResources; |
36 | 39 |
import eu.etaxonomy.taxeditor.model.MessagingUtils; |
37 | 40 |
import eu.etaxonomy.taxeditor.preference.Resources; |
38 |
import eu.etaxonomy.taxeditor.view.webimport.termimport.parser.ParserUtil; |
|
39 | 41 |
import eu.etaxonomy.taxeditor.view.webimport.termimport.parser.TermParser; |
40 | 42 |
import eu.etaxonomy.taxeditor.view.webimport.termimport.requests.RequestSearch; |
41 | 43 |
import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrapper; |
... | ... | |
184 | 186 |
} |
185 | 187 |
} |
186 | 188 |
|
187 |
private void loadTermDetails(){ |
|
188 |
OntologyTermWrapper selectedWrapper = getSelectedTerm((IStructuredSelection) composite.getTreeTermHierarchy().getSelection()); |
|
189 |
if(selectedWrapper!=null){ |
|
190 |
ParserUtil.loadDetails(selectedWrapper); |
|
191 |
updateDetails(new StructuredSelection(selectedWrapper)); |
|
192 |
} |
|
193 |
} |
|
194 |
|
|
195 | 189 |
private void search(){ |
196 | 190 |
//clear result count |
197 | 191 |
composite.getLblResultCount().setText(""); |
... | ... | |
205 | 199 |
MessagingUtils.informationDialog(NO_CONNECTION_TITLE, NO_CONNECTION_MESSAGE); |
206 | 200 |
return; |
207 | 201 |
} |
208 |
Collection<OntologyTermWrapper> wrapperList = new ArrayList<>();
|
|
202 |
List<OntologyTermWrapper> wrapperList = new ArrayList<>();
|
|
209 | 203 |
wrapperList = TermParser.parse(response); |
210 | 204 |
if(wrapperList.isEmpty()){ |
211 | 205 |
MessagingUtils.informationDialog(Messages.GfBioTerminologyImportPresenter_NO_RESULTS_TITLE, Messages.GfBioTerminologyImportPresenter_NO_RESULTS_MESSAGE); |
212 | 206 |
} |
207 |
//sort list |
|
208 |
Collections.sort(wrapperList, new Comparator<OntologyTermWrapper>() { |
|
209 |
@Override |
|
210 |
public int compare(OntologyTermWrapper o1, OntologyTermWrapper o2) { |
|
211 |
String label1 = o1.getLabel(); |
|
212 |
String label2 = o2.getLabel(); |
|
213 |
//1. search string at the beginning |
|
214 |
if(label1.startsWith(searchString)){ |
|
215 |
if(!label2.startsWith(searchString)){ |
|
216 |
return -1; |
|
217 |
} |
|
218 |
else{ |
|
219 |
return label1.compareTo(label2); |
|
220 |
} |
|
221 |
} |
|
222 |
else if(label2.startsWith(searchString)){ |
|
223 |
return 1; |
|
224 |
} |
|
225 |
//2. label that contains search string |
|
226 |
if(label1.contains(searchString)){ |
|
227 |
if(!label2.contains(searchString)){ |
|
228 |
return -1; |
|
229 |
} |
|
230 |
} |
|
231 |
else if(label2.contains(searchString)){ |
|
232 |
return 1; |
|
233 |
} |
|
234 |
return label1.compareTo(label2); |
|
235 |
} |
|
236 |
}); |
|
213 | 237 |
composite.getTreeTermHierarchy().setInput(wrapperList); |
214 | 238 |
|
215 | 239 |
composite.getLblResultCount().setText(Integer.toString(wrapperList.size())); |
Also available in: Unified diff
ref #7806 Sort result list