From 20e9e644a612a04afcbb17769a7b112a13d6b028 Mon Sep 17 00:00:00 2001 From: "n.hoffmann" Date: Wed, 17 Jun 2009 15:56:45 +0000 Subject: [PATCH] finalizing preferred refactoring --- .gitattributes | 10 +- taxeditor-store/META-INF/MANIFEST.MF | 9 +- taxeditor-store/plugin.xml | 96 +++++++++++- .../wizard/CdmDataSourceH2WizardPage.java | 9 +- .../wizard/CdmDataSourceMySQLWizardPage.java | 7 +- .../CdmDataSourceSQLServerWizardPage.java | 114 ++++++++++++++ .../wizard/CdmDataSourceWizard.java | 2 + .../wizard/CdmDataSourceWizardPage.java | 5 +- .../io/AbstractExcelExportWizard.java | 44 ++++++ .../io/AbstractExcelImportWizard.java | 44 ++++++ .../taxeditor/io/JaxbExportWizard.java | 92 ++++++++++++ .../taxeditor/io/JaxbExportWizardPage.java | 141 ++++++++++++++++++ .../taxeditor/io/JaxbImportWizard.java | 44 ++++++ .../taxeditor/io/TcsExportWizard.java | 44 ++++++ .../taxeditor/io/TcsImportWizard.java | 44 ++++++ .../taxeditor/model/AbstractUtility.java | 13 ++ .../etaxonomy/taxeditor/model/ImagesUtil.java | 2 +- .../preference/AbstractMenuPreferences.java | 7 +- .../preference/FeatureMenuPreferences.java | 36 +++-- .../preference/wizards/FeatureWizard.java | 45 +++++- .../wizards/FeatureWizardNewPage.java | 41 ----- .../preference/wizards/FeatureWizardPage.java | 124 +++++++++++++++ .../etaxonomy/taxeditor/store/CdmStore.java | 38 ++++- 23 files changed, 937 insertions(+), 74 deletions(-) create mode 100644 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceSQLServerWizardPage.java create mode 100644 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelExportWizard.java create mode 100644 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelImportWizard.java create mode 100644 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizard.java create mode 100644 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizardPage.java create mode 100644 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbImportWizard.java create mode 100644 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/TcsExportWizard.java create mode 100644 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/TcsImportWizard.java delete mode 100644 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizardNewPage.java create mode 100644 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizardPage.java diff --git a/.gitattributes b/.gitattributes index 7feca1414..00e944603 100644 --- a/.gitattributes +++ b/.gitattributes @@ -956,6 +956,7 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/view/CdmDataSour taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceCredentialsWizardPage.java -text taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceH2WizardPage.java -text taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceMySQLWizardPage.java -text +taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceSQLServerWizardPage.java -text taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceWizard.java -text taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceWizardPage.java -text taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/FilteredCdmResourceSelectionDialog.java -text @@ -965,6 +966,13 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/SelectionDialogDeta taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/SelectionDialogSelectionLabelProvider.java -text taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/UriDialog.java -text taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowDataSourceViewHandler.java -text +taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelExportWizard.java -text +taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelImportWizard.java -text +taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizard.java -text +taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizardPage.java -text +taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbImportWizard.java -text +taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/TcsExportWizard.java -text +taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/TcsImportWizard.java -text taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractDataChangeBehaviour.java -text taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java -text taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/DataChangeBridge.java -text @@ -1021,7 +1029,7 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/RankMenuPreferen taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonomicPreferences.java -text taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizard.java -text taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizardEditPage.java -text -taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizardNewPage.java -text +taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizardPage.java -text taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java -text taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/StoreUtil.java -text taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/internal/TaxeditorStorePlugin.java -text diff --git a/taxeditor-store/META-INF/MANIFEST.MF b/taxeditor-store/META-INF/MANIFEST.MF index 2be1c7b83..0b282ba17 100644 --- a/taxeditor-store/META-INF/MANIFEST.MF +++ b/taxeditor-store/META-INF/MANIFEST.MF @@ -17,7 +17,14 @@ Export-Package: eu.etaxonomy.taxeditor.datasource, eu.etaxonomy.taxeditor.preference, eu.etaxonomy.taxeditor.store, eu.etaxonomy.taxeditor.store.internal -Require-Bundle: org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",org.eclipse.core.filesystem;bundle-version="1.2.0",org.eclipse.core.resources;bundle-version="3.4.1",eu.etaxonomy.cdmLibrary;bundle-version="2.1.0",org.eclipse.ui.editors;bundle-version="3.4.0",org.eclipse.jface.text;bundle-version="3.4.1" +Require-Bundle: org.eclipse.ui;bundle-version="[3.2.0,4.0.0)", + org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)", + org.eclipse.core.filesystem;bundle-version="1.2.0", + org.eclipse.core.resources;bundle-version="3.4.1", + eu.etaxonomy.cdmLibrary;bundle-version="2.1.0", + org.eclipse.ui.editors;bundle-version="3.4.0", + org.eclipse.jface.text;bundle-version="3.4.1", + org.eclipse.ui.ide;bundle-version="3.4.2" Bundle-RequiredExecutionEnvironment: J2SE-1.5 Import-Package: junit.framework,org.junit Bundle-ActivationPolicy: lazy diff --git a/taxeditor-store/plugin.xml b/taxeditor-store/plugin.xml index 37791504d..cad100671 100644 --- a/taxeditor-store/plugin.xml +++ b/taxeditor-store/plugin.xml @@ -22,7 +22,7 @@ @@ -97,6 +97,23 @@ style="push"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceH2WizardPage.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceH2WizardPage.java index 34f657769..183e3e871 100644 --- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceH2WizardPage.java +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceH2WizardPage.java @@ -51,11 +51,12 @@ public class CdmDataSourceH2WizardPage extends CdmDataSourceCredentialsWizardPag getWizard().getPassword() ); - if (dataSource.testConnection()) { + try{ + dataSource.testConnection(); MessageDialog.openConfirm(parent.getShell(), "Test successful", "Test successful"); - } else { - MessageDialog.openWarning(parent.getShell(), "Test unsuccessful", "Test unsuccessful"); - } + } catch(Exception e){ + MessageDialog.openWarning(parent.getShell(), "Test unsuccessful", "Test unsuccessful \n\n" + e.getCause()); + } } /* (non-Javadoc) diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceMySQLWizardPage.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceMySQLWizardPage.java index 1e70d2193..a50def93a 100644 --- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceMySQLWizardPage.java +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceMySQLWizardPage.java @@ -91,10 +91,11 @@ public class CdmDataSourceMySQLWizardPage extends CdmDataSourceCredentialsWizard getWizard().getUsername(), getWizard().getPassword() ); - if (dataSource.testConnection()) { + try{ + dataSource.testConnection(); MessageDialog.openConfirm(parent.getShell(), "Test successful", "Test successful"); - } else { - MessageDialog.openWarning(parent.getShell(), "Test unsuccessful", "Test unsuccessful"); + } catch(Exception e){ + MessageDialog.openWarning(parent.getShell(), "Test unsuccessful", "Test unsuccessful \n\n" + e.getCause()); } } diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceSQLServerWizardPage.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceSQLServerWizardPage.java new file mode 100644 index 000000000..f425d8863 --- /dev/null +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceSQLServerWizardPage.java @@ -0,0 +1,114 @@ +// $Id$ +/** +* 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.datasource.wizard; + +import org.apache.log4j.Logger; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Text; + +import eu.etaxonomy.cdm.database.CdmDataSource; +import eu.etaxonomy.cdm.database.DatabaseTypeEnum; +import eu.etaxonomy.cdm.database.ICdmDataSource; + +/** + * @author n.hoffmann + * @created 19.05.2009 + * @version 1.0 + */ +public class CdmDataSourceSQLServerWizardPage extends CdmDataSourceCredentialsWizardPage { + + + private static final Logger logger = Logger + .getLogger(CdmDataSourceSQLServerWizardPage.class); + + private Text portText; + private Text serverText; + + /** + * @param pageName + */ + protected CdmDataSourceSQLServerWizardPage(ICdmDataSource dataSource) { + super("SQL Server"); + setTitle("Enter credentials for SQL Server database"); + this.dataSource = dataSource; + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.store.datasource.CdmDataSourceCredentialsWizardPage#createDatabaseForm() + */ + @Override + public void createDatabaseForm() { + logger.warn("Creating"); + + // Create group composite for location data + locationGroup = new Group(composite, SWT.NONE); + locationGroup.setText("Location"); + locationGroup.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1)); + GridLayout locationLayout = new GridLayout(); + locationLayout.numColumns = 2; + locationGroup.setLayout(locationLayout); + + // Create host label + Label serverLabel = new Label(locationGroup, SWT.NONE); + serverLabel.setText("Host:"); + + // Create host input + serverText = new Text(locationGroup, SWT.BORDER); + serverText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); + serverText.addKeyListener(this); + + // Create port label + Label portLabel = new Label(locationGroup, SWT.NONE); + portLabel.setText("Port:"); + + // Create port input + portText = new Text(locationGroup, SWT.BORDER); + portText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); + + portText.addKeyListener(this); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.store.datasource.CdmDataSourceCredentialsWizardPage#testDbConfiguration() + */ + @Override + public void testDbConfiguration() { + ICdmDataSource dataSource = CdmDataSource.NewSqlServer2005Instance( + getWizard().getServer(), + getWizard().getDatabase(), + getWizard().getPort(), + getWizard().getUsername(), + getWizard().getPassword() + ); + try{ + dataSource.testConnection(); + MessageDialog.openConfirm(parent.getShell(), "Test successful", "Test successful!"); + } catch(Exception e){ + MessageDialog.openWarning(parent.getShell(), "Test unsuccessful", "Test unsuccessful! \n\nSee error.log for details."); + throw new RuntimeException(e); + } + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.store.datasource.CdmDataSourceCredentialsWizardPage#updateLocation() + */ + @Override + public void updateLocation() { + getWizard().setServer(serverText.getText()); + int port = new Integer(portText.getText()); + getWizard().setPort(port); + } +} diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceWizard.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceWizard.java index 7f5bf49ef..c0ad5e20e 100644 --- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceWizard.java +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceWizard.java @@ -92,6 +92,8 @@ public class CdmDataSourceWizard extends Wizard { dataSource = CdmDataSource.NewH2EmbeddedInstance(database, username, password); }else if(databaseType == DatabaseTypeEnum.MySQL){ dataSource = CdmDataSource.NewMySqlInstance(server, database, port, username, password); + }else if(databaseType == DatabaseTypeEnum.SqlServer2005){ + dataSource = CdmDataSource.NewSqlServer2005Instance(server, database, port, username, password); } CdmDataSourceRepository.getDefault().save(dataSource); diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceWizardPage.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceWizardPage.java index 144aa1914..766633b8f 100644 --- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceWizardPage.java +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceWizardPage.java @@ -124,7 +124,8 @@ public class CdmDataSourceWizardPage extends WizardPage implements KeyListener{ for (DatabaseTypeEnum type : DatabaseTypeEnum.getAllTypes()) { // FIXME right now we filter supported types if(type.equals(DatabaseTypeEnum.MySQL) - || type.equals(DatabaseTypeEnum.H2)){ + || type.equals(DatabaseTypeEnum.H2) + || type.equals(DatabaseTypeEnum.SqlServer2005)){ databaseTypeCombo.add(type.getName()); databaseTypes.add(type); } @@ -142,6 +143,8 @@ public class CdmDataSourceWizardPage extends WizardPage implements KeyListener{ wizardPage = new CdmDataSourceH2WizardPage(dataSource); }else if(type == DatabaseTypeEnum.MySQL){ wizardPage = new CdmDataSourceMySQLWizardPage(dataSource); + }else if(type == DatabaseTypeEnum.SqlServer2005){ + wizardPage = new CdmDataSourceSQLServerWizardPage(dataSource); } if(wizard.getPage(wizardPage.getName()) != null){ diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelExportWizard.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelExportWizard.java new file mode 100644 index 000000000..55c47921b --- /dev/null +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelExportWizard.java @@ -0,0 +1,44 @@ +// $Id$ +/** +* 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; + +import org.apache.log4j.Logger; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.ui.IExportWizard; +import org.eclipse.ui.IWorkbench; + +/** + * @author n.hoffmann + * @created 15.06.2009 + * @version 1.0 + */ +public class AbstractExcelExportWizard extends Wizard implements IExportWizard { + private static final Logger logger = Logger + .getLogger(AbstractExcelExportWizard.class); + + /* (non-Javadoc) + * @see org.eclipse.jface.wizard.Wizard#performFinish() + */ + @Override + public boolean performFinish() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection) + */ + public void init(IWorkbench workbench, IStructuredSelection selection) { + // TODO Auto-generated method stub + + } +} diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelImportWizard.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelImportWizard.java new file mode 100644 index 000000000..bae6c2485 --- /dev/null +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelImportWizard.java @@ -0,0 +1,44 @@ +// $Id$ +/** +* 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; + +import org.apache.log4j.Logger; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.ui.IImportWizard; +import org.eclipse.ui.IWorkbench; + +/** + * @author n.hoffmann + * @created 15.06.2009 + * @version 1.0 + */ +public class AbstractExcelImportWizard extends Wizard implements IImportWizard { + private static final Logger logger = Logger + .getLogger(AbstractExcelImportWizard.class); + + /* (non-Javadoc) + * @see org.eclipse.jface.wizard.Wizard#performFinish() + */ + @Override + public boolean performFinish() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection) + */ + public void init(IWorkbench workbench, IStructuredSelection selection) { + // TODO Auto-generated method stub + + } +} diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizard.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizard.java new file mode 100644 index 000000000..f4cb8814a --- /dev/null +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizard.java @@ -0,0 +1,92 @@ +// $Id$ +/** +* 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; + +import java.io.File; + +import org.apache.log4j.Logger; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.ui.IExportWizard; +import org.eclipse.ui.IWorkbench; + +import eu.etaxonomy.cdm.io.common.CdmDefaultExport; +import eu.etaxonomy.cdm.io.common.ICdmExport; +import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator; +import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository; + +/** + * @author n.hoffmann + * @created 15.06.2009 + * @version 1.0 + */ +public class JaxbExportWizard extends Wizard implements IExportWizard { + private static final Logger logger = Logger + .getLogger(JaxbExportWizard.class); + + public final String JAXB_EXPORT = "JAXB_EXPORT"; + + private ICdmExport export; + + private JaxbExportWizardPage page; + + private JaxbExportConfigurator exportConfigurator; + + /* (non-Javadoc) + * @see org.eclipse.jface.wizard.Wizard#performFinish() + */ + @Override + public boolean performFinish() { + + export = new CdmDefaultExport(); + + String url = page.getFolderText() + File.pathSeparator + page.getExportFileName(); + + exportConfigurator = JaxbExportConfigurator.NewInstance(CdmDataSourceRepository.getDefault().getCurrentDataSource(), url); + + + Job exportJob = new Job("JAXB Export"){ + @Override + protected IStatus run(IProgressMonitor monitor) { + return export.invoke(exportConfigurator) ? Status.OK_STATUS : Status.CANCEL_STATUS; + } + }; + + exportJob.schedule(); + + return true; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection) + */ + public void init(IWorkbench workbench, IStructuredSelection selection) { + } + + /* (non-Javadoc) + * @see org.eclipse.jface.wizard.Wizard#addPages() + */ + @Override + public void addPages() { + super.addPages(); + + page = new JaxbExportWizardPage(JAXB_EXPORT); + + addPage(page); + } + + + +} diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizardPage.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizardPage.java new file mode 100644 index 000000000..b35f352db --- /dev/null +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizardPage.java @@ -0,0 +1,141 @@ +// $Id$ +/** +* 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; + +import java.text.SimpleDateFormat; +import java.util.Calendar; + +import org.apache.log4j.Logger; +import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.MouseAdapter; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.DirectoryDialog; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Text; + +import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository; + +/** + * @author n.hoffmann + * @created 15.06.2009 + * @version 1.0 + */ +public class JaxbExportWizardPage extends WizardPage{ + + public static final String DATE_FORMAT_NOW = "yyyyMMdd-HHmm"; + + private static final Logger logger = Logger + .getLogger(JaxbExportWizardPage.class); + private DirectoryDialog folderDialog; + private Text exportFileName; + + private Text folderText; + + + /** + * @param pageName + * @param selection + */ + protected JaxbExportWizardPage(String pageName) { + super(pageName); + this.setTitle("JAXB Export"); + + this.setDescription("Exports the contents of the currently selected database into the cdm jaxb format."); + } + + + /* (non-Javadoc) + * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite) + */ + public void createControl(Composite parent) { + + setPageComplete(false); + + Composite composite = new Composite(parent, SWT.NONE); + GridLayout gridLayout = new GridLayout(); + gridLayout.numColumns = 3; + composite.setLayout(gridLayout); + + Label fileLabel = new Label(composite, SWT.NONE); + fileLabel.setText("File"); + + exportFileName = new Text(composite, SWT.NONE); + exportFileName.setText(generateFilename()); + exportFileName.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1)); + + + Label folderLabel = new Label(composite, SWT.NONE); + folderLabel.setText("Folder"); + + folderDialog = new DirectoryDialog(parent.getShell()); + + folderText = new Text(composite, SWT.NONE); + folderText.setEditable(false); + folderText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); + + + Button button = new Button(composite, SWT.PUSH); + button.setText("Browse..."); + + button.addMouseListener(new MouseAdapter(){ + + /* (non-Javadoc) + * @see org.eclipse.swt.events.MouseAdapter#mouseUp(org.eclipse.swt.events.MouseEvent) + */ + @Override + public void mouseUp(MouseEvent e) { + String path = folderDialog.open(); + folderText.setText(path); + setPageComplete(true); + } + + }); + + // make the composite the wizard pages control + setControl(composite); + } + + private String generateFilename(){ + StringBuffer buffer = new StringBuffer(); + buffer.append("jaxb_export_"); + buffer.append(CdmDataSourceRepository.getDefault().getCurrentDataSource()); + buffer.append("-"); + + Calendar cal = Calendar.getInstance(); + SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW); + buffer.append(sdf.format(cal.getTime())); + + buffer.append(".xml"); + + return buffer.toString(); + } + + + /** + * @return the exportFileName + */ + public Text getExportFileName() { + return exportFileName; + } + + + /** + * @return the folderText + */ + public Text getFolderText() { + return folderText; + } +} diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbImportWizard.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbImportWizard.java new file mode 100644 index 000000000..4d4441212 --- /dev/null +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbImportWizard.java @@ -0,0 +1,44 @@ +// $Id$ +/** +* 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; + +import org.apache.log4j.Logger; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.ui.IImportWizard; +import org.eclipse.ui.IWorkbench; + +/** + * @author n.hoffmann + * @created 15.06.2009 + * @version 1.0 + */ +public class JaxbImportWizard extends Wizard implements IImportWizard { + private static final Logger logger = Logger + .getLogger(JaxbImportWizard.class); + + /* (non-Javadoc) + * @see org.eclipse.jface.wizard.Wizard#performFinish() + */ + @Override + public boolean performFinish() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection) + */ + public void init(IWorkbench workbench, IStructuredSelection selection) { + // TODO Auto-generated method stub + + } +} diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/TcsExportWizard.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/TcsExportWizard.java new file mode 100644 index 000000000..6032458c8 --- /dev/null +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/TcsExportWizard.java @@ -0,0 +1,44 @@ +// $Id$ +/** +* 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; + +import org.apache.log4j.Logger; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.ui.IExportWizard; +import org.eclipse.ui.IWorkbench; + +/** + * @author n.hoffmann + * @created 15.06.2009 + * @version 1.0 + */ +public class TcsExportWizard extends Wizard implements IExportWizard { + private static final Logger logger = Logger + .getLogger(TcsExportWizard.class); + + /* (non-Javadoc) + * @see org.eclipse.jface.wizard.Wizard#performFinish() + */ + @Override + public boolean performFinish() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection) + */ + public void init(IWorkbench workbench, IStructuredSelection selection) { + // TODO Auto-generated method stub + + } +} diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/TcsImportWizard.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/TcsImportWizard.java new file mode 100644 index 000000000..7288b42cb --- /dev/null +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/TcsImportWizard.java @@ -0,0 +1,44 @@ +// $Id$ +/** +* 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; + +import org.apache.log4j.Logger; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.ui.IImportWizard; +import org.eclipse.ui.IWorkbench; + +/** + * @author n.hoffmann + * @created 15.06.2009 + * @version 1.0 + */ +public class TcsImportWizard extends Wizard implements IImportWizard{ + private static final Logger logger = Logger.getLogger(TcsImportWizard.class); + + /* (non-Javadoc) + * @see org.eclipse.jface.wizard.Wizard#performFinish() + */ + @Override + public boolean performFinish() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection) + */ + public void init(IWorkbench workbench, IStructuredSelection selection) { + // TODO Auto-generated method stub + + } + +} diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java index 9ecd389b6..467cc4e06 100644 --- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java @@ -12,11 +12,14 @@ package eu.etaxonomy.taxeditor.model; import org.eclipse.jface.resource.ColorRegistry; import org.eclipse.jface.resource.FontRegistry; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.MessageBox; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.themes.ITheme; import org.eclipse.ui.themes.IThemeManager; +import eu.etaxonomy.taxeditor.store.StoreUtil; import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin; /** @@ -68,4 +71,14 @@ public abstract class AbstractUtility { return getCurrentTheme().getColorRegistry(); } + /** + * Open a message box that informs the user about unimplemented functionality. + * This method is for developer convenience. + */ + public static void notImplementedMessage(){ + MessageBox messageBox = new MessageBox(getShell(), SWT.ICON_WARNING | SWT.OK); + messageBox.setText("Not yet implemented"); + messageBox.open(); + } + } diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ImagesUtil.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ImagesUtil.java index dffc0dcc3..33a404e90 100644 --- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ImagesUtil.java +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ImagesUtil.java @@ -40,7 +40,7 @@ public class ImagesUtil { Feature feature = element.getFeature(); if(feature.equals(Feature.IMAGE())){ - Set medias = element.getMedia(); + List medias = element.getMedia(); for(Media media : medias){ Set representations = media.getRepresentations(); diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/AbstractMenuPreferences.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/AbstractMenuPreferences.java index 60d30a1a4..1fc4a53e1 100644 --- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/AbstractMenuPreferences.java +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/AbstractMenuPreferences.java @@ -38,7 +38,7 @@ import eu.etaxonomy.cdm.model.common.DefinedTermBase; * @created 12.06.2009 * @version 1.0 */ -public abstract class AbstractMenuPreferences extends PreferencePage { +public abstract class AbstractMenuPreferences extends PreferencePage{ private Button toggleButton; protected HashMap menuButtons; @@ -47,7 +47,7 @@ public abstract class AbstractMenuPreferences extends PreferencePage { private List preferedTerms; - private CheckboxTableViewer tableViewer; + protected CheckboxTableViewer tableViewer; private boolean state = true; @@ -181,5 +181,6 @@ public abstract class AbstractMenuPreferences extends PreferencePage { */ public CheckboxTableViewer getTableViewer() { return tableViewer; - }; + } + } \ No newline at end of file diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/FeatureMenuPreferences.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/FeatureMenuPreferences.java index 821625bfb..899a1128b 100644 --- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/FeatureMenuPreferences.java +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/FeatureMenuPreferences.java @@ -11,15 +11,17 @@ package eu.etaxonomy.taxeditor.preference; import java.util.ArrayList; import java.util.List; +import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.events.MouseAdapter; import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.MessageBox; import org.eclipse.ui.IWorkbenchPreferencePage; import eu.etaxonomy.cdm.model.description.Feature; +import eu.etaxonomy.taxeditor.preference.wizards.FeatureWizard; import eu.etaxonomy.taxeditor.store.CdmStore; import eu.etaxonomy.taxeditor.store.StoreUtil; @@ -63,6 +65,7 @@ public class FeatureMenuPreferences extends AbstractMenuPreferences implements protected void createButtons(Composite buttonContainer) { newButton = new Button(buttonContainer, SWT.PUSH); newButton.setText("New"); + newButton.setLayoutData(new GridData(SWT.FILL)); newButton.addMouseListener(new MouseAdapter(){ /* (non-Javadoc) @@ -71,13 +74,19 @@ public class FeatureMenuPreferences extends AbstractMenuPreferences implements @Override public void mouseUp(MouseEvent e) { super.mouseUp(e); - notImplemented(); + FeatureWizard wizard = new FeatureWizard(); + + WizardDialog dialog = new WizardDialog(StoreUtil.getShell(), wizard); + dialog.open(); + + tableViewer.setInput(CdmStore.getFeatures()); } }); editButton = new Button(buttonContainer, SWT.PUSH); editButton.setText("Edit"); + editButton.setLayoutData(new GridData(SWT.FILL)); editButton.addMouseListener(new MouseAdapter(){ /* (non-Javadoc) @@ -86,13 +95,25 @@ public class FeatureMenuPreferences extends AbstractMenuPreferences implements @Override public void mouseUp(MouseEvent e) { super.mouseUp(e); - notImplemented(); + + StoreUtil.notImplementedMessage(); + + // editing a feature is somewhat more complicated, because basically one can only edit the representation. +// Feature feature = (Feature) ((StructuredSelection) tableViewer.getSelection()).getFirstElement(); +// +// FeatureWizard wizard = new FeatureWizard(feature); +// +// WizardDialog dialog = new WizardDialog(StoreUtil.getShell(), wizard); +// dialog.open(); +// +// tableViewer.setInput(CdmStore.getFeatures()); } }); removeButton = new Button(buttonContainer, SWT.PUSH); removeButton.setText("Remove"); + removeButton.setLayoutData(new GridData(SWT.FILL)); removeButton.addMouseListener(new MouseAdapter(){ /* (non-Javadoc) @@ -101,16 +122,9 @@ public class FeatureMenuPreferences extends AbstractMenuPreferences implements @Override public void mouseUp(MouseEvent e) { super.mouseUp(e); - notImplemented(); + StoreUtil.notImplementedMessage(); } }); } - - private void notImplemented(){ - MessageBox messageBox = new MessageBox(StoreUtil.getShell(), SWT.ICON_WARNING | SWT.OK); - messageBox.setText("Not yet implemented"); - messageBox.open(); - } - } diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizard.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizard.java index d3b85d702..2f38892db 100644 --- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizard.java +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizard.java @@ -13,7 +13,9 @@ package eu.etaxonomy.taxeditor.preference.wizards; import org.apache.log4j.Logger; import org.eclipse.jface.wizard.Wizard; +import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.model.description.Feature; +import eu.etaxonomy.taxeditor.store.CdmStore; /** * @author n.hoffmann @@ -23,7 +25,9 @@ import eu.etaxonomy.cdm.model.description.Feature; public class FeatureWizard extends Wizard { private static final Logger logger = Logger.getLogger(FeatureWizard.class); - private Feature selectedFeature = null; + private Feature feature = null; + + private boolean editMode = false; /** * @@ -35,7 +39,8 @@ public class FeatureWizard extends Wizard { * @param selectedFeature */ public FeatureWizard(Feature selectedFeature){ - this.selectedFeature = selectedFeature; + this.feature = selectedFeature; + editMode = true; } /* (non-Javadoc) @@ -45,7 +50,7 @@ public class FeatureWizard extends Wizard { public void addPages() { super.addPages(); - addPage(selectedFeature == null ? new FeatureWizardNewPage() : new FeatureWizardEditPage(selectedFeature)); + addPage(new FeatureWizardPage()); } /* (non-Javadoc) @@ -53,11 +58,41 @@ public class FeatureWizard extends Wizard { */ @Override public boolean performFinish() { - // TODO Auto-generated method stub - return false; + + ConversationHolder conversation = CdmStore.NewTransactionalConversation(); + + if(editMode){ + CdmStore.updateFeature(feature); + }else{ + CdmStore.saveFeature(feature); + } + + conversation.commit(true); + + return true; } + /** + * @param text + * @param text2 + * @param text3 + */ + public void setFeature(String term, String label, String labelAbbreviation) { + feature = Feature.NewInstance(term, label, labelAbbreviation); + } + /** + * @return the feature + */ + public Feature getFeature() { + return feature; + } + /** + * @return the editMode + */ + public boolean isEditMode() { + return editMode; + } } diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizardNewPage.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizardNewPage.java deleted file mode 100644 index f1a645e36..000000000 --- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizardNewPage.java +++ /dev/null @@ -1,41 +0,0 @@ -// $Id$ -/** -* 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.preference.wizards; - -import org.apache.log4j.Logger; -import org.eclipse.jface.wizard.WizardPage; -import org.eclipse.swt.widgets.Composite; - -/** - * @author n.hoffmann - * @created 12.06.2009 - * @version 1.0 - */ -public class FeatureWizardNewPage extends WizardPage { - - /** - * - */ - public FeatureWizardNewPage() { - super("Create new Feature"); - } - - private static final Logger logger = Logger - .getLogger(FeatureWizardNewPage.class); - - /* (non-Javadoc) - * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite) - */ - public void createControl(Composite parent) { - // TODO Auto-generated method stub - - } -} diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizardPage.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizardPage.java new file mode 100644 index 000000000..8212f7e09 --- /dev/null +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizardPage.java @@ -0,0 +1,124 @@ +// $Id$ +/** +* 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.preference.wizards; + +import org.apache.log4j.Logger; +import org.eclipse.jface.wizard.IWizard; +import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.CLabel; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Text; + +import eu.etaxonomy.cdm.model.description.Feature; + +/** + * @author n.hoffmann + * @created 12.06.2009 + * @version 1.0 + */ +public class FeatureWizardPage extends WizardPage implements ModifyListener { + + private Text text_label; + private Text text_labelAbbreviation; + private Text text_description; + + + + /** + * + */ + public FeatureWizardPage() { + super("FEATURE_WIZARD_PAGE"); + } + + private static final Logger logger = Logger + .getLogger(FeatureWizardPage.class); + + /* (non-Javadoc) + * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite) + */ + public void createControl(Composite parent) { + String title = getWizard().isEditMode() ? "Edit Feature" : "Create new Feature"; + this.setTitle(title); + + Composite composite = new Composite(parent, SWT.NULL); + GridLayout gridLayout = new GridLayout(); + gridLayout.numColumns = 2; + gridLayout.horizontalSpacing = SWT.FILL; + gridLayout.verticalSpacing = SWT.FILL; + composite.setLayout(gridLayout); + + // label + CLabel label_label = new CLabel(composite, SWT.NULL); + label_label.setText("Label"); + + text_label = new Text(composite, SWT.BORDER); + text_label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); + text_label.addModifyListener(this); + + // label abbreviation + CLabel label_labelAbbreviation = new CLabel(composite, SWT.NULL); + label_labelAbbreviation.setText("Label Abbreviation"); + + text_labelAbbreviation = new Text(composite, SWT.BORDER); + text_labelAbbreviation.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); + text_labelAbbreviation.addModifyListener(this); + + // descriptive text + CLabel label_description = new CLabel(composite, SWT.NULL); + label_description.setText("Description"); + label_description.setLayoutData(new GridData(SWT.TOP)); + + text_description = new Text(composite, SWT.BORDER | SWT.MULTI); + text_description.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); + text_description.addModifyListener(this); + + setControl(composite); + + if(getWizard().getFeature() != null){ + Feature feature = getWizard().getFeature(); + text_label.setText(feature.getLabel()); + // why can't we access labelAbbreviation +// text_labelAbbreviation.setText(feature.get) + // why can't we access the term string? +// text_description.setText(feature.getT) + } + } + + + /* (non-Javadoc) + * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent) + */ + public void modifyText(ModifyEvent e) { + if(text_description.getText().length() > 0 && + text_labelAbbreviation.getText().length() > 0 && + text_label.getText().length() > 0 ){ + setPageComplete(true); + ((FeatureWizard) getWizard()).setFeature(text_description.getText(), text_label.getText(), text_labelAbbreviation.getText()); + } + } + + + /* (non-Javadoc) + * @see org.eclipse.jface.wizard.WizardPage#getWizard() + */ + @Override + public FeatureWizard getWizard() { + return (FeatureWizard) super.getWizard(); + } + + +} diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java index 426b3d940..6fb1108e0 100644 --- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java @@ -17,6 +17,7 @@ import java.util.SortedSet; import java.util.UUID; import org.apache.log4j.Logger; +import org.springframework.security.providers.ProviderManager; import eu.etaxonomy.cdm.api.application.CdmApplicationController; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; @@ -30,7 +31,6 @@ import eu.etaxonomy.cdm.api.service.config.impl.TaxonServiceConfiguratorImpl; import eu.etaxonomy.cdm.database.DbSchemaValidation; import eu.etaxonomy.cdm.database.ICdmDataSource; import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; -import eu.etaxonomy.cdm.model.common.CdmBase; import eu.etaxonomy.cdm.model.common.IdentifiableEntity; import eu.etaxonomy.cdm.model.common.Language; import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary; @@ -49,9 +49,9 @@ import eu.etaxonomy.cdm.model.reference.Generic; import eu.etaxonomy.cdm.model.reference.ReferenceBase; import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType; +import eu.etaxonomy.cdm.model.taxon.TaxonomicTree; import eu.etaxonomy.cdm.persistence.query.MatchMode; import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository; -import eu.etaxonomy.taxeditor.preference.PreferencesUtil; /** * This implementation of ICdmDataRepository depends on hibernate sessions to store the data correctly @@ -184,6 +184,13 @@ public class CdmStore{ return applicationController.getTaxonService().getRootTaxa( getDefaultSec(), onlyWithChildren, withMisapplications); } + + /** + * @return + */ + public List getTaxonomicTrees() { + return applicationController.getTaxonService().getAllTaxonomicTrees(10000, 0); + } public OrderedTermVocabulary getTaxonRelationshipTypes() { TermVocabulary vocabulary = HibernateProxyHelper.deproxy @@ -266,6 +273,11 @@ public class CdmStore{ public static ILocationService getLocationService(){ return getDefault().getApplicationController().getLocationService(); } + + public static ProviderManager getAuthenticationManager() { + return getDefault().getApplicationController().getAuthenticationManager(); + } + /** * @param searchText @@ -377,4 +389,26 @@ public class CdmStore{ return nomReferenceTypeMap; } + + /** + * @param feature + */ + public static void saveFeature(Feature feature) { + TermVocabulary vocabulary = getDefault().getFeaturesInternal(); + + vocabulary.addTerm(feature); + + getDefault().getApplicationController().getTermService().saveTermVocabulary(vocabulary); + } + + /** + * TODO make this more generic + * + * @param feature + */ + public static void updateFeature(Feature feature) { + TermVocabulary vocabulary = getDefault().getFeaturesInternal(); + + getDefault().getApplicationController().getTermService().saveTermVocabulary(vocabulary); + } } -- 2.34.1