commit 03b1edf8659e77ff5c7239c459848bb77e0c46de
Author: Patrick Plitzner
Date: Mon Apr 23 15:45:45 2018 +0200
ref #7362 Implement view for Gfbio terminology service (experimental)
diff --git a/eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF b/eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
index b4b20af33..8f3631ba3 100644
--- a/eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
+++ b/eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
@@ -469,6 +469,7 @@ Export-Package: com.google.api,
org.joda.time.field;uses:="org.joda.time",
org.joda.time.format;uses:="org.joda.time",
org.joda.time.tz;uses:="org.joda.time",
+ org.json,
org.junit;uses:="org.hamcrest",
org.junit.runner,
org.slf4j,
diff --git a/eu.etaxonomy.taxeditor.store/fragment.e4xmi b/eu.etaxonomy.taxeditor.store/fragment.e4xmi
index 200c36168..878730cff 100644
--- a/eu.etaxonomy.taxeditor.store/fragment.e4xmi
+++ b/eu.etaxonomy.taxeditor.store/fragment.e4xmi
@@ -72,6 +72,7 @@
nonRestore
+
@@ -161,12 +162,16 @@
-
+
+
+
+
+
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/GfBioTerminologyImportComposite.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/GfBioTerminologyImportComposite.java
new file mode 100644
index 000000000..b9277036e
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/GfBioTerminologyImportComposite.java
@@ -0,0 +1,47 @@
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.view.webimport.termimport;
+
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Tree;
+
+/**
+ * @author pplitzner
+ * @since Apr 23, 2018
+ *
+ */
+public class GfBioTerminologyImportComposite extends Composite{
+ private TreeViewer treeTermHierarchy;
+ private ComboViewer comboOntologies;
+
+ public GfBioTerminologyImportComposite(Composite parent, int style) {
+ super(parent, style);
+ setLayout(new GridLayout(1, false));
+
+ comboOntologies = new ComboViewer(this, SWT.NONE);
+ Combo combo = comboOntologies.getCombo();
+ combo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+
+ treeTermHierarchy = new TreeViewer(this, SWT.BORDER);
+ Tree tree = treeTermHierarchy.getTree();
+ tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+ }
+ public TreeViewer getTreeTermHierarchy() {
+ return treeTermHierarchy;
+ }
+ public ComboViewer getComboOntologies() {
+ return comboOntologies;
+ }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/GfBioTerminologyImportPart.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/GfBioTerminologyImportPart.java
new file mode 100644
index 000000000..b2dca7a69
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/GfBioTerminologyImportPart.java
@@ -0,0 +1,28 @@
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.view.webimport.termimport;
+
+import javax.annotation.PostConstruct;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author pplitzner
+ * @since Apr 23, 2018
+ *
+ */
+public class GfBioTerminologyImportPart {
+
+ @PostConstruct
+ public void create(Composite parent){
+ GfBioTerminologyImportComposite composite = new GfBioTerminologyImportComposite(parent, SWT.NONE);
+ new GfBioTerminologyImportPresenter(composite);
+ }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/GfBioTerminologyImportPresenter.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/GfBioTerminologyImportPresenter.java
new file mode 100644
index 000000000..1dee2192d
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/GfBioTerminologyImportPresenter.java
@@ -0,0 +1,95 @@
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.view.webimport.termimport;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.view.webimport.termimport.requests.RequestTerminologies;
+import eu.etaxonomy.taxeditor.view.webimport.termimport.requests.TerminologyServiceConstants;
+import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrapper;
+import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.TerminologyWrapper;
+
+/**
+ * @author pplitzner
+ * @since Apr 23, 2018
+ *
+ */
+public class GfBioTerminologyImportPresenter implements ISelectionChangedListener {
+
+ private GfBioTerminologyImportComposite composite;
+ private OntologyTermContentProvider contentProvider;
+
+ /**
+ * @param composite
+ */
+ public GfBioTerminologyImportPresenter(GfBioTerminologyImportComposite composite) {
+ super();
+ this.composite = composite;
+ String response = new RequestTerminologies().request();
+ if(response==null){
+ MessagingUtils.informationDialog("Web service unavailable", "Could not retrieve data from web service");
+ return;
+ }
+ //fetch terminology list via web service
+ List wrapperList = new ArrayList<>();
+ try {
+ JSONObject jsonResponse = new JSONObject(response);
+ JSONArray responseArray = jsonResponse.getJSONArray("results");
+ for(int i=0;i termWrappers = new HashSet<>();
+ termWrappers.add(new OntologyTermWrapper(TerminologyServiceConstants.PO_ROOT_ELEMENT, "plant anatomical entity"));
+ composite.getTreeTermHierarchy().setInput(termWrappers);
+ }
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/OntologyTermContentProvider.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/OntologyTermContentProvider.java
new file mode 100644
index 000000000..9cbf6195d
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/OntologyTermContentProvider.java
@@ -0,0 +1,76 @@
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.view.webimport.termimport;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import eu.etaxonomy.taxeditor.view.webimport.termimport.requests.RequestNarrower;
+import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrapper;
+
+/**
+ * @author pplitzner
+ * @since Apr 23, 2018
+ *
+ */
+public class OntologyTermContentProvider implements ITreeContentProvider {
+
+ private String ontologyLabel;
+
+ @Override
+ public Object[] getElements(Object inputElement) {
+ Collection