From: Katja Luther Date: Thu, 13 Aug 2015 11:20:56 +0000 (+0200) Subject: fix delete polytomouskeynode and improve merge in bulk editor X-Git-Tag: 3.8.0^2~43^2~29 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/1dc79a5ee9574a9bcdb5725ea773240c3a6f053f?hp=5bb57df1a698fbdab56e558de88c1b3aaf2b39df fix delete polytomouskeynode and improve merge in bulk editor --- diff --git a/eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/update/P2Util.java b/eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/update/P2Util.java index 0a6fb6395..9e1731c4c 100644 --- a/eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/update/P2Util.java +++ b/eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/update/P2Util.java @@ -7,6 +7,7 @@ import java.util.List; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.IJobChangeEvent; @@ -15,15 +16,17 @@ import org.eclipse.core.runtime.jobs.JobChangeAdapter; import org.eclipse.equinox.internal.p2.ui.ProvUI; import org.eclipse.equinox.internal.p2.ui.model.ElementUtils; import org.eclipse.equinox.internal.p2.ui.model.MetadataRepositoryElement; +import org.eclipse.equinox.p2.repository.IRepository; +import org.eclipse.equinox.p2.repository.IRepositoryManager; +import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; +import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager; import org.eclipse.equinox.p2.core.IProvisioningAgent; import org.eclipse.equinox.p2.core.ProvisionException; import org.eclipse.equinox.p2.operations.ProvisioningJob; import org.eclipse.equinox.p2.operations.ProvisioningSession; +import org.eclipse.equinox.p2.operations.RepositoryTracker; import org.eclipse.equinox.p2.operations.Update; import org.eclipse.equinox.p2.operations.UpdateOperation; -import org.eclipse.equinox.p2.repository.IRepository; -import org.eclipse.equinox.p2.repository.IRepositoryManager; -import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager; import org.eclipse.equinox.p2.ui.ProvisioningUI; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.PlatformUI; @@ -143,7 +146,7 @@ public class P2Util { * */ public static void checkForUpdates() { - + // the main job which performs the update Job updateJob = new Job("Update Job") { @Override public IStatus run(IProgressMonitor monitor) { @@ -159,21 +162,6 @@ public class P2Util { */ private static IStatus doCheckForUpdates(IProgressMonitor monitor) { - // force refresh all the caches before - IMetadataRepositoryManager metaManager = ProvUI.getMetadataRepositoryManager(ProvisioningUI.getDefaultUI().getSession()); - URI[] repos = metaManager.getKnownRepositories(IRepositoryManager.REPOSITORIES_ALL); - for(URI repo : repos) { - try { - metaManager.refreshRepository(repo, monitor); - } catch (ProvisionException pe) { - IStatus errorStatus = new Status(IStatus.ERROR, TaxonomicEditorPlugin.PLUGIN_ID, - "Error occured while reloading cache.", pe); - - } catch (OperationCanceledException oce) { - IStatus errorStatus = new Status(IStatus.ERROR, TaxonomicEditorPlugin.PLUGIN_ID, - "Error occured while reloading cache.", oce); - } - } BundleContext bundleContext = TaxonomicEditorPlugin.getContext(); ServiceReference reference = bundleContext.getServiceReference(IProvisioningAgent.SERVICE_NAME); if (reference == null) { diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/MergeGroupHandler.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/MergeGroupHandler.java index 5c0e8676e..4a8ae8a3c 100644 --- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/MergeGroupHandler.java +++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/MergeGroupHandler.java @@ -22,12 +22,17 @@ import org.eclipse.ui.IEditorPart; import org.eclipse.ui.handlers.HandlerUtil; import org.eclipse.ui.texteditor.IDocumentProvider; +import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; +import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase; +import eu.etaxonomy.cdm.model.reference.Reference; +import eu.etaxonomy.cdm.strategy.merge.MergeException; import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityContainer; import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation; import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotationModel; import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor; import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants; import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput; +import eu.etaxonomy.taxeditor.store.CdmStore; /** *

MergeGroupHandler class.

@@ -71,10 +76,41 @@ public class MergeGroupHandler extends AbstractHandler { } Object targetEntity = ((IEntityContainer) targetAnnotation).getEntity(); + TeamOrPersonBase teamOrPerson = null; + Reference ref = null; + if (targetEntity instanceof TeamOrPersonBase){ + teamOrPerson = HibernateProxyHelper.deproxy(targetEntity, TeamOrPersonBase.class); + } else if(targetEntity instanceof Reference){ + ref = HibernateProxyHelper.deproxy(targetEntity, Reference.class); + } logger.info("Merging group"); // model.printAnnotations(); for (LineAnnotation annotation : candidateAnnotations) { + //first check whether entities are mergeable + + try{ + if (ref != null){ + Reference ref2 = HibernateProxyHelper.deproxy(annotation.getEntity(), Reference.class); + + if (!CdmStore.getCommonService().isMergeable(ref, ref2, null)){ + MessageDialog.openWarning(HandlerUtil.getActiveShell(event), + "No merge possible", "A merge of " + ref.getTitleCache() + " and " + ref2.getTitleCache() + " is not possible."); + return null; + } + } + if (teamOrPerson != null){ + TeamOrPersonBase teamOrPerson2 = HibernateProxyHelper.deproxy(annotation.getEntity(), TeamOrPersonBase.class); + + if (!CdmStore.getCommonService().isMergeable(teamOrPerson, teamOrPerson2, null)){ + MessageDialog.openWarning(HandlerUtil.getActiveShell(event), + "No merge possible", "A merge of " + teamOrPerson.getTitleCache() + " and " + teamOrPerson2.getTitleCache() + " is not possible."); + return null; + } + } + }catch(MergeException e){ + + } ((BulkEditor) editor).removeAnnotatedLine(annotation); // Mark entity container for merging with target entity diff --git a/eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin_de.properties b/eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin_de.properties index 803b460b9..8c098c37d 100644 --- a/eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin_de.properties +++ b/eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin_de.properties @@ -139,8 +139,8 @@ marker.field.2 = Attribut marker.field.3 = Problematischer Wert marker.field.4 = Problembeschreibung marker.field.5 = Validierer -marker.field.6 = Entit\u00e4tsklasse -marker.field.7 = Entit\u00e4ts ID +marker.field.6 = Entit�tsklasse +marker.field.7 = Entit�ts ID extension.name.0 = Validierungs-Fehler command.label.51 = \u00d6ffne Specimen-Editor command.label.52 = L\u00f6schen diff --git a/eu.etaxonomy.taxeditor.editor/plugin.xml b/eu.etaxonomy.taxeditor.editor/plugin.xml index b3c364a17..d06b782aa 100644 --- a/eu.etaxonomy.taxeditor.editor/plugin.xml +++ b/eu.etaxonomy.taxeditor.editor/plugin.xml @@ -242,45 +242,21 @@ commandId="eu.etaxonomy.taxeditor.editor.command.new.name" label="%command.label.46" style="push"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + checkEnabled="false"> + + @@ -391,12 +332,6 @@ commandId="eu.etaxonomy.taxeditor.editor.command.openParent" label="%command.label.8" style="push"> - - - - - - - - @@ -1733,4 +1662,10 @@ + + + + diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/KeyEditor.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/KeyEditor.java index 5fc0b2b9a..7b9a605cf 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/KeyEditor.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/KeyEditor.java @@ -83,6 +83,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled, @Override public void setFocus() { + getConversationHolder().commit(true); getConversationHolder().bind(); super.setFocus(); } diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/DeleteNodeOperation.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/DeleteNodeOperation.java index 3b4ae0d7a..f31a83125 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/DeleteNodeOperation.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/DeleteNodeOperation.java @@ -12,9 +12,12 @@ import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.ui.handlers.HandlerUtil; import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration; +import eu.etaxonomy.cdm.api.service.DeleteResult; import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService; import eu.etaxonomy.cdm.api.service.ITaxonService; import eu.etaxonomy.cdm.model.description.PolytomousKeyNode; +import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin; +import eu.etaxonomy.taxeditor.model.MessagingUtils; import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation; import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; import eu.etaxonomy.taxeditor.store.CdmStore; @@ -52,15 +55,27 @@ public class DeleteNodeOperation extends AbstractPostTaxonOperation { controller = (ICdmApplicationConfiguration) CdmStore.getCurrentApplicationConfiguration(); IPolytomousKeyNodeService service = controller.getPolytomousKeyNodeService(); - + DeleteResult result; if (node.getChildren().size()>0){ if(! MessageDialog.openQuestion(null, "Confirm deletion of children", "The selected node has children, do you want to delete them, too?")) { - service.delete(node.getUuid(), false); + result = service.delete(node.getUuid(), false); } else{ - service.delete(node.getUuid(), true); + result = service.delete(node.getUuid(), true); } } else{ - service.delete(node.getUuid(), true); + result = service.delete(node.getUuid(), true); + } + + if (!result.isOk() || result.getExceptions().size() > 0){ + Exception t = new Exception(); + if (result.getExceptions().size() >1){ + for (Exception e:result.getExceptions()){ + t.addSuppressed(e); + } + }else { + t = result.getExceptions().iterator().next(); + } + MessagingUtils.errorDialog("Exception occured. Delete not possible", getClass(),null, TaxeditorBulkeditorPlugin.PLUGIN_ID, t, true); } return postExecute(null); } diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java index 82964c8ff..e2a30d922 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java @@ -1016,21 +1016,5 @@ public class TransientOccurenceService implements IOccurrenceService { return defaultService.merge(arg0); } - /* (non-Javadoc) - * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#deleteDerivateHierarchy(java.util.UUID, eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator) - */ - @Override - public DeleteResult deleteDerivateHierarchy(UUID arg0, SpecimenDeleteConfigurator arg1) { - return defaultService.deleteDerivateHierarchy(arg0, arg1); - } - - /* (non-Javadoc) - * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#deleteSingleRead(java.util.UUID, java.util.UUID) - */ - @Override - public DeleteResult deleteSingleRead(UUID arg0, UUID arg1) { - return defaultService.deleteSingleRead(arg0, arg1); - } - } diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java index 407234ba7..b191647d8 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java @@ -1453,7 +1453,7 @@ public class TransientTaxonService implements ITaxonService { * {@inheritDoc} */ @Override - public UpdateResult moveSynonymToAnotherTaxon( + public SynonymRelationship moveSynonymToAnotherTaxon( SynonymRelationship oldSynonymRelation, UUID newTaxonUUID, boolean moveHomotypicGroup, SynonymRelationshipType newSynonymRelationshipType, @@ -1496,31 +1496,4 @@ public class TransientTaxonService implements ITaxonService { public DeleteResult deleteSynonym(UUID arg0, SynonymDeletionConfigurator arg1) { return defaultService.deleteSynonym(arg0, arg1); } - - /* (non-Javadoc) - * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeRelatedTaxonToSynonym(java.util.UUID, java.util.UUID, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType) - */ - @Override - public UpdateResult changeRelatedTaxonToSynonym(UUID arg0, UUID arg1, TaxonRelationshipType arg2, - SynonymRelationshipType arg3) throws DataChangeNoRollbackException { - return defaultService.changeRelatedTaxonToSynonym(arg0, arg1, arg2, arg3); - } - - /* (non-Javadoc) - * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeSynonymToAcceptedTaxon(java.util.UUID, java.util.UUID, boolean, boolean, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String) - */ - @Override - public Taxon changeSynonymToAcceptedTaxon(UUID arg0, UUID arg1, boolean arg2, boolean arg3, Reference arg4, - String arg5) throws HomotypicalGroupChangeException { - return defaultService.changeSynonymToAcceptedTaxon(arg0, arg1, arg2, arg3, arg4, arg5); - } - - /* (non-Javadoc) - * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeSynonymToRelatedTaxon(java.util.UUID, java.util.UUID, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String) - */ - @Override - public UpdateResult changeSynonymToRelatedTaxon(UUID arg0, UUID arg1, TaxonRelationshipType arg2, Reference arg3, - String arg4) { - return defaultService.changeSynonymToRelatedTaxon(arg0, arg1, arg2, arg3, arg4); - } } diff --git a/eu.etaxonomy.taxeditor.feature/feature.xml b/eu.etaxonomy.taxeditor.feature/feature.xml index 71062e2e8..0f59e5e90 100644 --- a/eu.etaxonomy.taxeditor.feature/feature.xml +++ b/eu.etaxonomy.taxeditor.feature/feature.xml @@ -114,18 +114,4 @@ version="0.0.0" unpack="false"/> - - - - diff --git a/eu.etaxonomy.taxeditor.molecular.lib/.classpath b/eu.etaxonomy.taxeditor.molecular.lib/.classpath deleted file mode 100644 index 1d66dd2b8..000000000 --- a/eu.etaxonomy.taxeditor.molecular.lib/.classpath +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/eu.etaxonomy.taxeditor.molecular.lib/.gitignore b/eu.etaxonomy.taxeditor.molecular.lib/.gitignore deleted file mode 100644 index e6066b230..000000000 --- a/eu.etaxonomy.taxeditor.molecular.lib/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/target -.settings/ diff --git a/eu.etaxonomy.taxeditor.molecular.lib/.project b/eu.etaxonomy.taxeditor.molecular.lib/.project deleted file mode 100644 index 45f118a13..000000000 --- a/eu.etaxonomy.taxeditor.molecular.lib/.project +++ /dev/null @@ -1,29 +0,0 @@ - - - eu.etaxonomy.taxeditor.molecular.lib - The Taxonomic Editor for EDIT's platform for - cybertaxonomy. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse. - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/eu.etaxonomy.taxeditor.molecular.lib/META-INF/MANIFEST.MF b/eu.etaxonomy.taxeditor.molecular.lib/META-INF/MANIFEST.MF deleted file mode 100644 index 3ee9c828b..000000000 --- a/eu.etaxonomy.taxeditor.molecular.lib/META-INF/MANIFEST.MF +++ /dev/null @@ -1,164 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: eu.etaxonomy.taxeditor.molecular.lib -Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular.lib;singleton:=true -Bundle-Version: 3.8.0.qualifier -Bundle-ClassPath: ., - lib/bioinfweb-commons-bio-2-SNAPSHOT.jar, - lib/bioinfweb-commons-core-2-SNAPSHOT.jar, - lib/bioinfweb-commons-swing-2-SNAPSHOT.jar, - lib/bioinfweb-commons-swt-2-SNAPSHOT.jar, - lib/core-1.9.2-SNAPSHOT.jar, - lib/libralign-biojava1-0-SNAPSHOT.jar, - lib/libralign-core-0-SNAPSHOT.jar, - lib/libralign-swt-0-SNAPSHOT.jar, - lib/sequencing-1.9.2-SNAPSHOT.jar, - lib/tic-core-2-SNAPSHOT.jar, - lib/tic-swt-2-SNAPSHOT.jar -Export-Package: info.bioinfweb.commons, - info.bioinfweb.commons.appversion, - info.bioinfweb.commons.beans, - info.bioinfweb.commons.bio, - info.bioinfweb.commons.changemonitor, - info.bioinfweb.commons.collections, - info.bioinfweb.commons.collections.observable, - info.bioinfweb.commons.graphics, - info.bioinfweb.commons.io, - info.bioinfweb.commons.log, - info.bioinfweb.commons.progress, - info.bioinfweb.commons.swing, - info.bioinfweb.commons.swing.scrollpaneselector, - info.bioinfweb.commons.swt, - info.bioinfweb.commons.text, - info.bioinfweb.libralign, - info.bioinfweb.libralign.actions, - info.bioinfweb.libralign.alignmentarea, - info.bioinfweb.libralign.alignmentarea.content, - info.bioinfweb.libralign.alignmentarea.label, - info.bioinfweb.libralign.alignmentarea.order, - info.bioinfweb.libralign.alignmentarea.paintsettings, - info.bioinfweb.libralign.alignmentarea.rowsarea, - info.bioinfweb.libralign.alignmentarea.selection, - info.bioinfweb.libralign.alignmentarea.tokenpainter, - info.bioinfweb.libralign.dataarea, - info.bioinfweb.libralign.dataarea.implementations, - info.bioinfweb.libralign.dataarea.implementations.charset, - info.bioinfweb.libralign.dataarea.implementations.pherogram, - info.bioinfweb.libralign.editsettings, - info.bioinfweb.libralign.model, - info.bioinfweb.libralign.model.adapters, - info.bioinfweb.libralign.model.concatenated, - info.bioinfweb.libralign.model.data, - info.bioinfweb.libralign.model.events, - info.bioinfweb.libralign.model.exception, - info.bioinfweb.libralign.model.factory, - info.bioinfweb.libralign.model.factory.continuous, - info.bioinfweb.libralign.model.implementations, - info.bioinfweb.libralign.model.implementations.swingundo, - info.bioinfweb.libralign.model.implementations.swingundo.edits, - info.bioinfweb.libralign.model.implementations.swingundo.edits.sequence, - info.bioinfweb.libralign.model.implementations.swingundo.edits.token, - info.bioinfweb.libralign.model.implementations.translation, - info.bioinfweb.libralign.model.tokenset, - info.bioinfweb.libralign.model.tokenset.continuous, - info.bioinfweb.libralign.multiplealignments, - info.bioinfweb.libralign.pherogram, - info.bioinfweb.libralign.pherogram.distortion, - info.bioinfweb.libralign.pherogram.model, - info.bioinfweb.libralign.pherogram.provider, - info.bioinfweb.libralign.pherogram.view, - info.bioinfweb.tic, - info.bioinfweb.tic.exception, - info.bioinfweb.tic.input, - info.bioinfweb.tic.toolkit, - info.bioinfweb.tic.toolkit.layoutdata, - org.biojava.bibliography, - org.biojava.bio, - org.biojava.bio.alignment, - org.biojava.bio.annodb, - org.biojava.bio.chromatogram, - org.biojava.bio.chromatogram.graphic, - org.biojava.bio.dist, - org.biojava.bio.dp, - org.biojava.bio.dp.onehead, - org.biojava.bio.dp.twohead, - org.biojava.bio.molbio, - org.biojava.bio.program, - org.biojava.bio.program.abi, - org.biojava.bio.program.blast2html, - org.biojava.bio.program.fastq, - org.biojava.bio.program.formats, - org.biojava.bio.program.gff, - org.biojava.bio.program.gff3, - org.biojava.bio.program.hmmer, - org.biojava.bio.program.homologene, - org.biojava.bio.program.indexdb, - org.biojava.bio.program.phred, - org.biojava.bio.program.scf, - org.biojava.bio.program.ssaha, - org.biojava.bio.program.ssbind, - org.biojava.bio.program.tagvalue, - org.biojava.bio.program.unigene, - org.biojava.bio.program.xff, - org.biojava.bio.program.xml, - org.biojava.bio.proteomics, - org.biojava.bio.proteomics.aaindex, - org.biojava.bio.search, - org.biojava.bio.seq, - org.biojava.bio.seq.db, - org.biojava.bio.seq.db.biofetch, - org.biojava.bio.seq.db.emblcd, - org.biojava.bio.seq.db.flat, - org.biojava.bio.seq.distributed, - org.biojava.bio.seq.filter, - org.biojava.bio.seq.homol, - org.biojava.bio.seq.impl, - org.biojava.bio.seq.io, - org.biojava.bio.seq.io.agave, - org.biojava.bio.seq.io.filterxml, - org.biojava.bio.seq.io.game, - org.biojava.bio.seq.io.game12, - org.biojava.bio.seq.projection, - org.biojava.bio.symbol, - org.biojava.bio.taxa, - org.biojava.directory, - org.biojava.naming, - org.biojava.ontology, - org.biojava.ontology.io, - org.biojava.ontology.obo, - org.biojava.stats.svm, - org.biojava.stats.svm.tools, - org.biojava.utils, - org.biojava.utils.automata, - org.biojava.utils.cache, - org.biojava.utils.candy, - org.biojava.utils.io, - org.biojava.utils.lsid, - org.biojava.utils.math, - org.biojava.utils.net, - org.biojava.utils.process, - org.biojava.utils.regex, - org.biojava.utils.stax, - org.biojava.utils.walker, - org.biojava.utils.xml, - org.biojavax, - org.biojavax.bio, - org.biojavax.bio.alignment, - org.biojavax.bio.alignment.blast, - org.biojavax.bio.db, - org.biojavax.bio.db.ncbi, - org.biojavax.bio.seq, - org.biojavax.bio.seq.io, - org.biojavax.bio.taxa, - org.biojavax.bio.taxa.io, - org.biojavax.ga, - org.biojavax.ga.exception, - org.biojavax.ga.functions, - org.biojavax.ga.impl, - org.biojavax.ga.util, - org.biojavax.ontology, - org.biojavax.utils, - org.jdesktop.swingx.scrollpaneselector -Bundle-ActivationPolicy: lazy -Import-Package: javax.swing -Require-Bundle: org.eclipse.swt diff --git a/eu.etaxonomy.taxeditor.molecular.lib/build.properties b/eu.etaxonomy.taxeditor.molecular.lib/build.properties deleted file mode 100644 index 97e80af18..000000000 --- a/eu.etaxonomy.taxeditor.molecular.lib/build.properties +++ /dev/null @@ -1,12 +0,0 @@ -bin.includes = META-INF/,\ - lib/bioinfweb-commons-bio-2-SNAPSHOT.jar,\ - lib/bioinfweb-commons-core-2-SNAPSHOT.jar,\ - lib/bioinfweb-commons-swing-2-SNAPSHOT.jar,\ - lib/bioinfweb-commons-swt-2-SNAPSHOT.jar,\ - lib/core-1.9.2-SNAPSHOT.jar,\ - lib/libralign-biojava1-0-SNAPSHOT.jar,\ - lib/libralign-core-0-SNAPSHOT.jar,\ - lib/libralign-swt-0-SNAPSHOT.jar,\ - lib/sequencing-1.9.2-SNAPSHOT.jar,\ - lib/tic-core-2-SNAPSHOT.jar,\ - lib/tic-swt-2-SNAPSHOT.jar diff --git a/eu.etaxonomy.taxeditor.molecular.lib/lib/.gitignore b/eu.etaxonomy.taxeditor.molecular.lib/lib/.gitignore deleted file mode 100644 index 0557829bf..000000000 --- a/eu.etaxonomy.taxeditor.molecular.lib/lib/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/*.jar diff --git a/eu.etaxonomy.taxeditor.molecular.lib/pom.xml b/eu.etaxonomy.taxeditor.molecular.lib/pom.xml deleted file mode 100644 index 5700ef85e..000000000 --- a/eu.etaxonomy.taxeditor.molecular.lib/pom.xml +++ /dev/null @@ -1,189 +0,0 @@ - - 4.0.0 - eu.etaxonomy.taxeditor - eu.etaxonomy.taxeditor.molecular.lib - eclipse-plugin - - - eu.etaxonomy - taxeditor-parent - 3.8.0-SNAPSHOT - - - - - - org.apache.maven.plugins - maven-dependency-plugin - 2.4 - - - copy-dependencies - validate - - copy-dependencies - - - libralign-swt, libralign-core, - bioinfweb-commons-swt, bioinfweb-commons-core, - bioinfweb-commons-bio, bioinfweb-commons-swing, - tic-core, libralign-biojava1, core, sequencing, tic-swt - lib - true - true - true - - - - - - - - - - - - - - - - - - - - - - org.apache.maven.plugins - maven-antrun-plugin - 1.7 - - - remove-existing-jars - clean - - run - - - - Remove all jars - - - - - - - - update-snapshot-jar-names - validate - - run - - - - Update jars to SNAPSHOT when build with - timestamp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - info.bioinfweb.libralign - libralign-core - 0-SNAPSHOT - - - info.bioinfweb.libralign - libralign-swt - 0-SNAPSHOT - - - info.bioinfweb.libralign - libralign-biojava1 - 0-SNAPSHOT - - - - info.bioinfweb.commons.java - bioinfweb-commons-swt - 2-SNAPSHOT - - - info.bioinfweb.commons.java - bioinfweb-commons-core - 2-SNAPSHOT - - - info.bioinfweb.commons.java - bioinfweb-commons-bio - 2-SNAPSHOT - - - info.bioinfweb.commons.java - bioinfweb-commons-swing - 2-SNAPSHOT - - - - info.bioinfweb.tic - tic-core - 2-SNAPSHOT - - - info.bioinfweb.tic - tic-swt - 2-SNAPSHOT - - - - org.biojava - core - 1.9.2 - - - org.biojava - sequencing - 1.9.2 - - - - - - bioinfweb-maven-repo - bioinfweb repository - http://bioinfweb.info/MavenRepository/ - - - - - diff --git a/eu.etaxonomy.taxeditor.molecular/.classpath b/eu.etaxonomy.taxeditor.molecular/.classpath deleted file mode 100644 index f14ba2c2e..000000000 --- a/eu.etaxonomy.taxeditor.molecular/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/eu.etaxonomy.taxeditor.molecular/.gitignore b/eu.etaxonomy.taxeditor.molecular/.gitignore deleted file mode 100644 index e6066b230..000000000 --- a/eu.etaxonomy.taxeditor.molecular/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/target -.settings/ diff --git a/eu.etaxonomy.taxeditor.molecular/.project b/eu.etaxonomy.taxeditor.molecular/.project deleted file mode 100644 index 3826881f3..000000000 --- a/eu.etaxonomy.taxeditor.molecular/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - eu.etaxonomy.taxeditor.molecular - Provides editors, views and operations for handling molecular data and alignments. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse. - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.pde.PluginNature - - diff --git a/eu.etaxonomy.taxeditor.molecular/META-INF/MANIFEST.MF b/eu.etaxonomy.taxeditor.molecular/META-INF/MANIFEST.MF deleted file mode 100644 index 38ab0a72c..000000000 --- a/eu.etaxonomy.taxeditor.molecular/META-INF/MANIFEST.MF +++ /dev/null @@ -1,18 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: Molecular Bundle -Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular;singleton:=true -Bundle-Version: 3.8.0.qualifier -Bundle-Activator: eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin -Require-Bundle: org.eclipse.ui, - org.eclipse.core.runtime, - org.eclipse.core.expressions, - org.eclipse.ui.ide, - eu.etaxonomy.taxeditor.bulkeditor, - eu.etaxonomy.taxeditor.cdmlib, - eu.etaxonomy.taxeditor.editor, - eu.etaxonomy.taxeditor.store, - eu.etaxonomy.taxeditor.molecular.lib -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Bundle-ActivationPolicy: lazy -Bundle-Vendor: EDIT diff --git a/eu.etaxonomy.taxeditor.molecular/OSGI-INF/l10n/plugin.properties b/eu.etaxonomy.taxeditor.molecular/OSGI-INF/l10n/plugin.properties deleted file mode 100644 index e2943e3fe..000000000 --- a/eu.etaxonomy.taxeditor.molecular/OSGI-INF/l10n/plugin.properties +++ /dev/null @@ -1,164 +0,0 @@ -#Properties file for taxeditor-editor -Bundle-Vendor.0 = EDIT -Bundle-Name.0 = EDIT Taxonomic Editor - Editor Bundle -command.name.17 = Set Basionym -command.name.18 = Remove Basionym -editor.name = Multipage Taxon Editor -editor.name.0 = Taxon Name Editor -editor.name.1 = Key -editor.name.2 = Polytomous Key Graph Editor -editor.name.3 = Polytomous Key List Editor -editor.name.4 = Cdm Authority Editor -editor.name.5 = Derivative View -view.name = Factual Data -view.name.0 = Uses -view.name.1 = Media -view.name.2 = Concept Relations -view.name.3 = Concept Graph -category.name = Taxonomic Editor -command.label = Reference -command.label.0 = Name -command.label.1 = Team -command.label.2 = Person -command.label.3 = Specimen -command.label.4 = Factual Data -command.label.5 = Media -command.label.6 = Concept -command.label.7 = Concept Graph -command.label.8 = Open Parent -menu.label = New -command.label.9 = Heterotypic Synonym -command.label.10 = Homotypic Synonym -command.label.11 = Synonym In Homotypical Group -menu.label.0 = Change To -command.label.12 = Accepted Taxon -command.label.13 = Synonym -command.label.14 = Misapplication -command.label.15 = Delete -command.label.16 = Delete All Empty Names -command.label.17 = Swap Synonym With Accepted -command.label.18 = Show Details -command.label.19 = Save -command.label.20 = New Node -command.label.21 = Delete -command.label.22 = Apply Layout -command.label.23 = New Key Number -command.label.24 = New Alternative -command.label.25 = Refresh Nodes -command.label.26 = Delete -command.label.27 = New Factual Data -menu.label.1 = New -command.label.28 = Move Description to Taxon -command.label.29 = Move Elements to Taxon -command.label.30 = Delete -command.label.31 = Save -menu.label.2 = New Derivative -command.label.32 = New Use -command.label.33 = New Use Summary -command.label.34 = New Use Record -command.label.35 = Delete -command.label.36 = Save -command.label.37 = New Image Gallery -command.label.38 = New Image -command.label.39 = Move Image Up In List -command.label.40 = Move Image Down In List -command.label.41 = Delete -command.label.42 = Save -menu.label.3 = New -command.label.43 = Open Related Concept -command.label.44 = Delete -command.label.45 = Edit Authorities -extension.name = Name Commands -category.name.0 = -- Name Editor -command.name = Open Parent -command.name.0 = Create Homotypic Synonym -command.name.1 = Create Heterotypic Synonym -command.name.2 = Create Synonym In Homotypical Group -command.name.3 = Change To Synonym -command.name.4 = Change To Accepted Taxon -command.name.5 = Change To Misapplication -command.name.6 = Swap Synonym With Accepted - -command.name.7 = Set Basionym / Original Combination -command.name.8 = Remove Basionym / Original Combination -command.name.9 = Delete All Empty Names -category.name.1 = -- Factual -command.name.10 = Create Description Element -command.name.11 = New Description -command.name.12 = Move Description Elements to Taxon -command.name.13 = Move Description to Taxon -category.name.2 = -- New Uses -command.name.14 = New Use -command.name.15 = New Use Summary -command.name.16 = New Use Record -category.name.3 = -- Media -command.name.19 = Move Image Down In List -command.name.20 = New Image Gallery -command.name.21 = New Image -command.name.22 = Move Image Up In List -category.name.4 = -- New Entity -command.name.23 = New Reference -command.name.24 = New Name -command.name.25 = New Team -command.name.26 = New Person -command.name.27 = New Specimen -category.name.5 = -- Polytomous Keys -command.name.28 = New Child Node -command.name.29 = New Sibling Node -command.name.30 = Refresh Node Numbering -command.name.31 = Apply Layout -category.name.6 = -- Concept Relations -command.name.32 = Create Concept Relation -command.name.33 = Open Related Concept -category.name.7 = -- Group -command.name.34 = Edit CDM Authorities -command.name.35 = Open Derivative View -scheme.description = The default key binding scheme for the Taxonomic Editor -scheme.name = Taxonomic Editor Default Key Bindings -editor.name.6 = Specimen Import Editor -editor.name.7 = Gbif Import Editor -editor.name.8 = Checklist Editor -view.name.4 = Specimen Import -view.name.5 = GBIF Specimen Import -command.label.46 = Name -command.label.47 = Reference -command.label.48 = Datasource -command.label.49 = Misapplication -command.label.50 = Use Existing Image -command.name.36 = Create Misapplication -command.name.37 = Use Existing Image -command.name.38 = Open Checklist Editor -command.name.39 = New Datasource -wizard.name = Specimen Search/Import -wizard.description = Queries data provider for specimens with specified parameters.\nNote: Query results are currently limited to 100. -command.name.40 = Validation -view.name.6 = Validation -marker.field.0 = Object Type -marker.field.1 = Object -marker.field.2 = Attribute -marker.field.3 = Problematic Value -marker.field.4 = Problem description -marker.field.5 = Validator -marker.field.6 = Entity Class -marker.field.7 = Entity Id -extension.name.0 = Validation Error -command.label.51 = Open in Specimen Editor -command.label.52 = Delete -command.label.53 = Create Field Unit -command.label.54 = Delete (with children) -command.tooltip = Show Only Individuals Associations -command.label.55 = Open Associated Specimens -command.name.41 = Show Only Individual Associations -command.name.42 = Open Taxon Editor -command.name.43 = Create Field Unit -command.name.44 = Deep Delete -command.name.46 = Move Synonym (Homotypical Group) to another Accepted Taxon -command.label.56 = Move Synonym (Homotypical Group) to another Accepted Taxon -markerContentGenerator.name = Validation Problems Marker Generator -command.name.45 = Delete -command.name.47 = Delete -commandParameter.name = taxonUUID -Bundle-Name = Editor Bundle -command.name.48 = delete -command.name.49 = delete -command.name.50 = delete \ No newline at end of file diff --git a/eu.etaxonomy.taxeditor.molecular/OSGI-INF/l10n/plugin_de.properties b/eu.etaxonomy.taxeditor.molecular/OSGI-INF/l10n/plugin_de.properties deleted file mode 100644 index 8c098c37d..000000000 --- a/eu.etaxonomy.taxeditor.molecular/OSGI-INF/l10n/plugin_de.properties +++ /dev/null @@ -1,156 +0,0 @@ -# Properties file for taxeditor-editor -Bundle-Vendor.0 = EDIT -Bundle-Name.0 = EDIT Taxonomischer Editor - Editor Bundle -command.name.17 = Setze Basionym -command.name.18 = Entferne Basionym -editor.name = Multipage Taxon Editor -editor.name.0 = Editor Taxonname -editor.name.1 = Bestimmungsschl\u00fcssel -editor.name.2 = Polytomer Bestimmungsschl\u00fcssel Graph Editor -editor.name.3 = Polytomer Bestimmungsschl\u00fcssel List Editor -editor.name.4 = CDM Rechtemanagement -editor.name.5 = Ansicht Derivate -view.name = Faktendaten -view.name.0 = Nutzung -view.name.1 = Medien -view.name.2 = Konzeptrelationen -view.name.3 = Konzeptgraph -category.name = Taxonomischer Editor -command.label = Referenz -command.label.0 = Name -command.label.1 = Team -command.label.2 = Person -command.label.3 = Beleg -command.label.4 = Faktendaten -command.label.5 = Medien -command.label.6 = Konzeptrelationen -command.label.7 = Konzeptgraph -command.label.8 = \u00d6ffne Parent -menu.label = Neue -command.label.9 = Heterotypisches Synonym -command.label.10 = Homotypisches Synonym -command.label.11 = Synonym in Homotypischer Gruppe -menu.label.0 = \u00c4ndere zu -command.label.12 = Akzeptiertes Taxon -command.label.13 = Synonym -command.label.14 = Misapplication -command.label.15 = L\u00f6schen -command.label.16 = L\u00f6sche alle leeren Namen -command.label.17 = Tausche Synonym mit akzeptiertem Namen -command.label.18 = Zeige Details -command.label.19 = Speichern -command.label.20 = Neue Knoten -command.label.21 = L\u00f6schen -command.label.22 = Wende Layout an -command.label.23 = Neue Bestimmungsschl\u00fcsselnummer -command.label.24 = Neue Alternative -command.label.25 = Erneuere Knoten -command.label.26 = L\u00f6schen -command.label.27 = Neue Faktendaten -menu.label.1 = Neue -command.label.28 = Verschiebe Eigenschaften zu Taxon -command.label.29 = Verschiebe Elemente zu Taxon -command.label.30 = L\u00f6schen -command.label.31 = Speichern -menu.label.2 = Neue Derivate -command.label.32 = Neue Nutzung -command.label.33 = Neue Zusammenfassung -command.label.34 = Neuer Nutzungsdatensatz -command.label.35 = L\u00f6schen -command.label.36 = Speichern -command.label.37 = Neue Bildergalerie -command.label.38 = Neues Bild -command.label.39 = Bild nach oben -command.label.40 = Bild nach unten -command.label.41 = L\u00f6schen -command.label.42 = Speichern -menu.label.3 = Neue -command.label.43 = \u00d6ffne verbundenes Konzept -command.label.44 = L\u00f6schen -command.label.45 = Bearbeite Rechte -extension.name = Namensbefehle -category.name.0 = -- Namenseditor -command.name = \u00d6ffne Elter -command.name.0 = Erstelle homotypisches Synonym -command.name.1 = Erstelle heterotypisches Synonym -command.name.2 = Erstelle Synonym in homotypischer Gruppe -command.name.3 = \u00c4ndere zu Synonym -command.name.4 = \u00c4ndere zu akzeptiertem Taxon -command.name.5 = \u00c4ndere zu Misapplication -command.name.6 = Tausche Synonym mit akzeptiertem Namen - -command.name.7 = Setze Basionym / Originalkombination -command.name.8 = Entferne Basionym / Originalkombination -command.name.9 = L\u00f6sche alle leeren Namen -category.name.1 = -- Fakten -command.name.10 = Erstelle Beschreibungselement -command.name.11 = Neue Beschreibung -command.name.12 = Bewege Beschreibungselement zu Taxon -command.name.13 = Bewege Beschreibung zu Taxon -category.name.2 = -- Neue Nutzung -command.name.14 = Neue Nutzung -command.name.15 = Neue Zusammenfassung -command.name.16 = Neuer Nutzungsdatensatz -category.name.3 = -- Media -command.name.19 = Bewege Bild nach unten -command.name.20 = Neue Bildergalerie -command.name.21 = Neues Bild -command.name.22 = Bewege Bild nach oben -category.name.4 = -- Neue Entit\u00e4t -command.name.23 = Neue Referenz -command.name.24 = Neuer Name -command.name.25 = Neues Team -command.name.26 = Neue Person -command.name.27 = Neuer Beleg -category.name.5 = -- Polytomer Bestimmungsschl\u00fcssel -command.name.28 = Neue Kinderknoten -command.name.29 = Neuer Geschwisterknoten -command.name.30 = Knotennummerierung aktualisieren -command.name.31 = Layout anwenden -category.name.6 = -- Konzeptbeziehungen -command.name.32 = Erstelle Konzeptrelationen -command.name.33 = \u00d6ffne verbundenes Konzept -category.name.7 = -- Gruppe -command.name.34 = Bearbeite CDM Rechte -command.name.35 = \u00d6ffne Derivate Ansicht -scheme.description = Die Standard Tastenkombinationsschema f\u00fcr den Taxonomischen Editor -scheme.name = Taxonomic Editor Standard Tastenkombinationen -editor.name.6 = Specimen Import Editor -editor.name.7 = GBIF Import Editor -editor.name.8 = Checklist Editor -view.name.4 = Specimen Import -view.name.5 = GBIF Specimen Import -command.label.46 = Name -command.label.47 = Referenz -command.label.48 = Datenquelle -command.label.49 = Misapplication -command.label.50 = Benutze vorhandenes Bild -command.name.36 = Erstelle Misapplication -command.name.37 = Benutze vorhandenes Bild -command.name.38 = \u00d6ffne Checklist Editor -command.name.39 = Neue Datenquelle -wizard.name = Specimen Suche/Import -wizard.description = Sendet eine Anfrage mit den eingegebenen Parametern an den Datenprovider.\nHinweis: Die Anzahl der Anfrageergebnisse sind auf 100 begrenzt. -command.name.40 = Validierung -view.name.6 = Validierung -marker.field.0 = Objekttyp -marker.field.1 = Objekt -marker.field.2 = Attribut -marker.field.3 = Problematischer Wert -marker.field.4 = Problembeschreibung -marker.field.5 = Validierer -marker.field.6 = Entit�tsklasse -marker.field.7 = Entit�ts ID -extension.name.0 = Validierungs-Fehler -command.label.51 = \u00d6ffne Specimen-Editor -command.label.52 = L\u00f6schen -command.label.53 = Neue Field Unit -command.label.54 = L\u00f6schen (mit Kindern) -command.tooltip = Nur Individuals Associations anzeigen -command.label.55 = \u00d6ffne zugeh\u00f6rige Specimens -command.name.41 = Nur Individuals Associations anzeigen -command.name.42 = \u00d6ffne Taxon Editor -command.name.43 = Neue Field Unit -command.name.44 = L\u00f6schen (mit Kindern) -command.name.46 = Verschiebe Synonym(Homotypische Gruppe) zu neuem Akzeptierten Taxon -command.label.56 = Verschiebe Synonym(Homotypische Gruppe) zu neuem Akzeptierten Taxon \ No newline at end of file diff --git a/eu.etaxonomy.taxeditor.molecular/OSGI-INF/l10n/plugin_en.properties b/eu.etaxonomy.taxeditor.molecular/OSGI-INF/l10n/plugin_en.properties deleted file mode 100644 index 897175a94..000000000 --- a/eu.etaxonomy.taxeditor.molecular/OSGI-INF/l10n/plugin_en.properties +++ /dev/null @@ -1,141 +0,0 @@ -#Properties file for taxeditor-editor -Bundle-Vendor.0 = EDIT -Bundle-Name.0 = EDIT Taxonomic Editor - Editor Bundle -command.name.17 = Set Basionym -command.name.18 = Remove Basionym -editor.name = Multipage Taxon Editor -editor.name.0 = Taxon Name Editor -editor.name.1 = Key -editor.name.2 = Polytomous Key Graph Editor -editor.name.3 = Polytomous Key List Editor -editor.name.4 = Cdm Authority Editor -editor.name.5 = Derivate View -view.name = Factual Data -view.name.0 = Uses -view.name.1 = Media -view.name.2 = Concept Relations -view.name.3 = Concept Graph -category.name = Taxonomic Editor -command.label = Reference -command.label.0 = Name -command.label.1 = Team -command.label.2 = Person -command.label.3 = Specimen -command.label.4 = Factual Data -command.label.5 = Media -command.label.6 = Concept -command.label.7 = Concept Graph -command.label.8 = Open Parent -menu.label = New -command.label.9 = Heterotypic Synonym -command.label.10 = Homotypic Synonym -command.label.11 = Synonym In Homotypical Group -menu.label.0 = Change To -command.label.12 = Accepted Taxon -command.label.13 = Synonym -command.label.14 = Misapplication -command.label.15 = Delete -command.label.16 = Delete All Empty Names -command.label.17 = Swap Synonym With Accepted -command.label.18 = Show Details -command.label.19 = Save -command.label.20 = New Node -command.label.21 = Delete -command.label.22 = Apply Layout -command.label.23 = New Key Number -command.label.24 = New Alternative -command.label.25 = Refresh Nodes -command.label.26 = Delete -command.label.27 = New Factual Data -menu.label.1 = New -command.label.28 = Move Description to Taxon -command.label.29 = Move Elements to Taxon -command.label.30 = Delete -command.label.31 = Save -menu.label.2 = New Derivate -command.label.32 = New Use -command.label.33 = New Use Summary -command.label.34 = New Use Record -command.label.35 = Delete -command.label.36 = Save -command.label.37 = New Image Gallery -command.label.38 = New Image -command.label.39 = Move Image Up In List -command.label.40 = Move Image Down In List -command.label.41 = Delete -command.label.42 = Save -menu.label.3 = New -command.label.43 = Open Related Concept -command.label.44 = Delete -command.label.45 = Edit Authorities -extension.name = Name Commands -category.name.0 = -- Name Editor -command.name = Open Parent -command.name.0 = Create Homotypic Synonym -command.name.1 = Create Heterotypic Synonym -command.name.2 = Create Synonym In Homotypical Group -command.name.3 = Change To Synonym -command.name.4 = Change To Accepted Taxon -command.name.5 = Change To Misapplication -command.name.6 = Swap Synonym With Accepted -command.name.7 = Set Basionym / Original Combination -command.name.8 = Remove Basionym / Original Combination -command.name.9 = Delete All Empty Names -category.name.1 = -- Factual -command.name.10 = Create Description Element -command.name.11 = New Description -command.name.12 = Move Description Elements to Taxon -command.name.13 = Move Description to Taxon -category.name.2 = -- New Uses -command.name.14 = New Use -command.name.15 = New Use Summary -command.name.16 = New Use Record -category.name.3 = -- Media -command.name.19 = Move Image Down In List -command.name.20 = New Image Gallery -command.name.21 = New Image -command.name.22 = Move Image Up In List -category.name.4 = -- New Entity -command.name.23 = New Reference -command.name.24 = New Name -command.name.25 = New Team -command.name.26 = New Person -command.name.27 = New Specimen -category.name.5 = -- Polytomous Keys -command.name.28 = New Child Node -command.name.29 = New Sibling Node -command.name.30 = Refresh Node Numbering -command.name.31 = Apply Layout -category.name.6 = -- Concept Relations -command.name.32 = Create Concept Relation -command.name.33 = Open Related Concept -category.name.7 = -- Group -command.name.34 = Edit CDM Authorities -command.name.35 = Open Derivate View -scheme.description = The default key binding scheme for the Taxonomic Editor -scheme.name = Taxonomic Editor Default Key Bindingseditor.name.6 = Specimen Import Editor -editor.name.7 = Gbif Import Editor -editor.name.8 = Checklist Editor -view.name.4 = Specimen Import -view.name.5 = GBIF Specimen Import -command.label.46 = Name -command.label.47 = Reference -command.label.48 = Datasource -command.label.49 = Misapplication -command.label.50 = Use Existing Image -command.name.36 = Create Misapplication -command.name.37 = Use Existing Image -command.name.38 = Open Checklist Editor -command.name.39 = New Datasource -wizard.name = Specimen Search/Import -wizard.description = Queries data provider for specimens with specified parameters.\nNote: Query results are currently limited to 100. -command.name.40 = Validation -view.name.6 = Validation -marker.field.0 = Object Type -marker.field.1 = Object -marker.field.2 = Attribute -marker.field.3 = Problematic Value -marker.field.4 = Problem description -marker.field.5 = Validator -marker.field.6 = Entity Class -marker.field.7 = Entity Id \ No newline at end of file diff --git a/eu.etaxonomy.taxeditor.molecular/build.properties b/eu.etaxonomy.taxeditor.molecular/build.properties deleted file mode 100644 index e4bf8ac38..000000000 --- a/eu.etaxonomy.taxeditor.molecular/build.properties +++ /dev/null @@ -1,4 +0,0 @@ -bin.includes = META-INF/,\ - plugin.xml,\ - icons/,\ - OSGI-INF/ diff --git a/eu.etaxonomy.taxeditor.molecular/icons/insert-16x16.png b/eu.etaxonomy.taxeditor.molecular/icons/insert-16x16.png deleted file mode 100644 index 6c9bce7ad..000000000 Binary files a/eu.etaxonomy.taxeditor.molecular/icons/insert-16x16.png and /dev/null differ diff --git a/eu.etaxonomy.taxeditor.molecular/icons/overwrite-16x16.png b/eu.etaxonomy.taxeditor.molecular/icons/overwrite-16x16.png deleted file mode 100644 index d2aa9e2fb..000000000 Binary files a/eu.etaxonomy.taxeditor.molecular/icons/overwrite-16x16.png and /dev/null differ diff --git a/eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-left-16x16.png b/eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-left-16x16.png deleted file mode 100644 index d36e4795a..000000000 Binary files a/eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-left-16x16.png and /dev/null differ diff --git a/eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-left-disabled-16x16.png b/eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-left-disabled-16x16.png deleted file mode 100644 index b7a23fa81..000000000 Binary files a/eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-left-disabled-16x16.png and /dev/null differ diff --git a/eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-right-16x16.png b/eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-right-16x16.png deleted file mode 100644 index 4d10fb11e..000000000 Binary files a/eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-right-16x16.png and /dev/null differ diff --git a/eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-right-disabled-16x16.png b/eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-right-disabled-16x16.png deleted file mode 100644 index 3f9fa7c98..000000000 Binary files a/eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-right-disabled-16x16.png and /dev/null differ diff --git a/eu.etaxonomy.taxeditor.molecular/plugin.xml b/eu.etaxonomy.taxeditor.molecular/plugin.xml deleted file mode 100644 index 20e8acae0..000000000 --- a/eu.etaxonomy.taxeditor.molecular/plugin.xml +++ /dev/null @@ -1,309 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/eu.etaxonomy.taxeditor.molecular/pom.xml b/eu.etaxonomy.taxeditor.molecular/pom.xml deleted file mode 100644 index 1e91c23b5..000000000 --- a/eu.etaxonomy.taxeditor.molecular/pom.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - eu.etaxonomy - taxeditor-parent - 3.8.0-SNAPSHOT - - - 4.0.0 - eu.etaxonomy.taxeditor.molecular - eclipse-plugin - - Molecular Bundle - Provides editors, views and operations for handling molecular data and alignments - - diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/TaxeditorMolecularPlugin.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/TaxeditorMolecularPlugin.java deleted file mode 100644 index 77818edfd..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/TaxeditorMolecularPlugin.java +++ /dev/null @@ -1,44 +0,0 @@ -package eu.etaxonomy.taxeditor.molecular; - -import org.eclipse.ui.plugin.AbstractUIPlugin; -import org.osgi.framework.BundleContext; - -/** - * The activator class controls the plug-in life cycle - */ -public class TaxeditorMolecularPlugin extends AbstractUIPlugin { - - // The plug-in ID - public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.molecular"; //$NON-NLS-1$ - - // The shared instance - private static TaxeditorMolecularPlugin plugin; - - /** - * The constructor - */ - public TaxeditorMolecularPlugin() { - } - - @Override - public void start(BundleContext context) throws Exception { - super.start(context); - plugin = this; - } - - @Override - public void stop(BundleContext context) throws Exception { - plugin = null; - super.stop(context); - } - - /** - * Returns the shared instance - * - * @return the shared instance - */ - public static TaxeditorMolecularPlugin getDefault() { - return plugin; - } - -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/AlignmentEditor.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/AlignmentEditor.java deleted file mode 100644 index 315e92df1..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/AlignmentEditor.java +++ /dev/null @@ -1,721 +0,0 @@ -// $Id$ -/** -* Copyright (C) 2014 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.molecular.editor; - - -import info.bioinfweb.libralign.alignmentarea.AlignmentArea; -import info.bioinfweb.libralign.alignmentarea.selection.SelectionModel; -import info.bioinfweb.libralign.alignmentarea.tokenpainter.NucleotideTokenPainter; -import info.bioinfweb.libralign.dataarea.implementations.ConsensusSequenceArea; -import info.bioinfweb.libralign.dataarea.implementations.SequenceIndexArea; -import info.bioinfweb.libralign.dataarea.implementations.pherogram.PherogramArea; -import info.bioinfweb.libralign.editsettings.EditSettingsChangeEvent; -import info.bioinfweb.libralign.editsettings.EditSettingsListener; -import info.bioinfweb.libralign.model.AlignmentModel; -import info.bioinfweb.libralign.model.AlignmentModelChangeListener; -import info.bioinfweb.libralign.model.AlignmentModelUtils; -import info.bioinfweb.libralign.model.adapters.StringAdapter; -import info.bioinfweb.libralign.model.events.SequenceChangeEvent; -import info.bioinfweb.libralign.model.events.SequenceRenamedEvent; -import info.bioinfweb.libralign.model.events.TokenChangeEvent; -import info.bioinfweb.libralign.model.implementations.PackedAlignmentModel; -import info.bioinfweb.libralign.model.tokenset.CharacterTokenSet; -import info.bioinfweb.libralign.model.tokenset.TokenSet; -import info.bioinfweb.libralign.multiplealignments.AlignmentAreaList; -import info.bioinfweb.libralign.multiplealignments.MultipleAlignmentsContainer; -import info.bioinfweb.libralign.pherogram.model.PherogramAreaModel; -import info.bioinfweb.libralign.pherogram.model.ShiftChange; -import info.bioinfweb.libralign.pherogram.provider.BioJavaPherogramProvider; -import info.bioinfweb.libralign.pherogram.provider.PherogramProvider; -import info.bioinfweb.libralign.pherogram.provider.ReverseComplementPherogramProvider; -import info.bioinfweb.tic.SWTComponentFactory; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.net.URI; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - -import org.biojava.bio.chromatogram.ChromatogramFactory; -import org.biojava.bio.chromatogram.UnsupportedChromatogramFormatException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.IActionBars; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IEditorSite; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.commands.ICommandService; -import org.eclipse.ui.part.EditorPart; - -import eu.etaxonomy.cdm.api.conversation.ConversationHolder; -import eu.etaxonomy.cdm.api.service.molecular.ISequenceService; -import eu.etaxonomy.cdm.model.media.MediaUtils; -import eu.etaxonomy.cdm.model.molecular.Sequence; -import eu.etaxonomy.cdm.model.molecular.SequenceString; -import eu.etaxonomy.cdm.model.molecular.SingleRead; -import eu.etaxonomy.cdm.model.molecular.SingleReadAlignment; -import eu.etaxonomy.cdm.model.molecular.SingleReadAlignment.Shift; -import eu.etaxonomy.taxeditor.model.MessagingUtils; -import eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin; -import eu.etaxonomy.taxeditor.molecular.handler.ToggleInsertOverwriteHandler; -import eu.etaxonomy.taxeditor.molecular.handler.ToggleLeftRightInsertionHandler; -import eu.etaxonomy.taxeditor.store.CdmStore; -import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider; - - - -/** - * Editor component to edit a contig alignment used to combine different overlapping pherograms from Sanger sequencing to - * a consensus sequence. - *

- * The contained GUI components used to edit the alignment come from LibrAlign. - * - * @author Ben Stöver - * @author pplitzner - * @date 04.08.2014 - */ -public class AlignmentEditor extends EditorPart { - public static final String ID = "eu.etaxonomy.taxeditor.molecular.AlignmentEditor"; - - public static final int READS_AREA_INDEX = 1; - public static final int EDITABLE_CONSENSUS_AREA_INDEX = READS_AREA_INDEX + 1; - public static final int CONSENSUS_HINT_AREA_INDEX = EDITABLE_CONSENSUS_AREA_INDEX + 1; - public static final int PHEROGRAM_AREA_INDEX = 0; - public static final int CONSENSUS_DATA_AREA_INDEX = 0; - public static final String DEFAULT_READ_NAME_PREFIX = "Read "; - public static final String CONSENSUS_NAME = "Consensus"; - - - private final ConversationHolder conversationHolder; - - private final AlignmentModelChangeListener DIRTY_LISTENER = new AlignmentModelChangeListener() { - @Override - public void afterTokenChange(TokenChangeEvent e) { - setDirty(); - } - - @Override - public void afterSequenceRenamed(SequenceRenamedEvent e) { - setDirty(); - } - - @Override - public void afterSequenceChange(SequenceChangeEvent e) { - setDirty(); - } - - @Override - public void afterProviderChanged(AlignmentModel oldProvider, - AlignmentModel newProvider) { // Not expected. - - setDirty(); - } - }; - - private MultipleAlignmentsContainer alignmentsContainer = null; - private final Map cdmMap = new TreeMap(); //TODO Move this to ContigSequenceDataProvider - private boolean dirty = false; - - - public AlignmentEditor() { - super(); - conversationHolder = CdmStore.createConversation(); - //conversationHolder = null; - } - - - private void refreshToolbarElement(String id) { - ICommandService commandService = - (ICommandService)PlatformUI.getWorkbench().getActiveWorkbenchWindow().getService(ICommandService.class); - if (commandService != null) { - commandService.refreshElements(id, Collections.EMPTY_MAP); - } - } - - - private void registerEditSettingListener(MultipleAlignmentsContainer container) { - container.getEditSettings().addListener(new EditSettingsListener() { - @Override - public void workingModeChanged(EditSettingsChangeEvent e) {} // Currently nothing to do - - @Override - public void insertLeftInDataAreaChanged(EditSettingsChangeEvent e) { - updateStatusBar(); - refreshToolbarElement(ToggleLeftRightInsertionHandler.COMMAND_ID); - } - - @Override - public void insertChanged(EditSettingsChangeEvent e) { - updateStatusBar(); - refreshToolbarElement(ToggleInsertOverwriteHandler.COMMAND_ID); - } - }); - } - - - private AlignmentArea createIndexArea(MultipleAlignmentsContainer container, AlignmentArea labeledArea) { - AlignmentArea result = new AlignmentArea(container); - result.setAllowVerticalScrolling(false); - result.getDataAreas().getTopAreas().add(new SequenceIndexArea(result.getContentArea(), labeledArea)); - return result; - } - - - private AlignmentArea createEditableAlignmentArea(MultipleAlignmentsContainer container, boolean allowVerticalScrolling) { - AlignmentArea result = new AlignmentArea(container); - result.setAllowVerticalScrolling(allowVerticalScrolling); - - CharacterTokenSet tokenSet = CharacterTokenSet.newDNAInstance(); //TODO Should NUCLEOTIDE be used instead? - AlignmentModel provider = new PackedAlignmentModel(tokenSet); - result.setAlignmentModel(provider, false); - provider.getChangeListeners().add(DIRTY_LISTENER); - result.getPaintSettings().getTokenPainterList().set(0, new NucleotideTokenPainter()); - - return result; - } - - - private AlignmentArea createConsensusHintArea(MultipleAlignmentsContainer container, - AlignmentArea labeledArea) { - - AlignmentArea result = new AlignmentArea(container); - result.setAllowVerticalScrolling(false); - result.getDataAreas().getBottomAreas().add( - new ConsensusSequenceArea(result.getContentArea(), labeledArea)); - return result; - } - - - private MultipleAlignmentsContainer getAlignmentsContainer() { - if (alignmentsContainer == null) { - alignmentsContainer = new MultipleAlignmentsContainer(); - - AlignmentAreaList list = alignmentsContainer.getAlignmentAreas(); - AlignmentArea readsArea = createEditableAlignmentArea(alignmentsContainer, true); - list.add(createIndexArea(alignmentsContainer, readsArea)); - list.add(readsArea); // Make sure READS_AREA_INDEX is correct. - list.add(createEditableAlignmentArea(alignmentsContainer, false)); // Make sure COMSENSUS_AREA_INDEX is correct. - list.add(createConsensusHintArea(alignmentsContainer, readsArea)); - - registerEditSettingListener(alignmentsContainer); - } - return alignmentsContainer; - } - - - public AlignmentArea getReadsArea() { - return getAlignmentsContainer().getAlignmentAreas().get(READS_AREA_INDEX); - } - - - private AlignmentArea getEditableConsensusArea() { - return getAlignmentsContainer().getAlignmentAreas().get(EDITABLE_CONSENSUS_AREA_INDEX); - } - - - public boolean hasPherogram(int sequenceID) { - return getReadsArea().getDataAreas().getSequenceAreas(sequenceID).size() > PHEROGRAM_AREA_INDEX; - } - - - public PherogramArea getPherogramArea(int sequenceID) { - if (hasPherogram(sequenceID)) { - return (PherogramArea)getReadsArea().getDataAreas().getSequenceAreas(sequenceID).get(PHEROGRAM_AREA_INDEX); - } - else { - return null; - } - } - - - private ConsensusSequenceArea getConsensusHintDataArea() { - return (ConsensusSequenceArea)getAlignmentsContainer().getAlignmentAreas(). - get(CONSENSUS_HINT_AREA_INDEX).getDataAreas().getBottomAreas(). - get(CONSENSUS_DATA_AREA_INDEX); - } - - - @Deprecated //TODO Remove as soon as testing period is over - private void createTestContents() { - // Just for testing: - try { - addRead(new File("D:/Users/BenStoever/ownCloud/Dokumente/Projekte/EDITor/Quelltexte/LibrAlign branch/Repository/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR430_JR-P01.ab1").toURI(), false); - //addRead(new File("D:/Users/BenStoever/ownCloud/Dokumente/Projekte/EDITor/Quelltexte/LibrAlign branch/Repository/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR444_JR-P05.ab1").toURI(), false); - addRead(new File("D:/Users/BenStoever/ownCloud/Dokumente/Projekte/EDITor/Quelltexte/LibrAlign branch/Repository/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/Test_qualityScore.scf").toURI(), false); - - // Add test consensus sequence: - AlignmentModel consensusModel = getEditableConsensusArea().getAlignmentModel(); - int id = consensusModel.addSequence(CONSENSUS_NAME); - Collection tokens = new ArrayList(); // First save tokens in a collection to avoid GUI updated for each token. - tokens.add(consensusModel.getTokenSet().tokenByRepresentation("A")); - tokens.add(consensusModel.getTokenSet().tokenByRepresentation("C")); - tokens.add(consensusModel.getTokenSet().tokenByRepresentation("G")); - tokens.add(consensusModel.getTokenSet().tokenByRepresentation("T")); - consensusModel.insertTokensAt(id, 0, tokens); - } - catch (Exception e) { - throw new RuntimeException(e); - } - } - - - private void readCDMData(Sequence sequenceNode) { - //TODO If called from somewhere else than createPartControl() the editorInput needs to be checked and previous contents need to be cleared (or updated). - - // Add reads: - for (SingleReadAlignment singleReadAlignment : sequenceNode.getSingleReadAlignments()) { - try { - SingleRead pherogramInfo = singleReadAlignment.getSingleRead(); - URI uri = null; - if (pherogramInfo.getPherogram() != null) { - uri = MediaUtils.getFirstMediaRepresentationPart(pherogramInfo.getPherogram()).getUri(); - } - int id = addRead(DerivateLabelProvider.getDerivateText(pherogramInfo, conversationHolder), - uri, - singleReadAlignment.isReverseComplement(), - singleReadAlignment.getEditedSequence(), - singleReadAlignment.getFirstSeqPosition(), - singleReadAlignment.getLeftCutPosition(), - singleReadAlignment.getRightCutPosition(), - singleReadAlignment.getShifts()); - cdmMap.put(id, singleReadAlignment); - } - catch (Exception e) { // Usually due to an error while trying to read the pherogram (e.g. due to an unsupported format or an invalid URI). - MessagingUtils.errorDialog("Error", null, "A single read was skipped because of the following error:\n\n" + - e.getLocalizedMessage(), TaxeditorMolecularPlugin.PLUGIN_ID, e, false); - } - } - - // Set consensus sequence: - AlignmentModel consensusProvider = getEditableConsensusArea().getAlignmentModel(); - int id = consensusProvider.addSequence(CONSENSUS_NAME); - consensusProvider.insertTokensAt(id, 0, AlignmentModelUtils.charSequenceToTokenList( - sequenceNode.getConsensusSequence().getString(), consensusProvider.getTokenSet())); - //TODO Can the consensus sequence also be null? / Should it be created here, if nothing is in the DB? - } - - - /* (non-Javadoc) - * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite) - */ - @Override - public void createPartControl(Composite parent) { - SWTComponentFactory.getInstance().getSWTComponent(getAlignmentsContainer(), parent, SWT.NONE); - updateStatusBar(); - - if (getEditorInput() instanceof AlignmentEditorInput) { - if (((AlignmentEditorInput)getEditorInput()).getSequenceNodeUuid() != null) { - Sequence sequenceNode = CdmStore.getService(ISequenceService.class).load(((AlignmentEditorInput)getEditorInput()).getSequenceNodeUuid()); - //re-load into the current session if it is already persisted in the DB - if(sequenceNode!=null && sequenceNode.getId()!=0){ - sequenceNode = CdmStore.getService(ISequenceService.class).load(sequenceNode.getUuid()); - } - readCDMData(sequenceNode); - } - else { - createTestContents(); // This case will removed after the test phase and an exception should probably be thrown. - } - } - else { - throw new IllegalArgumentException("The editor input must have the type " + - AlignmentEditorInput.class.getCanonicalName()); //TODO What should be done here? - } - } - - - private void updateStatusBar() { - IActionBars bars = getEditorSite().getActionBars(); - bars.getStatusLineManager().setMessage("Edit mode: " + - (getReadsArea().getEditSettings().isInsert() ? "Insert" : "Overwrite") + " " + - "Insertion in pherogram: " + - (getReadsArea().getEditSettings().isInsertLeftInDataArea() ? "Left" : "Right")); - } - - - private SingleReadAlignment.Shift[] convertToCDMShifts(PherogramAreaModel model) { - Iterator iterator = model.shiftChangeIterator(); - List shifts = new ArrayList(); - while (iterator.hasNext()) { - ShiftChange shiftChange = iterator.next(); - shifts.add(new SingleReadAlignment.Shift(shiftChange.getBaseCallIndex(), shiftChange.getShiftChange())); - } - return shifts.toArray(new Shift[]{}); - } - - - /* (non-Javadoc) - * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor) - */ - @Override - public void doSave(IProgressMonitor monitor) { - if (getEditorInput() instanceof AlignmentEditorInput) { - String taskName = "Saving alignment"; - monitor.beginTask(taskName, 3); - - //re-loading sequence to avoid session conflicts - Sequence sequenceNode = CdmStore.getService(ISequenceService.class).load(((AlignmentEditorInput)getEditorInput()).getSequenceNodeUuid()); - StringAdapter stringProvider = new StringAdapter(getEditableConsensusArea().getAlignmentModel(), false); // Throws an exception if a token has more than one character. - - // Write consensus sequence: - SequenceString consensusSequenceObj = sequenceNode.getConsensusSequence(); - String newConsensusSequence = stringProvider.getSequence( - getEditableConsensusArea().getAlignmentModel().sequenceIDByName(CONSENSUS_NAME)); - if (consensusSequenceObj == null) { - sequenceNode.setConsensusSequence(SequenceString.NewInstance(newConsensusSequence)); - } - else { - consensusSequenceObj.setString(newConsensusSequence); - } - - // Write single reads: - stringProvider.setUnderlyingProvider(getReadsArea().getAlignmentModel()); - sequenceNode.getSingleReadAlignments().retainAll(cdmMap.values()); // Remove all reads that are not in the alignment anymore. - Iterator iterator = getReadsArea().getAlignmentModel().sequenceIDIterator(); - while (iterator.hasNext()) { - int id = iterator.next(); - SingleReadAlignment singleRead = cdmMap.get(id); - if (singleRead == null) { - throw new InternalError("Creating new reads from AlignmentEditor not implemented."); - //TODO Create new read object. => Shall it be allowed to add reads in the alignment editor which are not represented in the CDM tree before the alignment editor is saved? - //singleRead = SingleReadAlignment.NewInstance(consensusSequence, singleRead, shifts, editedSequence); - } - - singleRead.setEditedSequence(stringProvider.getSequence(id)); - - PherogramArea pherogramArea = getPherogramArea(id); - if (pherogramArea != null) { - PherogramAreaModel model = pherogramArea.getModel(); - singleRead.setReverseComplement(model.getPherogramProvider() instanceof ReverseComplementPherogramProvider); // Works only if ReverseComplementPherogramProvider instances are not nested. - singleRead.setShifts(convertToCDMShifts(getPherogramArea(id).getModel())); - singleRead.setFirstSeqPosition(model.getFirstSeqPos()); - singleRead.setLeftCutPosition(model.getLeftCutPosition()); - singleRead.setRightCutPosition(model.getRightCutPosition()); - } - } - - if (!conversationHolder.isBound()) { - conversationHolder.bind(); - } - monitor.worked(1); - - // Commit the conversation and start a new transaction immediately: - conversationHolder.commit(true); - monitor.worked(1); - - dirty = false; - monitor.worked(1); - monitor.done(); - firePropertyChange(PROP_DIRTY); - } - else { - //TODO Throw exception as soon as testing period which allows unlinked AlignmentEditor is over. - } - } - - - /* (non-Javadoc) - * @see org.eclipse.ui.part.EditorPart#doSaveAs() - */ - @Override - public void doSaveAs() {} - - - /* (non-Javadoc) - * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput) - */ - @Override - public void init(IEditorSite site, IEditorInput input) throws PartInitException { - setSite(site); - setInput(input); - } - - - /* (non-Javadoc) - * @see org.eclipse.ui.part.EditorPart#isDirty() - */ - @Override - public boolean isDirty() { - return dirty; - } - - - private void setDirty() { - dirty = true; - firePropertyChange(IEditorPart.PROP_DIRTY); - } - - - /* (non-Javadoc) - * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed() - */ - @Override - public boolean isSaveAsAllowed() { - return false; // "Save as" not allowed. - } - - - @Override - public void setFocus() { - if(conversationHolder!=null){ - conversationHolder.bind(); - } - } - - - public boolean isInsertMode() { - return getAlignmentsContainer().getEditSettings().isInsert(); - } - - - public boolean isInsertLeftInPherogram() { - return getAlignmentsContainer().getEditSettings().isInsertLeftInDataArea(); - } - - - public void toggleLeftRightInsertionInPherogram() { - getAlignmentsContainer().getEditSettings().toggleInsertLeftInDataArea(); - } - - - public void toggleInsertOverwrite() { - getAlignmentsContainer().getEditSettings().toggleInsert(); - } - - - private String cutPherogram(boolean left) { - SelectionModel selection = getReadsArea().getSelection(); - if (selection.getCursorHeight() != 1) { - return "Cutting pherograms is only possible if exactly one row is selected."; - } - else { - PherogramArea pherogramArea = - getPherogramArea(getReadsArea().getSequenceOrder().idByIndex(selection.getCursorRow())); - if (pherogramArea == null) { - return "There is no pherogram attached to the current sequence."; - } - else { - if (left) { - if (pherogramArea.setLeftCutPositionBySelection()) { - return null; - } - else { - return "The left end of the selection lies outside the pherogram attached to this sequence."; - } - } - else { - if (pherogramArea.setRightCutPositionBySelection()) { - return null; - } - else { - return "The right end of the selection lies outside the pherogram attached to this sequence."; - } - } - } - } - } - - - public String cutPherogramLeft() { - return cutPherogram(true); - } - - - public String cutPherogramRight() { - return cutPherogram(false); - } - - - public void reverseComplementSelectedSequences() { - SelectionModel selection = getReadsArea().getSelection(); - AlignmentModel model = getReadsArea().getAlignmentModel(); - for (int row = selection.getFirstRow(); row < selection.getFirstRow() + selection.getCursorHeight(); row++) { - int sequenceID = getReadsArea().getSequenceOrder().idByIndex(row); - PherogramArea area = getPherogramArea(sequenceID); - PherogramAreaModel pherogramAlignmentModel = area.getModel(); - AlignmentModelUtils.reverseComplement(model, sequenceID, - pherogramAlignmentModel.editableIndexByBaseCallIndex( - pherogramAlignmentModel.getLeftCutPosition()).getBeforeValidIndex(), - pherogramAlignmentModel.editableIndexByBaseCallIndex( - pherogramAlignmentModel.getRightCutPosition()).getAfterValidIndex()); - pherogramAlignmentModel.reverseComplement(); - } - } - - - /** - * Recreates the whole consensus sequence from all single read sequences. The previous consensus - * sequence is overwritte. - */ - @SuppressWarnings("unchecked") - public void createConsensusSequence() { - ConsensusSequenceArea area = getConsensusHintDataArea(); - AlignmentModel model = (AlignmentModel)getEditableConsensusArea().getAlignmentModel(); - int sequenceID = model.sequenceIDIterator().next(); // There is always one sequence contained. - int length = getReadsArea().getAlignmentModel().getMaxSequenceLength(); - - Collection tokens = new ArrayList(length); - for (int column = 0; column < length; column++) { - tokens.add(model.getTokenSet().tokenByRepresentation(area.getConsensusToken(column))); - } - - model.removeTokensAt(sequenceID, 0, model.getSequenceLength(sequenceID)); - model.insertTokensAt(sequenceID, 0, tokens); - } - - - /** - * Updates the current consensus sequence by replacing gaps by the according consensus tokens - * calculated from the single read sequences and extends the consensus sequence if necessary. - */ - @SuppressWarnings("unchecked") - public void updateConsensusSequence() { - ConsensusSequenceArea area = getConsensusHintDataArea(); - AlignmentModel model = (AlignmentModel)getEditableConsensusArea().getAlignmentModel(); - TokenSet tokenSet = model.getTokenSet(); - int sequenceID = model.sequenceIDIterator().next(); // There is always one sequence contained. - int currentConsensusLength = model.getSequenceLength(sequenceID); - int overallLength = getReadsArea().getAlignmentModel().getMaxSequenceLength(); - - // Replace gaps by new information: - for (int column = 0; column < currentConsensusLength; column++) { - if (tokenSet.isGapToken(model.getTokenAt(sequenceID, column))) { - T newToken = tokenSet.tokenByRepresentation(area.getConsensusToken(column)); - if (!tokenSet.isGapToken(newToken)) { - model.setTokenAt(sequenceID, column, newToken); - } - } - } - - // Append additional tokens: - if (overallLength > currentConsensusLength) { - Collection tokens = new ArrayList(overallLength); - for (int column = currentConsensusLength; column < overallLength; column++) { - tokens.add(tokenSet.tokenByRepresentation(area.getConsensusToken(column))); - } - model.appendTokens(sequenceID, tokens); - } - } - - - public static PherogramProvider readPherogram(URI uri) throws IOException, UnsupportedChromatogramFormatException { - PherogramProvider result; - InputStream stream = uri.toURL().openStream(); - try { - result = new BioJavaPherogramProvider(ChromatogramFactory.create(stream)); - } - finally { - stream.close(); - } - return result; - } - - - private String newReadName() { - int index = 1; - while (getReadsArea().getAlignmentModel().sequenceIDByName(DEFAULT_READ_NAME_PREFIX + index) - != AlignmentModel.NO_SEQUENCE_FOUND) { - - index++; - } - return DEFAULT_READ_NAME_PREFIX + index; - } - - - public void addRead(URI pherogramURI, boolean reverseComplemented) throws IOException, UnsupportedChromatogramFormatException { - addRead(newReadName(), pherogramURI, reverseComplemented, null, null, null, null, null); - } - - - /** - * Adds a new sequence with attached phergram data area to the reads alignment. - *

- * If {@code null} is specified as {@code editedSequence} the base call sequence from the pherogram will - * be set as the edited sequence. If {@code null} is specified as {@code shifts} no shifts between the edited - * and the base calls sequence are assumed. - * - * @param name the name of the new sequence - * @param pherogramURI the URI where the associated pherogram file is located - * @param reverseComplemented Specify {@code true} here, if the reverse complement of the pherogram data should - * be added, {@code false} otherwise. - * @param editedSequence the edited version of the base call sequence (May be {@code null}.) - * @param shifts the alignment information that links the edited and the base call sequence (May be {@code null}.) - * @return the sequence ID of the added read - * @throws IOException if an error occurred when trying to read the pherogram file - * @throws UnsupportedChromatogramFormatException if the format of the pherogram file is not supported - */ - public int addRead(String name, URI pherogramURI, boolean reverseComplemented, String editedSequence, - Integer firstSeqPos, Integer leftCutPos, Integer rightCutPos, SingleReadAlignment.Shift[] shifts) - throws IOException, UnsupportedChromatogramFormatException { - - AlignmentModel provider = getReadsArea().getAlignmentModel(); - PherogramProvider pherogramProvider = null; - if (pherogramURI != null) { - pherogramProvider = readPherogram(pherogramURI); // Must happen before a sequence is added, because it might throw an exception. - if (reverseComplemented) { - pherogramProvider = new ReverseComplementPherogramProvider(pherogramProvider); - } - } - - // Create sequence: - provider.addSequence(name); - int id = provider.sequenceIDByName(name); - - // Set edited sequence: - Collection tokens = null; // First save tokens in a collection to avoid GUI updated for each token. - if (editedSequence != null) { - tokens = AlignmentModelUtils.charSequenceToTokenList(editedSequence, provider.getTokenSet()); - } - else if (pherogramProvider != null) { // Copy base call sequence into alignment: - tokens = new ArrayList(); - for (int i = 0; i < pherogramProvider.getSequenceLength(); i++) { - tokens.add(provider.getTokenSet().tokenByRepresentation( - Character.toString(pherogramProvider.getBaseCall(i)))); - } - setDirty(); - } - - if (tokens != null) { // If either an edited sequence or a pherogram URI was provided. - provider.insertTokensAt(id, 0, tokens); - // Create pherogram area: - PherogramArea pherogramArea = new PherogramArea(getReadsArea().getContentArea(), - new PherogramAreaModel(pherogramProvider)); - - // Set position properties and shifts: - PherogramAreaModel model = pherogramArea.getModel(); - if ((firstSeqPos != null) && (leftCutPos != null)) { - model.setFirstSeqLeftCutPos(firstSeqPos, leftCutPos); - } - if (rightCutPos != null) { - model.setRightCutPosition(rightCutPos); - } - if ((shifts != null) && (shifts.length > 0)) { - for (int i = 0; i < shifts.length; i++) { - model.addShiftChange(shifts[i].position, shifts[i].shift); - } - setDirty(); - } - - // Add pherogram area to GUI: - pherogramArea.addMouseListener(new PherogramMouseListener(pherogramArea)); - getReadsArea().getDataAreas().getSequenceAreas(id).add(pherogramArea); - } - - return id; - } -} \ No newline at end of file diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/AlignmentEditorInput.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/AlignmentEditorInput.java deleted file mode 100644 index b82362551..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/AlignmentEditorInput.java +++ /dev/null @@ -1,138 +0,0 @@ -// $Id$ -/** -* Copyright (C) 2014 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.molecular.editor; - - -import java.util.UUID; - -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IPersistableElement; - - - -/** - * @author pplitzner - * @author Ben Stöver - * @date 04.08.2014 - */ -public class AlignmentEditorInput implements IEditorInput { - private static final String name = "AlignmentEditor"; - - - private final UUID sequenceNodeUuid; - - - public AlignmentEditorInput(UUID sequenceNodeUuid) { - super(); - this.sequenceNodeUuid = sequenceNodeUuid; - } - - - /* (non-Javadoc) - * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class) - */ - @Override - public Object getAdapter(Class adapter) { - // TODO Auto-generated method stub - return null; - } - - - /* (non-Javadoc) - * @see org.eclipse.ui.IEditorInput#exists() - */ - @Override - public boolean exists() { - // TODO Auto-generated method stub - return false; - } - - - /* (non-Javadoc) - * @see org.eclipse.ui.IEditorInput#getImageDescriptor() - */ - @Override - public ImageDescriptor getImageDescriptor() { - // TODO Auto-generated method stub - return null; - } - - - /* (non-Javadoc) - * @see org.eclipse.ui.IEditorInput#getName() - */ - @Override - public String getName() { - return name; - } - - - /* (non-Javadoc) - * @see org.eclipse.ui.IEditorInput#getPersistable() - */ - @Override - public IPersistableElement getPersistable() { - return null; - } - - - /* (non-Javadoc) - * @see org.eclipse.ui.IEditorInput#getToolTipText() - */ - @Override - public String getToolTipText() { - return name; - } - - - /** - * Returns the {@link UUID} of the sequence CDM node that should be edited by the {@link AlignmentEditor} this object - * is used with. - * - * @return the uuid of the CDM node to work on - */ - public UUID getSequenceNodeUuid() { - return sequenceNodeUuid; - } - - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result - + ((sequenceNodeUuid == null) ? 0 : sequenceNodeUuid.hashCode()); - return result; - } - - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - AlignmentEditorInput other = (AlignmentEditorInput) obj; - if (sequenceNodeUuid == null) { - if (other.sequenceNodeUuid != null) { - return false; - } - } else if (!sequenceNodeUuid.equals(other.sequenceNodeUuid)) { - return false; - } - return true; - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/PherogramMouseListener.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/PherogramMouseListener.java deleted file mode 100644 index 71e2c9acd..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/PherogramMouseListener.java +++ /dev/null @@ -1,56 +0,0 @@ -/** -* 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.molecular.editor; - - -import info.bioinfweb.libralign.dataarea.implementations.pherogram.PherogramArea; -import info.bioinfweb.tic.input.TICMouseAdapter; -import info.bioinfweb.tic.input.TICMouseEvent; - -import org.eclipse.ui.PartInitException; - -import eu.etaxonomy.taxeditor.model.MessagingUtils; -import eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin; -import eu.etaxonomy.taxeditor.molecular.handler.ShowPherogramHandler; - - - -/** - * Listens to mouse events on data areas displaying a pherogram in {@link AlignmentEditor}. - * - * @author Ben Stöver - * @date 25.11.2014 - */ -public class PherogramMouseListener extends TICMouseAdapter { - private final PherogramArea area; - - - public PherogramMouseListener(PherogramArea area) { - super(); - this.area = area; - } - - - @Override - public boolean mousePressed(TICMouseEvent event) { - if (event.getClickCount() == 2) { // Double click - try { - ShowPherogramHandler.showPherogram(area.getModel()); - } - catch (PartInitException e) { - MessagingUtils.errorDialog("Unable to create pherogram view", null, e.getLocalizedMessage(), - TaxeditorMolecularPlugin.PLUGIN_ID, e, false); //TODO set pluginID - } - return true; - } - else { - return false; - } - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/PherogramViewPart.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/PherogramViewPart.java deleted file mode 100644 index 40c04705f..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/PherogramViewPart.java +++ /dev/null @@ -1,68 +0,0 @@ -/** -* 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.molecular.editor; - - -import info.bioinfweb.libralign.pherogram.PherogramFormats.QualityOutputType; -import info.bioinfweb.libralign.pherogram.model.PherogramComponentModel; -import info.bioinfweb.libralign.pherogram.view.PherogramView; -import info.bioinfweb.tic.SWTComponentFactory; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.part.ViewPart; - - - -/** - * Component that allows to view a pherogram without the distortion due to aligning it to a sequence as in - * {@link AlignmentEditor}. - * - * @author Ben Stöver - * @date Nov 20, 2014 - */ -public class PherogramViewPart extends ViewPart { - public static final String ID = "eu.etaxonomy.taxeditor.molecular.PherogramView"; - - private PherogramView pherogramView = null; - - - public static PherogramViewPart createView(PherogramComponentModel model) throws PartInitException { - PherogramViewPart view = (PherogramViewPart)PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(ID); - view.getPherogramView().getTraceCurveView().setModel(model); - view.getPherogramView().assignSize(); - return view; - } - - - public PherogramView getPherogramView() { - if (pherogramView == null) { - pherogramView = new PherogramView(); - pherogramView.getTraceCurveView().getFormats().setShowProbabilityValues(true); - pherogramView.getTraceCurveView().setHorizontalScale(1); - pherogramView.getTraceCurveView().setVerticalScale(100); - pherogramView.getTraceCurveView().getFormats().setQualityOutputType(QualityOutputType.NONE); //TODO Make this user defined - pherogramView.getTraceCurveView().getFormats().setShowProbabilityValues(false); - } - return pherogramView; - } - - - @Override - public void createPartControl(Composite parent) { - SWTComponentFactory.getInstance().getSWTComponent(getPherogramView(), parent, SWT.NONE); - getPherogramView().assignSize(); - } - - - @Override - public void setFocus() {} // nothing to do -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AbstractAlignmentEditorHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AbstractAlignmentEditorHandler.java deleted file mode 100644 index 0c8a6edb1..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AbstractAlignmentEditorHandler.java +++ /dev/null @@ -1,43 +0,0 @@ -// $Id$ -/** -* Copyright (C) 2015 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.molecular.handler; - - -import org.eclipse.core.commands.AbstractHandler; -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.ui.IEditorPart; - -import eu.etaxonomy.taxeditor.model.AbstractUtility; -import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor; - - - - -/** - * Abstract implementation for all handlers triggering actions in an active instance of - * {@link AlignmentEditor}. - * - * @author Ben Stöver - * @date 19.06.2015 - */ -public abstract class AbstractAlignmentEditorHandler extends AbstractHandler { - @Override - public Object execute(ExecutionEvent event) throws ExecutionException { - IEditorPart activeEditor = AbstractUtility.getActiveEditor(); - if (activeEditor instanceof AlignmentEditor) { - doExecute(event, (AlignmentEditor)activeEditor); - } - return null; - } - - - public abstract void doExecute(ExecutionEvent event, AlignmentEditor editor) throws ExecutionException; -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AbstractPherogramComponentHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AbstractPherogramComponentHandler.java deleted file mode 100644 index 55c24e32a..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AbstractPherogramComponentHandler.java +++ /dev/null @@ -1,60 +0,0 @@ -// $Id$ -/** -* Copyright (C) 2015 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.molecular.handler; - - -import info.bioinfweb.libralign.alignmentarea.AlignmentArea; -import info.bioinfweb.libralign.dataarea.implementations.pherogram.PherogramArea; -import info.bioinfweb.libralign.pherogram.PherogramComponent; - -import java.util.Iterator; - -import org.eclipse.core.commands.AbstractHandler; -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.ui.IWorkbenchPart; - -import eu.etaxonomy.taxeditor.model.AbstractUtility; -import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor; -import eu.etaxonomy.taxeditor.molecular.editor.PherogramViewPart; - - - -/** - * Abstract handler implementation allows to performs the concrete operation either on an instance of - * {@link PherogramViewPart} or all {@link AlignmentArea}s inside an instance of {@link AlignmentEditor}. - * - * @author Ben Stöver - * @date 23.06.2015 - */ -public abstract class AbstractPherogramComponentHandler extends AbstractHandler { - @Override - public Object execute(ExecutionEvent event) throws ExecutionException { - IWorkbenchPart activePart = AbstractUtility.getActivePart(); - - if (activePart instanceof AlignmentEditor) { - AlignmentEditor editor = (AlignmentEditor)activePart; - Iterator idIterator = editor.getReadsArea().getAlignmentModel().sequenceIDIterator(); - while (idIterator.hasNext()) { - PherogramArea area = editor.getPherogramArea(idIterator.next()); - if (area != null) { - doExecute(event, area); - } - } - } - else if (activePart instanceof PherogramViewPart) { - doExecute(event, ((PherogramViewPart)activePart).getPherogramView().getTraceCurveView()); - } - return null; - } - - - public abstract void doExecute(ExecutionEvent event, PherogramComponent component) throws ExecutionException; -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ChangePherogramQualityOutputType.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ChangePherogramQualityOutputType.java deleted file mode 100644 index a5fba9470..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ChangePherogramQualityOutputType.java +++ /dev/null @@ -1,31 +0,0 @@ -// $Id$ -/** -* Copyright (C) 2015 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.molecular.handler; - - -import info.bioinfweb.libralign.pherogram.PherogramComponent; - -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; - - - -/** - * Switches between the quality output types available for components displaying pherograms. - * - * @author Ben Stöver - * @date 19.06.2015 - */ -public class ChangePherogramQualityOutputType extends AbstractPherogramComponentHandler { - @Override - public void doExecute(ExecutionEvent event, PherogramComponent component) throws ExecutionException { - component.getFormats().changeQualityOutputType(); - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/CreateConsensusSequenceHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/CreateConsensusSequenceHandler.java deleted file mode 100644 index a95de504b..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/CreateConsensusSequenceHandler.java +++ /dev/null @@ -1,34 +0,0 @@ -/** -* 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.molecular.handler; - - -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; - -import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor; - - - - -/** - * Handler that creates the consensus sequence from all single read sequences in the active instance - * of {@link AlignmentEditor}. A previously present consensus sequence will be overwritten. - * - * @author Ben Stöver - * @date 19.06.2015 - * @see UpdateConsensusSequenceHandler - * @see AlignmentEditor#createConsensusSequence() - */ -public class CreateConsensusSequenceHandler extends AbstractAlignmentEditorHandler { - @Override - public void doExecute(ExecutionEvent event, AlignmentEditor editor) throws ExecutionException { - editor.createConsensusSequence(); - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/CutPherogramLeftHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/CutPherogramLeftHandler.java deleted file mode 100644 index 955dbae08..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/CutPherogramLeftHandler.java +++ /dev/null @@ -1,37 +0,0 @@ -// $Id$ -/** -* Copyright (C) 2015 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.molecular.handler; - - -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; - -import eu.etaxonomy.taxeditor.model.MessagingUtils; -import eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin; -import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor; - - - -/** - * Handler that cuts the base call sequence of a pherogram attached to the current sequence on the left - * of the current selection or cursor position. - * - * @author Ben Stöver - * @date 15.06.2015 - */ -public class CutPherogramLeftHandler extends AbstractAlignmentEditorHandler { - @Override - public void doExecute(ExecutionEvent event, AlignmentEditor editor) throws ExecutionException { - String errorMessage = editor.cutPherogramLeft(); - if (errorMessage != null) { - MessagingUtils.errorDialog("Unable to cut base call sequence", this, errorMessage, TaxeditorMolecularPlugin.PLUGIN_ID, null, false); - } - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/CutPherogramRightHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/CutPherogramRightHandler.java deleted file mode 100644 index dd8bc90eb..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/CutPherogramRightHandler.java +++ /dev/null @@ -1,37 +0,0 @@ -// $Id$ -/** -* Copyright (C) 2015 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.molecular.handler; - - -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; - -import eu.etaxonomy.taxeditor.model.MessagingUtils; -import eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin; -import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor; - - - -/** - * Handler that cuts the base call sequence of a pherogram attached to the current sequence on the right - * of the current selection or cursor position. - * - * @author BenStoever - * @date 15.06.2015 - */ -public class CutPherogramRightHandler extends AbstractAlignmentEditorHandler { - @Override - public void doExecute(ExecutionEvent event, AlignmentEditor editor) throws ExecutionException { - String errorMessage = editor.cutPherogramRight(); - if (errorMessage != null) { - MessagingUtils.errorDialog("Unable to cut base call sequence", this, errorMessage, TaxeditorMolecularPlugin.PLUGIN_ID, null, false); - } - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/EditSequenceHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/EditSequenceHandler.java deleted file mode 100644 index 69597f13d..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/EditSequenceHandler.java +++ /dev/null @@ -1,46 +0,0 @@ -package eu.etaxonomy.taxeditor.molecular.handler; - - -import org.eclipse.core.commands.AbstractHandler; -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.TreeNode; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.handlers.HandlerUtil; - -import eu.etaxonomy.cdm.model.molecular.Sequence; -import eu.etaxonomy.taxeditor.editor.EditorUtil; -import eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin; -import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor; -import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditorInput; - - - -/** - * Opens the alignment editor from the CDM tree. - * - * @author Ben Stöver - * @author pplitzner - */ -public class EditSequenceHandler extends AbstractHandler { - - org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(EditSequenceHandler.class); - - @Override - public Object execute(ExecutionEvent event) throws ExecutionException { - ISelection currentSelection = HandlerUtil.getCurrentSelection(event); - TreeNode treeNodeOfSelection = EditorUtil.getTreeNodeOfSelection(currentSelection); - if(treeNodeOfSelection != null && treeNodeOfSelection.getValue() instanceof Sequence){ - AlignmentEditorInput input = new AlignmentEditorInput(((Sequence)treeNodeOfSelection.getValue()).getUuid()); //TODO Should there always be a new instance created here? What if the specified CDM node is already opened in an AlignmentEditor? => Possible create Singleton that keeps instances by sequence objects in a map. - try { - TaxeditorMolecularPlugin.getDefault().getWorkbench() - .getActiveWorkbenchWindow().getActivePage().openEditor(input, AlignmentEditor.ID); - } - catch (PartInitException e) { - logger.error("Could not open AlignmentEditor", e); - } - } - return null; - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/HandlerTools.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/HandlerTools.java deleted file mode 100644 index 11d92e690..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/HandlerTools.java +++ /dev/null @@ -1,40 +0,0 @@ -// $Id$ -/** -* Copyright (C) 2015 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.molecular.handler; - - -import java.net.URL; - -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Path; -import org.eclipse.jface.resource.ImageDescriptor; - -import eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin; - - - -/** - * Implements shared functionality for handler implementations using tool bar icons. - * - * @author Ben Stöver - * @date 15.06.2015 - */ -public class HandlerTools { //TODO Move this class or method somewhere else? - public static ImageDescriptor createImageDescriptor(String iconName) { - URL url = FileLocator.find(TaxeditorMolecularPlugin.getDefault().getBundle(), - new Path("icons/" + iconName), null); - if (url != null) { - return ImageDescriptor.createFromURL(url); - } - else { - throw new InternalError("Icon \"" + iconName + "\" could not be loaded."); //TODO Throw other type of exception? - } - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/LoadPherogramHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/LoadPherogramHandler.java deleted file mode 100644 index 97e1b972e..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/LoadPherogramHandler.java +++ /dev/null @@ -1,70 +0,0 @@ -/** -* 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.molecular.handler; - - -import java.io.File; -import java.io.IOException; - -import org.biojava.bio.chromatogram.UnsupportedChromatogramFormatException; -import org.eclipse.core.commands.AbstractHandler; -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.swt.widgets.FileDialog; -import org.eclipse.ui.IEditorPart; - -import eu.etaxonomy.taxeditor.model.AbstractUtility; -import eu.etaxonomy.taxeditor.model.MessagingUtils; -import eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin; -import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor; - - - -/** - * Handler that loads an additional read into the contig alignment displayed by an instance of {@link AlignmentEditor}. - * - * @author Ben Stöver - * @author pplitzner - */ -public class LoadPherogramHandler extends AbstractHandler { - //TODO Change so that also URIs which do not point to files can be specified. - - /* (non-Javadoc) - * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent) - */ - @Override - public Object execute(ExecutionEvent event) throws ExecutionException { - IEditorPart activeEditor = AbstractUtility.getActiveEditor(); - if (activeEditor instanceof AlignmentEditor) { - AlignmentEditor alignmentEditor = (AlignmentEditor)activeEditor; - - FileDialog fileDialog = new FileDialog(alignmentEditor.getSite().getShell()); - fileDialog.setText("Import pherogram into contig alignment"); - fileDialog.setFilterNames(new String[]{"All supported formats", "AB1 pherogram files", "SCF pherogram files", "All files"}); - fileDialog.setFilterExtensions(new String[]{"*.ab1;*.scf", "*.ab1", "*.scf", "*.*"}); - - String path = fileDialog.open(); - if (path != null) { - try { - alignmentEditor.addRead(new File(path).toURI(), false); - } - catch (UnsupportedChromatogramFormatException e) { - MessagingUtils.errorDialog("Unsupported format", this, "The format of the pherogram file \"" + path + - "\" is not supported. (Only AB1 and SCF are supported.)", TaxeditorMolecularPlugin.PLUGIN_ID, e, false); //TODO set pluginID - } - catch (IOException e) { - MessagingUtils.errorDialog("Unsupported format", this, - "An IO error occurred while trying to read the file \"" + path + "\".", - TaxeditorMolecularPlugin.PLUGIN_ID, e, false); //TODO set pluginID - } - } - } - return null; - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ReverseComplementHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ReverseComplementHandler.java deleted file mode 100644 index 99e738828..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ReverseComplementHandler.java +++ /dev/null @@ -1,31 +0,0 @@ -/** -* 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.molecular.handler; - - -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; - -import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor; - - - - -/** - * Reverse complements the single read sequence in an active {@link AlignmentEditor}, where the alignment cursor - * is currently located. - * - * @author Ben Stöver - */ -public class ReverseComplementHandler extends AbstractAlignmentEditorHandler { - @Override - public void doExecute(ExecutionEvent event, AlignmentEditor editor) throws ExecutionException { - editor.reverseComplementSelectedSequences(); - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ShowPherogramHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ShowPherogramHandler.java deleted file mode 100644 index f4c658084..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ShowPherogramHandler.java +++ /dev/null @@ -1,66 +0,0 @@ -package eu.etaxonomy.taxeditor.molecular.handler; - - -import info.bioinfweb.libralign.pherogram.model.PherogramComponentModel; - -import java.net.URI; - -import org.eclipse.core.commands.AbstractHandler; -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.TreeNode; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.handlers.HandlerUtil; - -import eu.etaxonomy.cdm.model.media.MediaUtils; -import eu.etaxonomy.cdm.model.molecular.SingleRead; -import eu.etaxonomy.taxeditor.editor.EditorUtil; -import eu.etaxonomy.taxeditor.model.MessagingUtils; -import eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin; -import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor; -import eu.etaxonomy.taxeditor.molecular.editor.PherogramViewPart; - - - -/** - * Displays an undistorted pherogram with {@link PherogramViewPart}. - * - * @author Ben Stöver - * - */ -public class ShowPherogramHandler extends AbstractHandler { - public static void showPherogram(PherogramComponentModel model) throws PartInitException { - PherogramViewPart.createView(model); - } - - - @Override - public Object execute(ExecutionEvent event) throws ExecutionException { - ISelection currentSelection = HandlerUtil.getCurrentSelection(event); - TreeNode treeNodeOfSelection = EditorUtil.getTreeNodeOfSelection(currentSelection); - if (treeNodeOfSelection != null && treeNodeOfSelection.getValue() instanceof SingleRead) { - //TODO Can the parent node (containing the cut positions) be extracted from SingleRead? - try { - SingleRead singleRead = (SingleRead)treeNodeOfSelection.getValue(); - URI uri = null; - if (singleRead.getPherogram() != null) { // Pherogram objects without URI are possible. - uri = MediaUtils.getFirstMediaRepresentationPart(singleRead.getPherogram()).getUri(); - } - - if (uri == null) { - MessagingUtils.messageDialog("No pherogram available", this, - "The selected read does not have an associated pherogram."); - } - else { - showPherogram(new PherogramComponentModel(AlignmentEditor.readPherogram(uri))); - } - } - catch (Exception e) { - MessagingUtils.errorDialog("Error", null, e.getLocalizedMessage(), TaxeditorMolecularPlugin.PLUGIN_ID, - e, false); - } - } - return null; - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/SpecimenPropertyTester.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/SpecimenPropertyTester.java deleted file mode 100644 index 0a59a70ec..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/SpecimenPropertyTester.java +++ /dev/null @@ -1,58 +0,0 @@ -package eu.etaxonomy.taxeditor.molecular.handler; - - -import org.eclipse.core.expressions.PropertyTester; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.TreeNode; - -import eu.etaxonomy.cdm.model.molecular.Sequence; -import eu.etaxonomy.cdm.model.molecular.SingleRead; -import eu.etaxonomy.taxeditor.editor.EditorUtil; - - - -/** - * Tests types of specimens to add items to the context menu. - * - * @author pplitzner - * @author BenStoever - */ -public class SpecimenPropertyTester extends PropertyTester { - private static final String SEQUENCE = "isSequence"; - private static final String SINGLE_READ = "isSingleRead"; - - - public SpecimenPropertyTester() {} - - - /* (non-Javadoc) - * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object) - */ - /** {@inheritDoc} */ - @Override - public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { - if (receiver instanceof IStructuredSelection) { - IStructuredSelection selection = (IStructuredSelection) receiver; - TreeNode treeNodeOfSelection = EditorUtil.getTreeNodeOfSelection(selection); - if (treeNodeOfSelection!=null) { - if (SEQUENCE.equals(property)) { - return isSequence(treeNodeOfSelection.getValue()); - } - else if (SINGLE_READ.equals(property)) { - return isSingleReadAlignment(treeNodeOfSelection.getValue()); - } - } - } - return false; - } - - - private boolean isSequence(Object object) { - return (object instanceof Sequence); - } - - - private boolean isSingleReadAlignment(Object object) { - return (object instanceof SingleRead); - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleInsertOverwriteHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleInsertOverwriteHandler.java deleted file mode 100644 index e94a290c2..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleInsertOverwriteHandler.java +++ /dev/null @@ -1,68 +0,0 @@ -/** -* 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.molecular.handler; - - -import java.util.Map; - -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.commands.ICommandService; -import org.eclipse.ui.commands.IElementUpdater; -import org.eclipse.ui.menus.UIElement; - -import eu.etaxonomy.taxeditor.model.AbstractUtility; -import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor; - - - -/** - * Switches an {@link AlignmentEditor} between insertion and overwrite mode. - * - * @author Ben Stöver - * @date 04.12.2014 - */ -public class ToggleInsertOverwriteHandler extends AbstractAlignmentEditorHandler implements IElementUpdater { - public static final String COMMAND_ID = - "eu.etaxonomy.taxeditor.molecular.AlignmentEditor.toggleInsertOverwrite"; - - - private final ImageDescriptor INSERT_DESCRIPTOR = HandlerTools.createImageDescriptor("insert-16x16.png"); - private final ImageDescriptor OVERWRITE_DESCRIPTOR = HandlerTools.createImageDescriptor("overwrite-16x16.png"); - - - @Override - public void doExecute(ExecutionEvent event, AlignmentEditor editor) throws ExecutionException { - editor.toggleInsertOverwrite(); - } - - - @Override - public void updateElement(UIElement element, @SuppressWarnings("rawtypes") Map parameters) { - IEditorPart activeEditor = AbstractUtility.getActiveEditor(); - if (activeEditor instanceof AlignmentEditor) { - if (((AlignmentEditor)activeEditor).isInsertMode()) { - element.setIcon(INSERT_DESCRIPTOR); - element.setText("INS"); - element.setTooltip("Click to switch to overwrite mode"); - } - else { - element.setIcon(OVERWRITE_DESCRIPTOR); - element.setText("OVR"); - element.setTooltip("Click to switch to insertion mode"); - } - ((ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class)).refreshElements( - ToggleLeftRightInsertionHandler.COMMAND_ID, null); - } - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleLeftRightInsertionHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleLeftRightInsertionHandler.java deleted file mode 100644 index 291e72c7e..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleLeftRightInsertionHandler.java +++ /dev/null @@ -1,72 +0,0 @@ -/** - * 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.molecular.handler; - -import java.util.Map; - -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.commands.IElementUpdater; -import org.eclipse.ui.menus.UIElement; - -import eu.etaxonomy.taxeditor.model.AbstractUtility; -import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor; - - - -/** - * Switches an {@link AlignmentEditor} between insertion in the base sequence to - * the left or to the right. - * - * @author Ben Stöver - * @date 04.12.2014 - */ -public class ToggleLeftRightInsertionHandler extends AbstractAlignmentEditorHandler implements IElementUpdater { - public static final String COMMAND_ID = "eu.etaxonomy.taxeditor.molecular.AlignmentEditor.toggleLeftRightInsertion"; - - - private final ImageDescriptor INSERT_LEFT_DESCRIPTOR = - HandlerTools.createImageDescriptor("pherogram-insert-left-16x16.png"); - private final ImageDescriptor INSERT_RIGHT_DESCRIPTOR = - HandlerTools.createImageDescriptor("pherogram-insert-right-16x16.png"); - private final ImageDescriptor INSERT_LEFT_DISABLED_DESCRIPTOR = - HandlerTools.createImageDescriptor("pherogram-insert-left-disabled-16x16.png"); - private final ImageDescriptor INSERT_RIGHT_DISABLED_DESCRIPTOR = - HandlerTools.createImageDescriptor("pherogram-insert-right-disabled-16x16.png"); - - - @Override - public void doExecute(ExecutionEvent event, AlignmentEditor editor) throws ExecutionException { - editor.toggleLeftRightInsertionInPherogram(); - } - - - @Override - public void updateElement(UIElement element, @SuppressWarnings("rawtypes") Map parameters) { - IEditorPart activeEditor = AbstractUtility.getActiveEditor(); - if (activeEditor instanceof AlignmentEditor) { - setBaseEnabled(((AlignmentEditor)activeEditor).isInsertMode()); - if (((AlignmentEditor)activeEditor).isInsertLeftInPherogram()) { - element.setIcon(INSERT_LEFT_DESCRIPTOR); - element.setDisabledIcon(INSERT_LEFT_DISABLED_DESCRIPTOR); - element.setText("Left"); - element.setTooltip("Switch to insert pherogram distorsions right of future edits."); - } - else { - element.setIcon(INSERT_RIGHT_DESCRIPTOR); - element.setDisabledIcon(INSERT_RIGHT_DISABLED_DESCRIPTOR); - element.setText("Right"); - element.setTooltip("Switch to insert pherogram distorsions left of future edits."); - } - } - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleShowPherogramBaseCallLinesHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleShowPherogramBaseCallLinesHandler.java deleted file mode 100644 index c8663eb18..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleShowPherogramBaseCallLinesHandler.java +++ /dev/null @@ -1,30 +0,0 @@ -// $Id$ -/** -* Copyright (C) 2015 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.molecular.handler; - - -import info.bioinfweb.libralign.pherogram.PherogramComponent; - -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; - - - -/** - * @author BenStoever - * @date 23.06.2015 - * - */ -public class ToggleShowPherogramBaseCallLinesHandler extends AbstractPherogramComponentHandler { - @Override - public void doExecute(ExecutionEvent event, PherogramComponent component) throws ExecutionException { - component.getFormats().toggleShowBaseCallLines(); - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleShowPherogramProbabilitiesHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleShowPherogramProbabilitiesHandler.java deleted file mode 100644 index 50d45d6ce..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleShowPherogramProbabilitiesHandler.java +++ /dev/null @@ -1,36 +0,0 @@ -// $Id$ -/** -* Copyright (C) 2015 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.molecular.handler; - - -import info.bioinfweb.libralign.pherogram.PherogramComponent; - -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; - -import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor; -import eu.etaxonomy.taxeditor.molecular.editor.PherogramViewPart; - - - - -/** - * Toggles whether probability values (substitution, overcall and undercall) should be displayed - * in pherogram areas of {@link AlignmentEditor} or {@link PherogramViewPart}. - * - * @author Ben Stöver - * @date 23.06.2015 - */ -public class ToggleShowPherogramProbabilitiesHandler extends AbstractPherogramComponentHandler { - @Override - public void doExecute(ExecutionEvent event, PherogramComponent component) throws ExecutionException { - component.getFormats().toggleShowProbabilityValues(); - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/UpdateConsensusSequenceHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/UpdateConsensusSequenceHandler.java deleted file mode 100644 index 50cc1b13e..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/UpdateConsensusSequenceHandler.java +++ /dev/null @@ -1,25 +0,0 @@ -/** -* 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.molecular.handler; - - -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; - -import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor; - - - - -public class UpdateConsensusSequenceHandler extends AbstractAlignmentEditorHandler { - @Override - public void doExecute(ExecutionEvent event, AlignmentEditor editor) throws ExecutionException { - editor.updateConsensusSequence(); - } -} diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/package-info.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/package-info.java deleted file mode 100644 index 64bc123c3..000000000 --- a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/package-info.java +++ /dev/null @@ -1,17 +0,0 @@ -// $Id$ -/** - * Copyright (C) 2015 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. - */ -/** - * Contains handlers that trigger actions in an active instance of - * {@link main.java.eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor}. Handlers opening - * an alignment editor or pherogram view are not contained in here. - * - * @author Ben Stöver - */ -package eu.etaxonomy.taxeditor.molecular.handler; \ No newline at end of file diff --git a/eu.etaxonomy.taxeditor.navigation/plugin.xml b/eu.etaxonomy.taxeditor.navigation/plugin.xml index 2ace44ef5..86609245a 100644 --- a/eu.etaxonomy.taxeditor.navigation/plugin.xml +++ b/eu.etaxonomy.taxeditor.navigation/plugin.xml @@ -47,12 +47,6 @@ - - - - - - - - - - - - - - - - @@ -348,12 +324,6 @@ commandId="eu.etaxonomy.taxeditor.navigation.command.create.taxonNode" label="%command.label.13" style="push"> - - - - - - - - + + + + diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java index 273d9ad36..813701c91 100644 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java @@ -32,9 +32,9 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; import eu.etaxonomy.cdm.api.service.IClassificationService; import eu.etaxonomy.cdm.model.common.CdmBase; + import eu.etaxonomy.cdm.model.taxon.TaxonNaturalComparator; -import eu.etaxonomy.cdm.model.taxon.TaxonNode; -import eu.etaxonomy.cdm.model.taxon.TaxonNodeByRankAndNameComparator; +import eu.etaxonomy.cdm.model.taxon.TaxonNodeComparator; import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; import eu.etaxonomy.taxeditor.model.DataChangeBridge; import eu.etaxonomy.taxeditor.model.IDataChangeBehavior; @@ -80,11 +80,11 @@ public class TaxonNavigator extends CommonNavigator implements /** {@inheritDoc} */ @Override protected IAdaptable getInitialInput() { - Comparator comparator; + Comparator comparator; if (PreferencesUtil.getSortNodesNaturally()){ comparator = new TaxonNaturalComparator(); } else{ - comparator = new TaxonNodeByRankAndNameComparator(); + comparator = new TaxonNodeComparator(); } TaxonNodeNavigatorComparator viewerComparator = new TaxonNodeNavigatorComparator(comparator); this.getCommonViewer().setComparator(viewerComparator); diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeNavigatorComparator.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeNavigatorComparator.java index ee6ecbc03..2e5da6688 100644 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeNavigatorComparator.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeNavigatorComparator.java @@ -1,18 +1,25 @@ package eu.etaxonomy.taxeditor.navigation.navigator; +import java.util.Arrays; import java.util.Comparator; + import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerComparator; + +import eu.etaxonomy.cdm.model.common.IdentifiableEntity; import eu.etaxonomy.cdm.model.taxon.Classification; +import eu.etaxonomy.cdm.model.taxon.TaxonBase; + import eu.etaxonomy.cdm.model.taxon.TaxonNaturalComparator; import eu.etaxonomy.cdm.model.taxon.TaxonNode; +import eu.etaxonomy.taxeditor.ui.section.supplemental.IdentifiableSourceElement; public class TaxonNodeNavigatorComparator extends ViewerComparator{ - public TaxonNodeNavigatorComparator(Comparator comparator){ + public TaxonNodeNavigatorComparator(Comparator comparator){ super(comparator); } diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/DeleteHandler.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/DeleteHandler.java index 55df02ba2..5a8650098 100644 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/DeleteHandler.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/DeleteHandler.java @@ -87,6 +87,7 @@ public class DeleteHandler extends AbstractHandler{ ITaxonTreeNode treeNode = treeNodes.iterator().next(); ITaxonTreeNode taxonNode =treeNode; TaxonNodeDeletionConfigurator configNodes = new TaxonNodeDeletionConfigurator(); + //configNodes.setDeleteTaxon(false); if (taxonNode instanceof Classification && taxonNode.hasChildNodes()){ if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification? The tree has children, they will be deleted, too.")){ return null; @@ -122,9 +123,10 @@ public class DeleteHandler extends AbstractHandler{ } }else{ - if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected node?")){ + if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(configNodes, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected node?")){ return null; - } + } + config.setTaxonNodeConfig(configNodes); } } diff --git a/eu.etaxonomy.taxeditor.store/plugin.xml b/eu.etaxonomy.taxeditor.store/plugin.xml index 3b026cdf1..41a4ad279 100644 --- a/eu.etaxonomy.taxeditor.store/plugin.xml +++ b/eu.etaxonomy.taxeditor.store/plugin.xml @@ -296,12 +296,6 @@ name="org.eclipse.ui.views.showView.viewId" value="eu.etaxonomy.taxeditor.view.derivateSearch.DerivateSearchView"> - - - - - - - - - - - - 0.22.0 3.8.0-SNAPSHOT snapshot @@ -34,8 +35,6 @@ eu.etaxonomy.taxeditor.application eu.etaxonomy.taxeditor.feature.platform eu.etaxonomy.taxeditor.feature - eu.etaxonomy.taxeditor.molecular - eu.etaxonomy.taxeditor.molecular.lib eu.etaxonomy.taxeditor