From aef8731c260567fc03548f898a58604d24740f65 Mon Sep 17 00:00:00 2001
From: Patrick Plitzner
Date: Fri, 26 Apr 2019 12:10:28 +0200
Subject: [PATCH] ref #8248 Implement OWL import wizard
---
.../META-INF/MANIFEST.MF | 3 +-
eu.etaxonomy.taxeditor.store/fragment.e4xmi | 3 +
.../taxeditor/io/AbstractIOManager.java | 4 +-
.../etaxonomy/taxeditor/io/ImportManager.java | 7 ++
.../io/e4/in/owl/OpenOwlImportWizard.java | 27 ++++++
.../owl/OwlImportConfiguratorWizardPage.java | 57 +++++++++++++
.../io/e4/in/owl/OwlImportWizard.java | 85 +++++++++++++++++++
7 files changed, 183 insertions(+), 3 deletions(-)
create mode 100644 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/owl/OpenOwlImportWizard.java
create mode 100644 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/owl/OwlImportConfiguratorWizardPage.java
create mode 100644 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/owl/OwlImportWizard.java
diff --git a/eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF b/eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
index 4323fed2c..5332b5890 100644
--- a/eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
+++ b/eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
@@ -74,6 +74,7 @@ Export-Package: com.google.api,
eu.etaxonomy.cdm.io.csv.caryophyllales.out,
eu.etaxonomy.cdm.io.csv.redlist.demo,
eu.etaxonomy.cdm.io.csv.redlist.out,
+ eu.etaxonomy.cdm.io.descriptive.owl.in,
eu.etaxonomy.cdm.io.descriptive.owl.out,
eu.etaxonomy.cdm.io.descriptive.word.out,
eu.etaxonomy.cdm.io.distribution.excelupdate,
@@ -117,7 +118,7 @@ Export-Package: com.google.api,
eu.etaxonomy.cdm.model.reference,
eu.etaxonomy.cdm.model.taxon,
eu.etaxonomy.cdm.model.term,
- eu.etaxonomy.cdm.model.term.init,
+ eu.etaxonomy.cdm.model.term.init,
eu.etaxonomy.cdm.model.validation,
eu.etaxonomy.cdm.model.view,
eu.etaxonomy.cdm.model.view.context,
diff --git a/eu.etaxonomy.taxeditor.store/fragment.e4xmi b/eu.etaxonomy.taxeditor.store/fragment.e4xmi
index 1f4a5516d..51d473630 100644
--- a/eu.etaxonomy.taxeditor.store/fragment.e4xmi
+++ b/eu.etaxonomy.taxeditor.store/fragment.e4xmi
@@ -155,6 +155,7 @@
+
@@ -194,6 +195,7 @@
+
@@ -243,6 +245,7 @@
+
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractIOManager.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractIOManager.java
index 6f5088af6..15ddbacb3 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractIOManager.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractIOManager.java
@@ -39,7 +39,7 @@ public abstract class AbstractIOManager {
protected ICdmRepository applicationConfiguration;
public static enum TYPE {
- Jaxb, Tcs, Excel_Taxa, Endnote, Sdd, Abcd, SpecimenCdmExcel, Excel_Name, SpecimenSearch, Gbif, Excel_Distribution, Ris
+ Jaxb, Tcs, Excel_Taxa, Endnote, Sdd, Abcd, SpecimenCdmExcel, Excel_Name, SpecimenSearch, Gbif, Excel_Distribution, Ris, OWL
}
/**
@@ -89,7 +89,7 @@ public abstract class AbstractIOManager {
* @return a {@link org.eclipse.core.runtime.jobs.Job} object.
*/
protected abstract Job createIOJob(CONFIGURATOR configurator);
-
+
/**
* @param configurator
* @param display
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ImportManager.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ImportManager.java
index 5f8f0cd89..6ce4ef3ea 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ImportManager.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ImportManager.java
@@ -34,6 +34,7 @@ import eu.etaxonomy.cdm.io.common.IImportConfigurator;
import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
import eu.etaxonomy.cdm.io.common.ImportConfiguratorBase;
import eu.etaxonomy.cdm.io.common.ImportResult;
+import eu.etaxonomy.cdm.io.descriptive.owl.in.OwlImportConfigurator;
import eu.etaxonomy.cdm.io.distribution.excelupdate.ExcelDistributionUpdateConfigurator;
import eu.etaxonomy.cdm.io.dwca.in.DwcaImportConfigurator;
import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator;
@@ -314,6 +315,8 @@ public class ImportManager extends AbstractIOManager implem
return DwcaImportConfigurator.NewInstance(null, null);
case Excel_Distribution:
return ExcelDistributionUpdateConfigurator.NewInstance(null, null, null);
+ case OWL:
+ return OwlImportConfigurator.NewInstance(null);
default:
MessagingUtils.notImplementedMessage(this);
@@ -404,6 +407,10 @@ public class ImportManager extends AbstractIOManager implem
return (DwcaImportConfigurator) getConfigurator(TYPE.Gbif);
}
+ public final OwlImportConfigurator OwlImportConfigurator() {
+ return (OwlImportConfigurator) getConfigurator(TYPE.OWL);
+ }
+
/**
* {@inheritDoc}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/owl/OpenOwlImportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/owl/OpenOwlImportWizard.java
new file mode 100644
index 000000000..5d8592715
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/owl/OpenOwlImportWizard.java
@@ -0,0 +1,27 @@
+/**
+* Copyright (C) 2017 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.io.e4.in.owl;
+
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractOpenImportWizard;
+
+/**
+ *
+ * @author pplitzner
+ * @since Apr 25, 2019
+ *
+ */
+public class OpenOwlImportWizard extends AbstractOpenImportWizard {
+
+ @Override
+ protected Class extends AbstractImportWizardE4> getImportWizardClass() {
+ return OwlImportWizard.class;
+ }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/owl/OwlImportConfiguratorWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/owl/OwlImportConfiguratorWizardPage.java
new file mode 100644
index 000000000..fc1ee08e1
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/owl/OwlImportConfiguratorWizardPage.java
@@ -0,0 +1,57 @@
+/**
+* Copyright (C) 2007 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.io.e4.in.owl;
+
+import javax.inject.Inject;
+
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.io.descriptive.owl.in.OwlImportConfigurator;
+
+/**
+ *
+ * @author pplitzner
+ * @since Apr 25, 2019
+ *
+ */
+public class OwlImportConfiguratorWizardPage extends WizardPage {
+
+ public static final String PAGE_NAME = "OwlImportConfiguratorWizardPage";
+
+ private OwlImportConfigurator configurator;
+
+ @Inject
+ public OwlImportConfiguratorWizardPage() {
+ super(PAGE_NAME);
+ setTitle("Configure import parameters");
+ setDescription("Tooltips will explain parameters in more detail");
+ }
+
+ @Override
+ public void createControl(Composite parent) {
+ final Composite composite = new Composite(parent, SWT.NULL);
+ GridLayout gridLayout = new GridLayout();
+ composite.setLayout(gridLayout);
+
+ setControl(composite);
+ }
+
+ public String createConfigString(){
+ return configurator.toString();
+ }
+
+ public void setConfigurator(OwlImportConfigurator configurator) {
+ this.configurator = configurator;
+ }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/owl/OwlImportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/owl/OwlImportWizard.java
new file mode 100644
index 000000000..b8e8c5e2d
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/owl/OwlImportWizard.java
@@ -0,0 +1,85 @@
+/**
+* Copyright (C) 2007 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.io.e4.in.owl;
+
+import java.io.File;
+import java.net.URI;
+
+import javax.inject.Inject;
+
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+
+import eu.etaxonomy.cdm.database.DbSchemaValidation;
+import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
+import eu.etaxonomy.cdm.io.descriptive.owl.in.OwlImportConfigurator;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.ImportFromFileDataSourceWizardPage;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ *
+ * @author pplitzner
+ * @since Apr 25, 2019
+ *
+ */
+public class OwlImportWizard extends AbstractImportWizardE4 {
+
+ private OwlImportConfigurator configurator;
+ private ImportFromFileDataSourceWizardPage dataSourcePage;
+
+ @Inject
+ public OwlImportWizard(IEclipseContext context, EPartService partService) {
+ super(context, partService);
+ }
+
+ @Override
+ public OwlImportConfigurator getConfigurator() {
+ return configurator;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public boolean performFinish() {
+ URI source = dataSourcePage.getUri();
+ configurator.setSource(source);
+ configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
+ Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
+ CdmStore.getImportManager().run(job);
+
+ return true;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void init() {
+ configurator = CdmStore.getImportManager().OwlImportConfigurator();
+ }
+
+ @Override
+ protected void addConfiguratorPage() {
+// OwlImportConfiguratorWizardPage configuratorWizardPage = ContextInjectionFactory.make(OwlImportConfiguratorWizardPage.class, context);//AbcdImportConfiguratorWizardPage.createPage(configurator);
+// configuratorWizardPage.setConfigurator(configurator);
+// addPage(configuratorWizardPage);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void addPages() {
+ dataSourcePage = ContextInjectionFactory.make(ImportFromFileDataSourceWizardPage.class, context);
+ dataSourcePage.setTitle("Choose File");
+ dataSourcePage.setDescription("Please choose an OWL file to import an ontology as a term tree.");
+ dataSourcePage.setExtensions(new String[]{"*.owl"});
+
+ addPage(dataSourcePage);
+ }
+}
--
2.34.1