*/
package eu.etaxonomy.taxeditor.preference;
-
import java.awt.Toolkit;
import java.io.BufferedReader;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Iterator;
import javax.swing.event.DocumentEvent;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
import org.eclipse.equinox.internal.p2.ui.misc.StringMatcher;
import org.eclipse.jface.fieldassist.ComboContentAdapter;
import org.eclipse.jface.fieldassist.ContentProposalAdapter;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Text;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
-
/**
* @author k.luther
* @date 20.04.2017
- *
*/
public class ListComponent implements ModifyListener
{
CdmPreferencePage preferencePage;
CdmPreference providerListPreference;
String providerList;
- String[] items;
-
+ java.util.List<String> items;
public CdmPreference getProviderListPreference() {
return providerListPreference;
}
-
public void setProviderListPreference(CdmPreference providerListPreference) {
this.providerListPreference = providerListPreference;
}
-
public ListComponent(Composite parent, int style, boolean isAdmin, CdmPreferencePage parentPage) {
this.isAdmin= isAdmin;
this.preferencePage = parentPage;
for (String providerString : providerArray){
if (!StringUtils.isBlank(providerString)){
list.add(providerString);
-
}
}
}
dataList.horizontalAlignment = GridData.FILL;
dataList.horizontalSpan = 3;
-
// dataList.grabExcessVerticalSpace = true;
list.setLayoutData(dataList);
-
providerURI = new Combo(parent, SWT.BORDER);
URL url;
// TODO Auto-generated catch block
e.printStackTrace();
}
-
- JSONArray jsonResponseArray;
+ java.util.List<BiocaseProvideConfig> listProvider = null;
+ ObjectMapper mapper = new ObjectMapper();
try {
- jsonResponseArray =new JSONArray(response);
-
- int i = 0;
- String service_url = null;
- JSONArray dataSets = null;
- items = new String[jsonResponseArray.length()];
- while (i<jsonResponseArray.length()){
- JSONObject object = jsonResponseArray.getJSONObject(i);
- service_url = (String) object.get("service_url");
- dataSets = (JSONArray) object.get("datasets");
- if (service_url != null){
- providerURI.add(service_url);
- items[i] = service_url;
- }
- i++;
- }
-
- } catch (JSONException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ listProvider = mapper.readValue(response, new TypeReference<java.util.List<BiocaseProvideConfig>>(){});
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ items = new ArrayList<>();
+ for (BiocaseProvideConfig conf: listProvider) {
+ items.add(conf.getService_url());
+ providerURI.add(conf.getService_url());
}
-
GridData dataProviderUri = new GridData();
dataProviderUri.horizontalAlignment = GridData.FILL;
// // additionally, configure the comboViewer arbitrary
// AutoCompleteField field = new AutoCompleteField(comboViewer.getCombo(), new ComboContentAdapter(), proposals);
-
-
-
//providerURI.addModifyListener(this);
labelException = new Label(parent, SWT.NULL);
labelException.setText("");
-
labelException.setLayoutData(dataProviderUri);
Button addButton = new Button(parent, SWT.NULL);
removeButton.addMouseListener(new RemoveListener());
}
-
- /**
- * @return
- */
IContentProposalProvider getProposalProvider() {
return new IContentProposalProvider() {
@Override
public IContentProposal[] getProposals(String contents, int position) {
//String[] items = getStringItems();
- if (contents.length() == 0 || items.length == 0) {
+ if (contents.length() == 0 || items.isEmpty()) {
return new IContentProposal[0];
}
StringMatcher matcher = new StringMatcher("*" + contents + "*", true, false); //$NON-NLS-1$ //$NON-NLS-2$
- ArrayList<String> matches = new ArrayList<String>();
- for (int i = 0; i < items.length; i++) {
- if (matcher.match(items[i])) {
- matches.add(items[i]);
+ java.util.List<String> matches = new ArrayList<>();
+ Iterator<String> itemsIterator = items.iterator();
+ String nextItem = null;
+ while (itemsIterator.hasNext()) {
+ nextItem = itemsIterator.next();
+ if (matcher.match(nextItem) ) {
+ matches.add(nextItem);
}
}