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/AbstractExportWizard.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractImportWizard.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/BerlinModelExportWizard.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/BerlinModelExportWizardPage.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/BerlinModelImportWizard.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/GenericConfiguratorWizardPage.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportDestinationWizardPage.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/JaxbImportSourceWizardPage.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/ImageResources.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ImagesUtil.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/IterableSynonymyList.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/LanguageUtil.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/NameUtil.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ReferenceUtil.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/Resources.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/SynonymUtil.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonTransfer.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/AbstractMenuPreferences.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferences.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/DescriptionPreferences.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/DistributionStatusMenuPreferences.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/FeatureMenuPreferences.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/InitNomenclaturalCodePrefDialog.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/InitializeDbPreferences.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/NameRelationshipTypeMenuPreferences.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/NomenclaturalCodePreferences.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/NomenclaturalStatusTypeMenuPreferences.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/RankMenuPreferences.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonomicPreferences.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/VocabularyStore.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/internal/TaxeditorStorePlugin.java -text
taxeditor-store/src/main/resources/eu/etaxonomy/cdm/defaultApplicationContext.xml -text
taxeditor-store/src/main/resources/log4j.properties -text
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"
+ org.eclipse.ui.ide;bundle-version="3.4.2",
+ org.eclipse.debug.core;bundle-version="3.4.1",
+ org.eclipse.jdt.launching;bundle-version="3.4.1",
+ org.eclipse.jdt.core;bundle-version="3.4.4"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Import-Package: junit.framework,org.junit
Bundle-ActivationPolicy: lazy
category="eu.etaxonomy.taxeditor.preferences.description"
class="eu.etaxonomy.taxeditor.preference.FeatureMenuPreferences"
id="eu.etaxonomy.taxeditor.preferences.feature"
- name="Preferred Features">
+ name="Features">
</page>
<page
category="eu.etaxonomy.taxeditor.preferences.taxonomic"
class="eu.etaxonomy.taxeditor.preference.RankMenuPreferences"
id="eu.etaxonomy.taxeditor.preferences.ranks"
- name="Preferred Ranks">
+ name="Ranks">
+ </page>
+ <page
+ category="eu.etaxonomy.taxeditor.preferences.description"
+ class="eu.etaxonomy.taxeditor.preference.DistributionStatusMenuPreferences"
+ id="eu.etaxonomy.taxeditor.preferences.distributionStatus"
+ name="Distribution States">
+ </page>
+ <page
+ category="eu.etaxonomy.taxeditor.preferences.taxonomic"
+ class="eu.etaxonomy.taxeditor.preference.NomenclaturalStatusTypeMenuPreferences"
+ id="eu.etaxonomy.taxeditor.preferences.nomenclaturalStatusType"
+ name="Nomenclatural Status Type">
+ </page>
+ <page
+ category="eu.etaxonomy.taxeditor.preferences.taxonomic"
+ class="eu.etaxonomy.taxeditor.preference.NameRelationshipTypeMenuPreferences"
+ id="eu.etaxonomy.taxeditor.preferences.nameRelationshipType"
+ name="Name Relationship Type">
</page>
<page
class="eu.etaxonomy.taxeditor.preference.TaxonomicPreferences"
id="eu.etaxonomy.taxeditor.import.category.excel"
name="Excel">
</category>
+ <wizard
+ category="eu.etaxonomy.taxeditor.import.category.cdm"
+ class="eu.etaxonomy.taxeditor.io.BerlinModelImportWizard"
+ id="eu.etaxonomy.taxeditor.io.import.berlinModel"
+ name="Berlin Model">
+ </wizard>
</extension>
<extension
point="org.eclipse.ui.exportWizards">
class="org.eclipse.ui.ExtensionFactory:progressView"
id="org.eclipse.ui.views.ProgressView">
</view>
- </extension>
+ </extension>
+ <extension
+ point="org.eclipse.debug.core.launchConfigurationTypes">
+ <launchConfigurationType
+ id="eu.etaxonomy.taxeditor.newInstance"
+ name="NewInstance">
+ </launchConfigurationType>
+ </extension>
</plugin>
private CdmDataSourceCredentialsWizardPage credentialsWizardPage;
- protected CdmDataSourceTypeSelectionWizardPage(ICdmDataSource dataSource) {
+ public CdmDataSourceTypeSelectionWizardPage(ICdmDataSource dataSource) {
super("DataSourceWizardPage");
this.dataSource = dataSource;
import eu.etaxonomy.cdm.io.common.CdmDefaultExport;
import eu.etaxonomy.cdm.io.common.IExportConfigurator;
+import eu.etaxonomy.cdm.io.common.IIoConfigurator;
/**
* @author n.hoffmann
* @created 24.06.2009
* @version 1.0
*/
-public abstract class AbstractExportWizard extends Wizard implements IExportWizard{
+public abstract class AbstractExportWizard<CONFIG extends IIoConfigurator> extends Wizard implements IExportWizard{
private static final Logger logger = Logger
.getLogger(AbstractExportWizard.class);
+ protected final String CONFIGURATION_PAGE = "CONFIGURATION_PAGE";
+
+ private GenericConfiguratorWizardPage pageConfiguration;
+
private CdmDefaultExport export;
- public boolean export(final IExportConfigurator configurator){
+ public boolean doExport(final IExportConfigurator configurator){
export = new CdmDefaultExport();
Job exportJob = new Job("Export"){
return true;
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.Wizard#addPages()
+ */
+ @Override
+ public void addPages() {
+ super.addPages();
+
+ pageConfiguration = new GenericConfiguratorWizardPage(CONFIGURATION_PAGE, getConfigurator());
+ this.addPage(pageConfiguration);
+ }
+
+ public abstract CONFIG getConfigurator();
}
--- /dev/null
+// $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.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+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.debug.core.DebugPlugin;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationType;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
+import org.eclipse.jdt.launching.IVMInstall;
+import org.eclipse.jdt.launching.IVMInstallType;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.IImportWizard;
+
+import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
+import eu.etaxonomy.cdm.io.common.IImportConfigurator;
+import eu.etaxonomy.cdm.io.common.IIoConfigurator;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+
+/**
+ * @author n.hoffmann
+ * @created 24.06.2009
+ * @version 1.0
+ */
+public abstract class AbstractImportWizard<CONFIG extends IIoConfigurator> extends Wizard implements IImportWizard, IJavaLaunchConfigurationConstants{
+ private static final Logger logger = Logger
+ .getLogger(AbstractImportWizard.class);
+
+ protected final String CONFIGURATION_PAGE = "CONFIGURATION_PAGE";
+
+ private GenericConfiguratorWizardPage pageConfiguration;
+
+ private CdmDefaultImport<IImportConfigurator> importer;
+
+ /**
+ * Performs an import into a new database. The application context has to be changed
+ * @param configurator
+ * @return
+ */
+ public boolean doImportExternal(IImportConfigurator configurator){
+
+
+// try {
+// ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
+// ILaunchConfigurationType type = manager.getLaunchConfigurationType(ID_JAVA_APPLICATION);
+// ILaunchConfiguration[] configurations = manager.getLaunchConfigurations(type);
+//
+// // delete possible prior launch configurations
+// for (ILaunchConfiguration configuration : configurations) {
+// if (configuration.getName().equals("NewInstance")) {
+// configuration.delete();
+// break;
+// }
+// }
+//
+// ILaunchConfigurationWorkingCopy workingCopy = type.newInstance(null, "NewInstance");
+//
+// workingCopy.setAttribute(ATTR_MAIN_TYPE_NAME, "eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin");
+//
+//
+// workingCopy.setAttribute(ATTR_VM_INSTALL_NAME, JavaRuntime.getDefaultVMInstall().getName());
+// workingCopy.setAttribute(ATTR_VM_INSTALL_TYPE, JavaRuntime.getDefaultVMInstall().getVMInstallType().getId());
+//
+//
+// workingCopy.launch(ILaunchManager.RUN_MODE, null);
+
+
+// IVMInstall vm = JavaRuntime.getDefaultVMInstall();//VMInstall(proj);
+// if (vm == null) vm = JavaRuntime.getDefaultVMInstall();
+// IVMRunner vmr = vm.getVMRunner(ILaunchManager.RUN_MODE);
+// String[] cp = JavaRuntime.computeDefaultRuntimeClassPath(proj);
+// VMRunnerConfiguration config = new VMRunnerConfiguration(main, cp);
+// ILaunch launch = new Launch(null,
+// ILaunchManager.RUN_MODE, null);
+// vmr.run(config, launch, null);
+
+// IVMInstallType[] types = JavaRuntime.getVMInstallTypes();
+//
+// IVMInstall install = null;
+// for(IVMInstallType type : types){
+// install = type.createVMInstall(type.getId());
+// break;
+// }
+//
+//
+// IPath path = JavaRuntime.newJREContainerPath(install);
+// String jrePath = path.toPortableString();
+
+
+//
+// ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
+// ILaunchConfigurationType type = manager.getLaunchConfigurationType(ID_JAVA_APPLICATION);
+// ILaunchConfigurationWorkingCopy wc = type.newInstance(null, "NewInstance");
+// wc.setAttribute(ATTR_JRE_CONTAINER_PATH, jrePath);
+// wc.setAttribute(ATTR_MAIN_TYPE_NAME, "eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin");
+// ILaunchConfiguration config = wc.doSave();
+// config.launch(ILaunchManager.RUN_MODE, null);
+//
+//
+// Process p = Runtime.getRuntime().exec(cmdarray);
+//
+//
+// } catch (CoreException e) {
+// logger.error("Error launching import", e);
+// }
+
+ StoreUtil.notImplementedMessage();
+
+ return true;
+ }
+
+ /**
+ * Use when importing data into the current application context
+ *
+ * @param configurator
+ * @return
+ */
+ public boolean doImportInternal(final IImportConfigurator configurator){
+ importer = new CdmDefaultImport();
+
+ Job importJob = new Job("Import"){
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ return importer.invoke(configurator) ? Status.OK_STATUS : Status.CANCEL_STATUS;
+ }
+ };
+
+ importJob.schedule();
+
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.Wizard#addPages()
+ */
+ @Override
+ public void addPages() {
+ super.addPages();
+
+ pageConfiguration = new GenericConfiguratorWizardPage(CONFIGURATION_PAGE, getConfigurator());
+ this.addPage(pageConfiguration);
+ }
+
+ public abstract CONFIG getConfigurator();
+}
import eu.etaxonomy.cdm.database.ICdmDataSource;
import eu.etaxonomy.cdm.io.berlinModel.out.BerlinModelExportConfigurator;
import eu.etaxonomy.cdm.io.common.Source;
-import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
import eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceSQLServerWizardPage;
import eu.etaxonomy.taxeditor.store.CdmStore;
* @created 23.06.2009
* @version 1.0
*/
-public class BerlinModelExportWizard extends AbstractExportWizard {
+public class BerlinModelExportWizard extends AbstractExportWizard<BerlinModelExportConfigurator> {
private static final Logger logger = Logger
.getLogger(BerlinModelExportWizard.class);
- private CdmDataSourceSQLServerWizardPage page;
+ private CdmDataSourceSQLServerWizardPage pageDataSource;
+ private BerlinModelExportConfigurator configurator;
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ this.setWindowTitle("Berlin Model Export");
+ configurator = BerlinModelExportConfigurator.NewInstance(null, null);
+ }
+
/* (non-Javadoc)
* @see org.eclipse.jface.wizard.Wizard#addPages()
*/
public void addPages() {
super.addPages();
- page = new CdmDataSourceSQLServerWizardPage(null);
- this.addPage(page);
+ pageDataSource = new CdmDataSourceSQLServerWizardPage(null);
+ this.addPage(pageDataSource);
+
+
}
@Override
public boolean performFinish() {
- ICdmDataSource dataSource = page.getDataSource();
+ ICdmDataSource dataSource = pageDataSource.getDataSource();
// FIXME use new constructor Source(ICdmDataSource)
- Source source = new Source(Source.SQL_SERVER_2005,
+ Source destination = new Source(Source.SQL_SERVER_2005,
dataSource.getServer(),
dataSource.getDatabase(),
dataSource.getPort());
- source.setUserAndPwd(dataSource.getUsername(), dataSource.getPassword());
+ destination.setUserAndPwd(dataSource.getUsername(), dataSource.getPassword());
- BerlinModelExportConfigurator configurator = BerlinModelExportConfigurator.NewInstance(source, CdmDataSourceRepository.getDefault().getCurrentDataSource());
+ configurator.setDestination(destination);
configurator.setCdmAppController(CdmStore.getApplicationController());
- return export(configurator);
+
+ return doExport(configurator);
}
/* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
+ * @see eu.etaxonomy.taxeditor.io.AbstractExportWizard#getConfigurator()
*/
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- this.setWindowTitle("Berlin Model Export");
+ @Override
+ public BerlinModelExportConfigurator getConfigurator() {
+ return configurator;
}
}
--- /dev/null
+// $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.ui.IWorkbench;
+
+import eu.etaxonomy.cdm.database.ICdmDataSource;
+import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator;
+import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
+import eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceTypeSelectionWizardPage;
+
+/**
+ * @author n.hoffmann
+ * @created 24.06.2009
+ * @version 1.0
+ */
+public class BerlinModelImportWizard extends AbstractImportWizard<BerlinModelImportConfigurator> {
+ private static final Logger logger = Logger
+ .getLogger(BerlinModelImportWizard.class);
+
+ CdmDataSourceTypeSelectionWizardPage dataSourceSelectionPage;
+
+ BerlinModelImportConfigurator configurator;
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ configurator = BerlinModelImportConfigurator.NewInstance(null, null);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.Wizard#performFinish()
+ */
+ @Override
+ public boolean performFinish() {
+
+ ICdmDataSource dataSource;
+ String dataSourceName = dataSourceSelectionPage.getDataSourceName();
+ if(dataSourceSelectionPage.getCredentialsWizardPage() != null){
+ dataSource = dataSourceSelectionPage.getCredentialsWizardPage().getDataSource();
+ }else{
+ throw new IllegalStateException("Expected a datasource credentials page to exist");
+ }
+
+ // save the new dataSource to repository
+ CdmDataSourceRepository.getDefault().save(dataSourceName, dataSource);
+
+ configurator.setDestination(dataSource);
+
+ return doImportExternal(configurator);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.io.AbstractImportWizard#getConfigurator()
+ */
+ @Override
+ public BerlinModelImportConfigurator getConfigurator() {
+ return configurator;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.io.AbstractImportWizard#addPages()
+ */
+ @Override
+ public void addPages() {
+ super.addPages();
+
+ dataSourceSelectionPage = new CdmDataSourceTypeSelectionWizardPage(null);
+ addPage(dataSourceSelectionPage);
+ }
+}
--- /dev/null
+// $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.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.io.common.IIoConfigurator;
+
+/**
+ * @author n.hoffmann
+ * @created 23.06.2009
+ * @version 1.0
+ */
+public class GenericConfiguratorWizardPage extends WizardPage {
+
+
+ private static final Logger logger = Logger
+ .getLogger(GenericConfiguratorWizardPage.class);
+
+ private IIoConfigurator configurator;
+
+ /**
+ * @param pageName
+ * @param configurator
+ */
+ protected GenericConfiguratorWizardPage(String pageName, IIoConfigurator configurator) {
+ super(pageName);
+ this.setTitle("Export Configuration");
+
+ this.setDescription("Configure the export mechanism.");
+
+ this.configurator = configurator;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ public void createControl(Composite parent) {
+
+ Composite composite = new Composite(parent, SWT.NULL);
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 2;
+ composite.setLayout(gridLayout);
+
+ List<Method> methods = getConfiguratorsBooleanSetMethods(configurator);
+
+ for(Method method : methods){
+ createCheckbox(composite, method, configurator);
+ }
+
+ setControl(composite);
+ }
+
+ private void createCheckbox(Composite parent, Method method, final IIoConfigurator configurator){
+
+ String methodName = method.getName();
+
+ final String methodNameValue = methodName.substring(3);
+
+ CLabel label = new CLabel(parent, SWT.NULL);
+ label.setText(methodNameValue);
+
+ final Button checkBox = new Button(parent, SWT.CHECK);
+ checkBox.setSelection(executeBooleanGetMethod(configurator,"is" + methodNameValue));
+ checkBox.addSelectionListener(new SelectionAdapter(){
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ executeBooleanSetMethod(configurator, "set" + methodNameValue, checkBox.getSelection());
+ }
+
+ });
+
+ }
+
+
+ private boolean executeBooleanGetMethod(IIoConfigurator configurator, String methodName){
+
+ Class<? extends IIoConfigurator> configuratorClass = configurator.getClass();
+
+ boolean result = false;
+
+ Method[] methods = configuratorClass.getMethods();
+
+ for(Method method : methods){
+ if(!method.getName().equals(methodName)){
+ continue;
+ }
+
+ try {
+ Object returnType = method.invoke(configurator, null);
+ if(returnType.getClass().equals(Boolean.class)){
+ result = ((Boolean) returnType).booleanValue();
+ }
+
+ break;
+ } catch (Exception e) {
+ logger.warn("Could not invoke method");
+ }
+ }
+
+
+ return result;
+ }
+
+ private void executeBooleanSetMethod(IIoConfigurator configurator, String methodName, boolean selected){
+
+ Class<? extends IIoConfigurator> configuratorClass = configurator.getClass();
+
+
+ Method[] methods = configuratorClass.getMethods();
+
+ for(Method method : methods){
+ if(!method.getName().equals(methodName)){
+ continue;
+ }
+
+ try {
+ method.invoke(configurator, selected);
+
+ break;
+ } catch (Exception e) {
+ logger.warn("Could not invoke method");
+ }
+ }
+ }
+
+ private List<Method> getConfiguratorsBooleanSetMethods(IIoConfigurator configurator){
+ List<Method> booleanMethods = new ArrayList<Method>();
+
+ Class<? extends IIoConfigurator> configuratorClass = configurator.getClass();
+
+ Method[] allMethods = configuratorClass.getMethods();
+
+ for(Method method : allMethods){
+ if(method.getName().startsWith("set")){
+
+ Class<?>[] typeList = method.getParameterTypes();
+
+ if(typeList.length > 1){
+ new IllegalStateException("Found a setter with parameter count > 1");
+ }
+
+ if(typeList[0].getName().equals("boolean")){
+ booleanMethods.add(method);
+ }
+ }
+ }
+
+ return booleanMethods;
+ }
+}
* @created 15.06.2009
* @version 1.0
*/
-public class JaxbExportWizardPage extends WizardPage{
+public class JaxbExportDestinationWizardPage extends WizardPage{
public static final String DATE_FORMAT_NOW = "yyyyMMdd-HHmm";
private static final Logger logger = Logger
- .getLogger(JaxbExportWizardPage.class);
+ .getLogger(JaxbExportDestinationWizardPage.class);
private DirectoryDialog folderDialog;
private Text text_exportFileName;
* @param pageName
* @param selection
*/
- protected JaxbExportWizardPage(String pageName) {
+ protected JaxbExportDestinationWizardPage(String pageName) {
super(pageName);
this.setTitle("JAXB Export");
import org.eclipse.ui.IWorkbench;
import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
-import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @created 15.06.2009
* @version 1.0
*/
-public class JaxbExportWizard extends AbstractExportWizard {
+public class JaxbExportWizard extends AbstractExportWizard<JaxbExportConfigurator> {
private static final Logger logger = Logger
.getLogger(JaxbExportWizard.class);
public final String JAXB_EXPORT = "JAXB_EXPORT";
- private JaxbExportWizardPage page;
+ private JaxbExportDestinationWizardPage page;
+
+ private JaxbExportConfigurator configurator;
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ this.setWindowTitle("JAXB Export");
+ this.configurator = JaxbExportConfigurator.NewInstance(null, null);
+ }
+
/* (non-Javadoc)
* @see org.eclipse.jface.wizard.Wizard#performFinish()
*/
@Override
public boolean performFinish() {
- String url = page.getFolderText() + File.pathSeparator + page.getExportFileName();
+ String urlString = page.getFolderText() + File.pathSeparator + page.getExportFileName();
- JaxbExportConfigurator configurator = JaxbExportConfigurator.NewInstance(CdmDataSourceRepository.getDefault().getCurrentDataSource(), url);
+ configurator.setDestination(urlString);
configurator.setCdmAppController(CdmStore.getApplicationController());
- return export(configurator);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
- */
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- this.setWindowTitle("JAXB Export");
+ return doExport(configurator);
}
/* (non-Javadoc)
@Override
public void addPages() {
super.addPages();
-
- page = new JaxbExportWizardPage(JAXB_EXPORT);
-
+
+ page = new JaxbExportDestinationWizardPage(JAXB_EXPORT);
addPage(page);
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.io.AbstractExportWizard#getConfigurator()
+ */
+ @Override
+ public JaxbExportConfigurator getConfigurator() {
+ return configurator;
+ }
}
/**
* @author n.hoffmann
- * @created 23.06.2009
+ * @created 24.06.2009
* @version 1.0
*/
-public class BerlinModelExportWizardPage extends WizardPage {
-
-
- private static final Logger logger = Logger
- .getLogger(BerlinModelExportWizardPage.class);
-
+public class JaxbImportSourceWizardPage extends WizardPage {
/**
* @param pageName
*/
- protected BerlinModelExportWizardPage(String pageName) {
+ protected JaxbImportSourceWizardPage(String pageName) {
super(pageName);
- this.setTitle("Berlin Model Export");
-
- this.setDescription("Exports the contents of the currently selected database into a Berlin Model database");
+ // TODO Auto-generated constructor stub
}
-
+
+ private static final Logger logger = Logger
+ .getLogger(JaxbImportSourceWizardPage.class);
+
/* (non-Javadoc)
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
*/
+++ /dev/null
-// $Id$\r
-/**\r
-* Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-\r
-package eu.etaxonomy.taxeditor.model;\r
-\r
-import eu.etaxonomy.cdm.model.common.Language;\r
-\r
-/**\r
- * @author p.ciardelli\r
- * @created 03.04.2009\r
- * @version 1.0\r
- */\r
-public class LanguageUtil {\r
- /**\r
- * @param language\r
- * @return\r
- */\r
- public static String getDescription(Language language) {\r
- return language.getDescription();\r
- }\r
-}\r
+++ /dev/null
-// $Id$\r
-/**\r
-* Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-\r
-package eu.etaxonomy.taxeditor.model;\r
-\r
-import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;\r
-import eu.etaxonomy.cdm.model.reference.Generic;\r
-import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
-\r
-/**\r
- * @author p.ciardelli\r
- * @created 02.04.2009\r
- * @version 1.0\r
- */\r
-public class ReferenceUtil {\r
- /**\r
- * Returns the entity's citation. If none exists, gives the\r
- * entity a Generic citation.\r
- * \r
- * @param entity \r
- * @return\r
- */\r
- public static ReferenceBase<?> getOrCreateCitation(ReferencedEntityBase entity) {\r
- ReferenceBase<?> citation = entity.getCitation();\r
- if (citation == null) {\r
- citation = Generic.NewInstance();\r
- entity.setCitation(citation);\r
- }\r
- return citation;\r
- }\r
-}\r
* @author n.hoffmann
* @created 18.03.2009
* @version 1.0
+ *
+ * @deprecated migrate to org.eclipse.ui.themes or at least handle this a little bit more eclipse like
*/
public class Resources {
public static final String COLOR_COMPOSITE_SELECTED = "color_list_selection";
public static final String COLOR_LIST_BACKGROUND = "color_list_background";
- /* ***************************************************************************************
- PREFERENCES
- ************************************************************************************** */
- public static final String FEATURE_PREFERENCE = "feature_preference";
- public static final String RANK_PREFERENCE = "rank_preference";
-
/***************************************************************************
* FONT REGISTRY
package eu.etaxonomy.taxeditor.preference;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
* @created 12.06.2009
* @version 1.0
*/
-public abstract class AbstractMenuPreferences extends PreferencePage{
+public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends PreferencePage implements
+ IWorkbenchPreferencePage{
private Button toggleButton;
- protected HashMap<DefinedTermBase, Button> menuButtons;
+ protected HashMap<DefinedTermBase<T>, Button> menuButtons;
- protected Set<?> vocabulary;
+ protected Set<T> vocabulary;
- private List preferedTerms;
+ private List<T> preferedTerms;
protected CheckboxTableViewer tableViewer;
* @param title the title of the page
* @param description describing text for the preference page
*/
- public AbstractMenuPreferences(Set<?> initialVocabulary, List preferedTerms, String title, String description) {
+ public AbstractMenuPreferences(Set<T> initialVocabulary, String title, String description) {
super(title);
vocabulary = initialVocabulary;
- this.preferedTerms = preferedTerms;
+ preferedTerms = PreferencesUtil.getPreferredTerms(initialVocabulary);
setDescription(description);
}
/**
+ * Default implementation
+ *
* @param buttonContainer
*/
- protected abstract void createButtons(Composite buttonContainer);
+ protected void createButtons(Composite buttonContainer){
+ // implement in client
+ }
public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPrefStore());
+ setPreferenceStore(PreferencesUtil.getPreferenceStore());
}
/*
};
+
+
/**
*
* @author n.hoffmann
*/
public CheckboxTableViewer getTableViewer() {
return tableViewer;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.PreferencePage#performOk()
+ */
+ @Override
+ public boolean performOk() {
+ List<T> preferredTerms = new ArrayList<T>();
+ for (Object element : getTableViewer().getCheckedElements()){
+ preferredTerms.add((T) element);
+ }
+
+ PreferencesUtil.setPreferredTerms(preferredTerms, this.vocabulary);
+
+ return true;
}
}
\ No newline at end of file
--- /dev/null
+// $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;
+
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.taxeditor.store.VocabularyStore;
+
+/**
+ * @author n.hoffmann
+ * @created 25.06.2009
+ * @version 1.0
+ */
+public class DistributionStatusMenuPreferences extends AbstractMenuPreferences<PresenceAbsenceTermBase<PresenceAbsenceTermBase<?>>> implements
+ IWorkbenchPreferencePage {
+
+
+ /**
+ * @param initialVocabulary
+ * @param preferedTerms
+ * @param title
+ * @param description
+ */
+ public DistributionStatusMenuPreferences() {
+ super(VocabularyStore.getPresenceAbsenceTerms(), "Distribution Status Preferences", "Choose which distribution states should be shown.");
+ }
+
+}
*/\r
package eu.etaxonomy.taxeditor.preference;\r
\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
import org.eclipse.jface.wizard.WizardDialog;\r
import org.eclipse.swt.SWT;\r
import org.eclipse.swt.events.MouseAdapter;\r
import org.eclipse.swt.layout.GridData;\r
import org.eclipse.swt.widgets.Button;\r
import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.ui.IWorkbenchPreferencePage;\r
\r
import eu.etaxonomy.cdm.model.description.Feature;\r
import eu.etaxonomy.taxeditor.preference.wizards.FeatureWizard;\r
-import eu.etaxonomy.taxeditor.store.CdmStore;\r
import eu.etaxonomy.taxeditor.store.StoreUtil;\r
+import eu.etaxonomy.taxeditor.store.VocabularyStore;\r
\r
/**\r
* @author p.ciardelli\r
* @version 1.0\r
* @author n.hoffmann\r
*/\r
-public class FeatureMenuPreferences extends AbstractMenuPreferences implements\r
- IWorkbenchPreferencePage {\r
+public class FeatureMenuPreferences extends AbstractMenuPreferences<Feature> {\r
\r
public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.feature";\r
private Button newButton;\r
private Button removeButton;\r
\r
public FeatureMenuPreferences() {\r
- super(CdmStore.getFeatures(), PreferencesUtil.getPreferredFeatures(), "Feature Preferences", "Choose which features you would like to use for descriptive elements.");\r
- }\r
-\r
- \r
- /* (non-Javadoc)\r
- * @see org.eclipse.jface.preference.PreferencePage#performOk()\r
- */\r
- public boolean performOk() {\r
- List<Feature> preferredFeatures = new ArrayList<Feature>();\r
- for (Object element : getTableViewer().getCheckedElements()){\r
- preferredFeatures.add((Feature) element);\r
- }\r
- \r
- PreferencesUtil.setPreferredFeatures(preferredFeatures);\r
- \r
- return true;\r
+ super(VocabularyStore.getFeatures(), "Feature Preferences", "Choose which features you would like to use for descriptive elements.");\r
}\r
\r
/* (non-Javadoc)\r
WizardDialog dialog = new WizardDialog(StoreUtil.getShell(), wizard);\r
dialog.open();\r
\r
- tableViewer.setInput(CdmStore.getFeatures());\r
+ tableViewer.setInput(VocabularyStore.getFeatures());\r
}\r
\r
});\r
* Initialize the preference page\r
*/\r
public void init(IWorkbench workbench) {\r
- setPreferenceStore(PreferencesUtil.getPrefStore());\r
+ setPreferenceStore(PreferencesUtil.getPreferenceStore());\r
}\r
\r
@Override\r
boolean doReinitialize = !(btnInit.getSelection());\r
// boolean doInitTestdata = btnTestData.getSelection();\r
\r
- PreferencesUtil.getPrefStore().setValue(Resources.INITIALIZED, doReinitialize);\r
+ PreferencesUtil.getPreferenceStore().setValue(Resources.INITIALIZED, doReinitialize);\r
// UiUtil.getPrefStore().setValue(ITaxEditorConstants.INITIALIZE_W_TESTDATA, doInitTestdata); \r
return true;\r
}\r
--- /dev/null
+// $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;
+
+import eu.etaxonomy.cdm.model.name.NameRelationshipType;
+import eu.etaxonomy.taxeditor.store.VocabularyStore;
+
+/**
+ * @author n.hoffmann
+ * @created 25.06.2009
+ * @version 1.0
+ */
+public class NameRelationshipTypeMenuPreferences extends
+ AbstractMenuPreferences<NameRelationshipType> {
+
+
+ public NameRelationshipTypeMenuPreferences() {
+ super(VocabularyStore.getNameRelationshipTypes(),
+ "Name relationship types",
+ "Configure name relationship types");
+
+ }
+}
--- /dev/null
+// $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;
+
+import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
+import eu.etaxonomy.taxeditor.store.VocabularyStore;
+
+/**
+ * @author n.hoffmann
+ * @created 25.06.2009
+ * @version 1.0
+ */
+public class NomenclaturalStatusTypeMenuPreferences extends
+ AbstractMenuPreferences<NomenclaturalStatusType> {
+
+ public NomenclaturalStatusTypeMenuPreferences() {
+ super(VocabularyStore.getNomenclaturalStatusTypes(),
+ "Nomenlcatural Status Type Preferences",
+ "Configure nomenclatural status types");
+ }
+
+}
\r
import java.util.ArrayList;\r
import java.util.List;\r
+import java.util.Set;\r
\r
import org.apache.log4j.Logger;\r
import org.eclipse.jface.preference.IPreferenceStore;\r
-import org.eclipse.ui.editors.text.EditorsUI;\r
-import org.eclipse.ui.texteditor.SourceViewerDecorationSupport;\r
\r
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
+import eu.etaxonomy.cdm.model.common.TermBase;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
import eu.etaxonomy.cdm.model.name.BotanicalName;\r
+import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
+import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;\r
import eu.etaxonomy.cdm.model.name.NonViralName;\r
import eu.etaxonomy.cdm.model.name.Rank;\r
import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
import eu.etaxonomy.taxeditor.model.Resources;\r
-import eu.etaxonomy.taxeditor.store.CdmStore;\r
+import eu.etaxonomy.taxeditor.store.VocabularyStore;\r
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;\r
\r
/**\r
* @author p.ciardelli\r
* @created 05.12.2008\r
* @version 1.0\r
+ * @author n.hoffmann\r
*/\r
public class PreferencesUtil {\r
private static final Logger logger = Logger\r
.getLogger(PreferencesUtil.class);\r
\r
-\r
- private static final String FEATURE_PREFERENCE = "FEATURE_PREFERENCE";\r
-\r
-\r
- private static SourceViewerDecorationSupport decorationSupport;\r
-\r
/**\r
* \r
* @return\r
*/\r
- public static IPreferenceStore getPrefStore() {\r
+ public static IPreferenceStore getPreferenceStore() {\r
return TaxeditorStorePlugin.getDefault().getPreferenceStore();\r
}\r
\r
+ /**\r
+ * \r
+ * @return\r
+ */\r
+ private static String getNameCodePreference() {\r
+ try{\r
+ return getPreferenceStore().getString(Resources.CODE_PREFERENCE);\r
+ }catch(NullPointerException e){\r
+ logger.warn("PreferenceStore was not available. That is OK if you are running a unit test. Setting ICBN as default code.");\r
+ return Resources.CODE_PREFERENCE_ICBN;\r
+ }\r
+ }\r
+ \r
/**\r
* \r
* @param preferredCode\r
*/\r
public static void setNomenclaturalCode(String preferredCode) {\r
- getPrefStore().setValue(Resources.CODE_PREFERENCE, preferredCode);\r
+ getPreferenceStore().setValue(Resources.CODE_PREFERENCE, preferredCode);\r
}\r
\r
/**\r
return null;\r
}\r
\r
- /**\r
- * \r
- * @return\r
- */\r
- private static String getNameCodePreference() {\r
- try{\r
- return getPrefStore().getString(Resources.CODE_PREFERENCE);\r
- }catch(NullPointerException e){\r
- logger.warn("PreferenceStore was not available. That is OK if you are running a unit test. Setting ICBN as default code.");\r
- return Resources.CODE_PREFERENCE_ICBN;\r
- }\r
- }\r
-\r
- /**\r
- * Returns a <code>Set</code> of the <code>Feature</code>s that the user has chosen\r
- * to have shown in preferences.\r
- * </p>\r
- * <p>\r
- * <code>Feature</code>s are shown unless otherwise specified.\r
- * </p>\r
- * @return\r
- */\r
- public static List<Feature> getPreferredFeatures() {\r
- \r
- ArrayList<Feature> preferedFeatures = new ArrayList<Feature>();\r
- \r
- for (Feature feature : CdmStore.getFeatures()) {\r
- if(getPrefStore().getBoolean(getPreferenceKey(feature))){\r
- preferedFeatures.add(feature);\r
- }\r
- }\r
- \r
- return preferedFeatures;\r
- }\r
-\r
- /**\r
- * \r
- * @param preferredFeatureList\r
- */\r
- public static void setPreferredFeatures(List<Feature> preferredFeatureList) {\r
- \r
- for (Feature feature : CdmStore.getFeatures()) {\r
- getPrefStore().setValue(getPreferenceKey(feature), preferredFeatureList.contains(feature));\r
- }\r
- }\r
- \r
- /**\r
- * Construct a unique key using <code>Feature</code>'s <code>Uuid</code>\r
- * \r
- * @param feature\r
- * @return\r
- */\r
- private static String getPreferenceKey(Feature feature) {\r
- return FEATURE_PREFERENCE \r
- . concat(".")\r
- . concat(feature.getUuid().toString());\r
- }\r
-\r
- /**\r
- * Returns a <code>Set</code> of the <code>Rank</code>s that the user has chosen\r
- * to have shown in preferences.\r
- * </p>\r
- * <p>\r
- * <code>Rank</code>s are shown unless otherwise specified.\r
- * </p>\r
- * @return\r
- */\r
- public static List<Rank> getPreferredRanks() {\r
- \r
- ArrayList<Rank> preferedRanks = new ArrayList<Rank>();\r
- \r
- for (Rank rank : CdmStore.getRanks()) {\r
- if(getPrefStore().getBoolean(getPreferenceKey(rank))){\r
- preferedRanks.add(rank);\r
- }\r
- }\r
- \r
- return preferedRanks;\r
- }\r
\r
- /**\r
- * \r
- * @param preferedRankList\r
- */\r
- public static void setPreferredRanks(List<Rank> preferedRankList) {\r
- for (Rank rank : CdmStore.getRanks()) {\r
- getPrefStore().setValue(getPreferenceKey(rank), preferedRankList.contains(rank));\r
- }\r
- }\r
-\r
-\r
-\r
- /**\r
- * Construct a unique key using <code>Rank</code>'s <code>Uuid</code>\r
- * \r
- * @param feature\r
- * @return\r
- */\r
- private static String getPreferenceKey(Rank rank) {\r
- return Resources.RANK_PREFERENCE \r
- . concat(".")\r
- . concat(rank.getUuid().toString());\r
- }\r
-\r
/**\r
* Returns a new name object that conforms to the nomenclatural\r
* code specified in user preferences. \r
}\r
\r
/**\r
- * Appends the code (i.e. ICBN or ICZN) specified in the user preferences\r
- * to a string. The result is separated by a period: "<code>key.ICBN</code>".\r
+ * Generic method to get term preferences for a term vocabulary\r
* \r
- * @param key\r
+ * @param <T>\r
+ * @param initialFeatures\r
* @return\r
*/\r
- public static String concatCodeMessageSuffix(String key) {\r
- String code = getNameCodePreference();\r
- return key + "." + code;\r
+ public static <T extends DefinedTermBase> List<T> getPreferredTerms(Set<T> initialFeatures){\r
+ List<T> preferredTerms = new ArrayList<T>();\r
+ \r
+ for (T term : initialFeatures){\r
+ if(getPreferenceStore().getBoolean(getPreferenceKey(term))){\r
+ preferredTerms.add(term);\r
+ }\r
+ }\r
+ \r
+ return preferredTerms; \r
}\r
+ \r
+ /** @return a <code>List</code> containing user preferred <code>Feature</code> terms */\r
+ public static List<Feature> getPreferredFeatures() { return getPreferredTerms(VocabularyStore.getFeatures());}\r
\r
+ /** @return a <code>List</code> containing user preferred <code>Rank</code> terms */\r
+ public static List<Rank> getPreferredRanks() { return getPreferredTerms(VocabularyStore.getRanks());}\r
+ \r
+ /** @return a <code>List</code> containing user preferred <code>PresenceAbsenceTermBase</code> terms */\r
+ public static List<PresenceAbsenceTermBase<PresenceAbsenceTermBase<?>>> getPreferredPresenceAbsenceTerms(){ return getPreferredTerms(VocabularyStore.getPresenceAbsenceTerms());}\r
+ \r
+ /** @return a <code>List</code> containing user preferred <code>NomenclaturalStatusType</code> terms */\r
+ public static List<NomenclaturalStatusType> getPreferredNomenclaturalStatusTypes(){ return getPreferredTerms(VocabularyStore.getNomenclaturalStatusTypes());}\r
+ \r
+ /** @return a <code>List</code> containing user preferred <code>NameRelationshipType</code> terms */\r
+ public static List<NameRelationshipType> getPreferredNameRelationshipTypes(){ return getPreferredTerms(VocabularyStore.getNameRelationshipTypes());}\r
+ \r
+ \r
/**\r
+ * Generic method to set term preferences\r
* \r
- * @return\r
+ * @param preferredTerms\r
+ * @param initalTerms\r
*/\r
- public static SourceViewerDecorationSupport getDecorationSupport() {\r
- if (decorationSupport == null) {\r
- decorationSupport = new SourceViewerDecorationSupport(null, null, null, EditorsUI.getSharedTextColors());\r
+ public static <T extends DefinedTermBase> void setPreferredTerms(List<T> preferredTerms, Set<T> initalTerms){\r
+ for(TermBase term : initalTerms){\r
+ getPreferenceStore().setValue(getPreferenceKey(term), preferredTerms.contains(term));\r
}\r
- return decorationSupport;\r
+ }\r
+ \r
+ /**\r
+ * Construct a unique key using the terms uuid\r
+ * \r
+ * @param term\r
+ * @return\r
+ */\r
+ private static String getPreferenceKey(TermBase term) {\r
+ return term.getClass().getName()\r
+ . concat(".")\r
+ . concat(term.getUuid().toString());\r
}\r
}\r
*/\r
package eu.etaxonomy.taxeditor.preference;\r
\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import org.eclipse.swt.widgets.Composite;\r
import org.eclipse.ui.IWorkbenchPreferencePage;\r
\r
import eu.etaxonomy.cdm.model.name.Rank;\r
-import eu.etaxonomy.taxeditor.store.CdmStore;\r
+import eu.etaxonomy.taxeditor.store.VocabularyStore;\r
\r
/**\r
* Allows the user to choose which <code>Rank</code>s to display in the \r
* @version 1.0\r
* @author n.hoffmann\r
*/\r
-public class RankMenuPreferences extends AbstractMenuPreferences implements\r
+public class RankMenuPreferences extends AbstractMenuPreferences<Rank> implements\r
IWorkbenchPreferencePage {\r
\r
public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.ranks";\r
\r
public RankMenuPreferences() {\r
- super(CdmStore.getRanks(), PreferencesUtil.getPreferredRanks(), "Rank Preferences", "Choose which ranks to display in the property sheet drop-down menu.");\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see org.eclipse.jface.preference.PreferencePage#performOk()\r
- */\r
- public boolean performOk() {\r
- \r
- List<Rank> preferredRanks = new ArrayList<Rank>();\r
- for (Object element : getTableViewer().getCheckedElements()){\r
- preferredRanks.add((Rank) element);\r
- }\r
- \r
- PreferencesUtil.setPreferredRanks(preferredRanks);\r
- \r
- return true;\r
+ super(VocabularyStore.getRanks(), \r
+ "Rank Preferences", \r
+ "Choose which ranks to display in the property sheet drop-down menu.");\r
}\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.taxeditor.preference.AbstractMenuPreferences#createButtons(org.eclipse.swt.widgets.Composite)\r
- */\r
- @Override\r
- protected void createButtons(Composite buttonContainer) {\r
- // not used\r
- }\r
}\r
import org.eclipse.jface.wizard.Wizard;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.VocabularyEnum;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.VocabularyStore;
/**
* @author n.hoffmann
ConversationHolder conversation = CdmStore.NewTransactionalConversation();
if(editMode){
- CdmStore.updateFeature(feature);
+ VocabularyStore.updateVocabulary(VocabularyEnum.Feature);
}else{
- CdmStore.saveFeature(feature);
+ VocabularyStore.saveTerm(feature, VocabularyEnum.Feature);
}
conversation.commit(true);
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
-import java.util.Set;
-import java.util.SortedSet;
import java.util.UUID;
import org.apache.log4j.Logger;
import eu.etaxonomy.cdm.api.service.INameService;
import eu.etaxonomy.cdm.api.service.IReferenceService;
import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.api.service.ITermService;
import eu.etaxonomy.cdm.api.service.config.ITaxonServiceConfigurator;
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.IdentifiableEntity;
import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
-import eu.etaxonomy.cdm.model.common.TermVocabulary;
-import eu.etaxonomy.cdm.model.common.VocabularyEnum;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.name.NameRelationshipType;
-import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
-import eu.etaxonomy.cdm.model.name.Rank;
-import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.reference.Article;
import eu.etaxonomy.cdm.model.reference.Book;
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;
}
}
- public Set<TaxonRelationshipType> getConceptRelationshipTypes() {
- Set<TaxonRelationshipType> conceptRelationshipTypes = getTaxonRelationshipTypes().getTerms();
- // remove these two relations as they are considered standard taxon relations
- conceptRelationshipTypes.remove(TaxonRelationshipType.MISAPPLIED_NAME_FOR());
- conceptRelationshipTypes.remove(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN());
-
- return conceptRelationshipTypes;
- }
public ReferenceBase<?> getDefaultSec() {
// TODO why is this returning null? and of course, replace w the real deal
return applicationController.getReferenceService().getReferenceByUuid(
UUID.fromString("f3593c18-a8d2-4e51-bdad-0befbf8fb2d1"));
}
-
- private TermVocabulary<Feature> getFeaturesInternal() {
- return applicationController.getTermService().getVocabulary(VocabularyEnum.Feature);
- }
- public static SortedSet<Feature> getFeatures() {
- return getDefault().getFeaturesInternal().getTermsOrderedByLabels(getDefaultLanguage());
- }
-
- public SortedSet<NameRelationshipType> getNameRelationshipTypes() {
- return applicationController.getTermService().getVocabulary(VocabularyEnum.NameRelationshipType).getTermsOrderedByLabels(Language.DEFAULT());
- }
-
- public TermVocabulary<NomenclaturalStatusType> getNomenclaturalStatusTypesInternal() {
- return applicationController.getTermService().getVocabulary(VocabularyEnum.NomenclaturalStatusType);
- }
-
- public static Set<NomenclaturalStatusType> getNomenclaturalStatusTypes(){
- // TODO sort types
- return getDefault().getNomenclaturalStatusTypesInternal().getTerms();
- }
-
- private OrderedTermVocabulary<Rank> getRanksInternal(){
- TermVocabulary<Rank> vocabulary = applicationController.getTermService().getVocabulary(VocabularyEnum.Rank);
- return HibernateProxyHelper.deproxy(vocabulary, OrderedTermVocabulary.class);
- }
-
- public static SortedSet<Rank> getRanks(){
- return getDefault().getRanksInternal().getOrderedTerms(null);
- }
-
+ /**
+ * @deprecated use taxonomic tree instead
+ */
public List<Taxon> getRootTaxa() {
boolean onlyWithChildren = false;
boolean withMisapplications = true;
public List<TaxonomicTree> getTaxonomicTrees() {
return applicationController.getTaxonService().getAllTaxonomicTrees(10000, 0);
}
-
- public OrderedTermVocabulary<TaxonRelationshipType> getTaxonRelationshipTypes() {
- TermVocabulary vocabulary = HibernateProxyHelper.deproxy
- (applicationController.getTermService().getVocabulary(VocabularyEnum.TaxonRelationshipType), TermVocabulary.class);
- return (OrderedTermVocabulary<TaxonRelationshipType>) vocabulary;
- }
-
- public TermVocabulary<SpecimenTypeDesignationStatus> getSpecimenTypeDesignationStatus() {
- return applicationController.getTermService().getVocabulary(VocabularyEnum.SpecimenTypeDesignationStatus);
- }
-
-
- public UUID saveTaxon(Taxon taxon) {
- return applicationController.getTaxonService().save(taxon);
- }
-
- public void setApplicationController(
- CdmApplicationController applicationController) {
- this.applicationController = applicationController;
- }
+
private CdmApplicationController getApplicationControllerInternal(){
return applicationController;
return getDefault().getGlobalReadOnlyConversation();
}
- public static ITaxonService getTaxonService(){
- return getDefault().getApplicationController().getTaxonService();
- }
+
+ /*
+ * EXPOSING SERVICES
+ */
- public static INameService getNameService(){
- return getDefault().getApplicationController().getNameService();
- }
+ public static ITaxonService getTaxonService(){ return getDefault().getApplicationControllerInternal().getTaxonService();}
- public static IReferenceService getReferenceService(){
- return getDefault().getApplicationController().getReferenceService();
- }
+ public static INameService getNameService(){ return getDefault().getApplicationControllerInternal().getNameService();}
- public static ILocationService getLocationService(){
- return getDefault().getApplicationController().getLocationService();
- }
+ public static IReferenceService getReferenceService(){ return getDefault().getApplicationControllerInternal().getReferenceService();}
+
+ public static ILocationService getLocationService(){ return getDefault().getApplicationControllerInternal().getLocationService();}
- public static ProviderManager getAuthenticationManager() {
- return getDefault().getApplicationController().getAuthenticationManager();
- }
+ public static ProviderManager getAuthenticationManager() { return getDefault().getApplicationControllerInternal().getAuthenticationManager();}
/**
}
return resultsList;
}
-
-
- public static List<Language> getLanguages() {
- ITermService termService = getDefault().getApplicationController().getTermService();
- ArrayList<Language> languages = new ArrayList<Language>();
- for (Language language : termService.getLanguageVocabulary()) {
- languages.add(language);
- }
-
- // TODO sort languages
-
-// languages.add(Language.ENGLISH());
-// languages.add(Language.GERMAN());
- return languages;
- }
/**
* FIXME mock
return Language.ENGLISH();
}
- /**
- * @return
- */
- private static String getApplicationContextBean() {
- return DEFAULT_APPLICATION_CONTEXT;
- }
-
/**
* @return
*/
return nomReferenceTypeMap;
}
- /**
- * @param feature
- */
- public static void saveFeature(Feature feature) {
- TermVocabulary<Feature> 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<Feature> vocabulary = getDefault().getFeaturesInternal();
-
- getDefault().getApplicationController().getTermService().saveTermVocabulary(vocabulary);
- }
}
--- /dev/null
+// $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.store;
+
+import java.util.Set;
+import java.util.SortedSet;
+
+import org.apache.log4j.Logger;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationController;
+import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.OrderedTermBase;
+import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
+import eu.etaxonomy.cdm.model.common.VocabularyEnum;
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.name.NameRelationshipType;
+import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
+import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+
+/**
+ * All vocabularies may be accessed through this store.
+ * Note: This is for internal use. When using vocabularies in the UI, try to use the preferred terms from
+ * PreferenceUtil
+ *
+ * @author n.hoffmann
+ * @created 25.06.2009
+ * @version 1.0
+ */
+public class VocabularyStore {
+ private static final Logger logger = Logger.getLogger(VocabularyStore.class);
+
+ /**
+ * The singleton instance
+ */
+ private static VocabularyStore instance;
+
+ /**
+ * Retrieve the singleton instance
+ *
+ * @return
+ */
+ private static synchronized VocabularyStore getDefault(){
+ if(instance == null){
+ instance = new VocabularyStore();
+ }
+ return instance;
+ }
+
+ /**
+ *
+ * @return
+ */
+ public static SortedSet<SpecimenTypeDesignationStatus> getSpecimenTypeDesignationStatus() {
+ SortedSet specimenTypeDesignationStatus = getDefault().getTermVocabulary(VocabularyEnum.SpecimenTypeDesignationStatus).getTermsOrderedByLabels(getDefaultLanguage());
+ return specimenTypeDesignationStatus;
+ }
+
+ /**
+ *
+ * @return
+ */
+ public static SortedSet<TaxonRelationshipType> getTaxonRelationshipTypes(){
+ SortedSet taxonRelationshipTypes = getDefault().getOrderedTermVocabulary(VocabularyEnum.TaxonRelationshipType).getOrderedTerms();
+ return taxonRelationshipTypes;
+ }
+
+ /**
+ *
+ * @return
+ */
+ public static SortedSet<TaxonRelationshipType> getConceptRelationshipTypes() {
+ SortedSet<TaxonRelationshipType> conceptRelationshipTypes = getTaxonRelationshipTypes();
+ // remove these two relations as they are considered standard taxon relations
+ conceptRelationshipTypes.remove(TaxonRelationshipType.MISAPPLIED_NAME_FOR());
+ conceptRelationshipTypes.remove(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN());
+
+ return conceptRelationshipTypes;
+ }
+
+ /**
+ *
+ * @return
+ */
+ public static SortedSet<Language> getLanguages(){
+ SortedSet languages = getDefault().getTermVocabulary(VocabularyEnum.Language).getTermsOrderedByLabels(getDefaultLanguage());
+ return languages;
+ }
+
+ /**
+ *
+ * @return
+ */
+ public static SortedSet<Feature> getFeatures() {
+ SortedSet features = getDefault().getTermVocabulary(VocabularyEnum.Feature).getTermsOrderedByLabels(getDefaultLanguage());
+ return features;
+
+ }
+
+ /**
+ *
+ * @return
+ */
+ public static SortedSet<NameRelationshipType> getNameRelationshipTypes() {
+ SortedSet nameRelationshipTypes = getDefault().getTermVocabulary(VocabularyEnum.NameRelationshipType).getTermsOrderedByLabels(getDefaultLanguage());
+ return nameRelationshipTypes;
+ }
+
+ /**
+ *
+ * @return
+ */
+ public static Set<NomenclaturalStatusType> getNomenclaturalStatusTypes(){
+ // TODO sort types
+ Set nomenclaturalStatusTypes = getDefault().getTermVocabulary(VocabularyEnum.NomenclaturalStatusType).getTermsOrderedByLabels(getDefaultLanguage());
+ return nomenclaturalStatusTypes;
+ }
+
+ /**
+ * Retrieve all ranks from data store.
+ *
+ * @return
+ */
+ public static SortedSet<Rank> getRanks(){
+ SortedSet ranks = getDefault().getOrderedTermVocabulary(VocabularyEnum.Rank).getOrderedTerms();
+ return ranks;
+ }
+
+
+ /**
+ * Retrieve all presence and absence terms from data store.
+ *
+ * @return
+ */
+ public static SortedSet<PresenceAbsenceTermBase<PresenceAbsenceTermBase<?>>> getPresenceAbsenceTerms() {
+ SortedSet presenceAbsenceTerms = getDefault().getTermVocabulary(VocabularyEnum.PresenceTerm).getTermsOrderedByLabels(getDefaultLanguage());
+ presenceAbsenceTerms.addAll(getDefault().getTermVocabulary(VocabularyEnum.AbsenceTerm).getTermsOrderedByLabels(getDefaultLanguage()));
+
+ return presenceAbsenceTerms;
+ }
+
+ /*************** save methods ******************************/
+ /**
+ * Adds a term to a vocabulary
+ *
+ * @param feature
+ */
+ public static void saveTerm(DefinedTermBase term, VocabularyEnum vocabularyType) {
+ TermVocabulary<DefinedTermBase> vocabulary = getDefault().getTermVocabulary(vocabularyType);
+
+ vocabulary.addTerm(term);
+
+ getDefault().getTermService().saveTermVocabulary(vocabulary);
+ }
+
+ /**
+ * Save a vacabulary to data store
+ *
+ * @param feature
+ */
+ public static void updateVocabulary(VocabularyEnum vocabularyType) {
+ TermVocabulary<DefinedTermBase> vocabulary = getDefault().getTermVocabulary(vocabularyType);
+
+ getDefault().getTermService().saveTermVocabulary(vocabulary);
+ }
+
+
+
+ /*************** internal methods **************************/
+
+ private static Language getDefaultLanguage(){
+ return CdmStore.getDefaultLanguage();
+ }
+
+ private OrderedTermVocabulary<? extends OrderedTermBase> getOrderedTermVocabulary(VocabularyEnum vocabularyType){
+ TermVocabulary<DefinedTermBase> vocabulary = getTermVocabulary(vocabularyType);
+ return HibernateProxyHelper.deproxy(vocabulary, OrderedTermVocabulary.class);
+ }
+
+ private TermVocabulary<DefinedTermBase> getTermVocabulary(VocabularyEnum vocabularyType){
+ return getTermService().getVocabulary(vocabularyType);
+ }
+
+ private ITermService getTermService(){
+ return getApplicationController().getTermService();
+ }
+
+ private CdmApplicationController getApplicationController(){
+ return CdmStore.getApplicationController();
+ }
+}
@Test
//@DataSet("CdmStoreTest.xml")
@Ignore
- public void testGetRootTaxa(){
- List<Taxon> rootTaxa = cdmStore.getRootTaxa();
-
- Assert.assertNotNull(rootTaxa);
+ public void testGetTaxonomicTrees(){
+
}
/**
@Ignore
public void testGetConceptRelationshipTypes(){
conversation.bind();
- Set<TaxonRelationshipType> conceptRelationshipTypes = cdmStore.getConceptRelationshipTypes();
+ Set<TaxonRelationshipType> conceptRelationshipTypes = VocabularyStore.getConceptRelationshipTypes();
Assert.assertNotNull(conceptRelationshipTypes);
}
}