fix delete polytomouskeynode and improve merge in bulk editor
authorKatja Luther <k.luther@bgbm.org>
Thu, 13 Aug 2015 11:20:56 +0000 (13:20 +0200)
committerKatja Luther <k.luther@bgbm.org>
Thu, 13 Aug 2015 11:20:56 +0000 (13:20 +0200)
73 files changed:
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/update/P2Util.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/MergeGroupHandler.java
eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin_de.properties
eu.etaxonomy.taxeditor.editor/plugin.xml
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/KeyEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/DeleteNodeOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java
eu.etaxonomy.taxeditor.feature/feature.xml
eu.etaxonomy.taxeditor.molecular.lib/.classpath [deleted file]
eu.etaxonomy.taxeditor.molecular.lib/.gitignore [deleted file]
eu.etaxonomy.taxeditor.molecular.lib/.project [deleted file]
eu.etaxonomy.taxeditor.molecular.lib/META-INF/MANIFEST.MF [deleted file]
eu.etaxonomy.taxeditor.molecular.lib/build.properties [deleted file]
eu.etaxonomy.taxeditor.molecular.lib/lib/.gitignore [deleted file]
eu.etaxonomy.taxeditor.molecular.lib/pom.xml [deleted file]
eu.etaxonomy.taxeditor.molecular/.classpath [deleted file]
eu.etaxonomy.taxeditor.molecular/.gitignore [deleted file]
eu.etaxonomy.taxeditor.molecular/.project [deleted file]
eu.etaxonomy.taxeditor.molecular/META-INF/MANIFEST.MF [deleted file]
eu.etaxonomy.taxeditor.molecular/OSGI-INF/l10n/plugin.properties [deleted file]
eu.etaxonomy.taxeditor.molecular/OSGI-INF/l10n/plugin_de.properties [deleted file]
eu.etaxonomy.taxeditor.molecular/OSGI-INF/l10n/plugin_en.properties [deleted file]
eu.etaxonomy.taxeditor.molecular/build.properties [deleted file]
eu.etaxonomy.taxeditor.molecular/icons/insert-16x16.png [deleted file]
eu.etaxonomy.taxeditor.molecular/icons/overwrite-16x16.png [deleted file]
eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-left-16x16.png [deleted file]
eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-left-disabled-16x16.png [deleted file]
eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-right-16x16.png [deleted file]
eu.etaxonomy.taxeditor.molecular/icons/pherogram-insert-right-disabled-16x16.png [deleted file]
eu.etaxonomy.taxeditor.molecular/plugin.xml [deleted file]
eu.etaxonomy.taxeditor.molecular/pom.xml [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/TaxeditorMolecularPlugin.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/AlignmentEditor.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/AlignmentEditorInput.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/PherogramMouseListener.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/PherogramViewPart.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AbstractAlignmentEditorHandler.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AbstractPherogramComponentHandler.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ChangePherogramQualityOutputType.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/CreateConsensusSequenceHandler.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/CutPherogramLeftHandler.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/CutPherogramRightHandler.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/EditSequenceHandler.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/HandlerTools.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/LoadPherogramHandler.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ReverseComplementHandler.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ShowPherogramHandler.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/SpecimenPropertyTester.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleInsertOverwriteHandler.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleLeftRightInsertionHandler.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleShowPherogramBaseCallLinesHandler.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ToggleShowPherogramProbabilitiesHandler.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/UpdateConsensusSequenceHandler.java [deleted file]
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/package-info.java [deleted file]
eu.etaxonomy.taxeditor.navigation/plugin.xml
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeNavigatorComparator.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/DeleteHandler.java
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/schema/eu.etaxonomy.taxeditor.store.cdmViewer.exsd
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermMenu.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermMenuFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteConfiguratorDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteNodeConfiguratorComposite.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/UriWithLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureDistributionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/ImageFileElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaRepresentationPartElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerContextMenu.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerUtil.java
pom.xml

index 0a6fb6395ee0530208f6a66839ed79d4f627685d..9e1731c4cf7cdcc7c73745e5bcf39b1d8ef705b1 100644 (file)
@@ -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) {
index 5c0e8676ed02da8bbc536308dd3309393683d872..4a8ae8a3ce9df24256ef97a5e99e4312e99a7e11 100644 (file)
@@ -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;
 
 /**
  * <p>MergeGroupHandler class.</p>
@@ -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
index 803b460b910b316e22385caaf708145194e9e992..8c098c37d1ef2755eed2653be8f0e0114b075ec4 100644 (file)
@@ -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 = Entittsklasse
+marker.field.7 = Entitts ID
 extension.name.0 = Validierungs-Fehler
 command.label.51 = \u00d6ffne Specimen-Editor
 command.label.52 = L\u00f6schen
index b3c364a17b50b074d2136075a4a9e7c32af3de97..d06b782aa811d6b29e2875ed6f37b4a6d63f1d12 100644 (file)
                commandId="eu.etaxonomy.taxeditor.editor.command.new.name"
                label="%command.label.46"
                style="push">
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.editor.command.new.reference"
                label="%command.label.47"
                style="push">
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.editor.command.new.team"
                label="%command.label.1"
                style="push">
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.editor.command.new.person"
                label="%command.label.2"
                style="push">
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
          <separator
                name="eu.etaxonomy.navigation.menu.new.separator2"
                commandId="eu.etaxonomy.taxeditor.editor.command.new.specimen"
                label="%command.label.3"
                style="push">
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
          <separator
                name="eu.etaxonomy.navigation.menu.new.separator3"
                commandId="eu.etaxonomy.taxeditor.editor.command.new.datasource"
                label="%command.label.48"
                style="push">
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
       </menuContribution>
       <menuContribution
                   name="org.eclipse.ui.views.showView.viewId"
                   value="eu.etaxonomy.taxeditor.editor.view.descriptive">
             </parameter>
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
          <command
                commandId="org.eclipse.ui.views.showView"
                   name="org.eclipse.ui.views.showView.viewId"
                   value="eu.etaxonomy.taxeditor.editor.view.media">
             </parameter>
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
          <command
                commandId="org.eclipse.ui.views.showView"
                   name="org.eclipse.ui.views.showView.viewId"
                   value="eu.etaxonomy.taxeditor.editor.view.concept">
             </parameter>
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
          <command
                commandId="org.eclipse.ui.views.showView"
                   value="eu.etaxonomy.taxeditor.editor.view.concept.graph">
             </parameter>
             <visibleWhen
-                  checkEnabled="true">
-               <and>
-                  <reference
-                        definitionId="isShowExperimentalFeatures">
-                  </reference>
-                  <reference
-                        definitionId="isCdmStoreConnected">
-                  </reference>
-               </and>
+                  checkEnabled="false">
+               <reference
+                     definitionId="isShowExperimentalFeatures">
+               </reference>
             </visibleWhen>
          </command>
       </menuContribution>
                commandId="eu.etaxonomy.taxeditor.editor.command.openParent"
                label="%command.label.8"
                style="push">
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
       </menuContribution>
       <menuContribution
                   name="org.eclipse.ui.views.showView.viewId"
                   value="eu.etaxonomy.taxeditor.editor.view.validation.problems">
             </parameter>
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
       </menuContribution>
    </extension>
          </description>
       </wizard>
    </extension>
+    <extension
+          point="eu.etaxonomy.taxeditor.store.cdmViewer">
+       <cdmViewer
+             class="eu.etaxonomy.taxeditor.editor.EditorCdmViewer">
+       </cdmViewer>
+    </extension>
 </plugin>
index 5fc0b2b9a7398afbfecf0dc27e8f399364f39646..7b9a605cf3719f445a17a58678363142ff271d39 100644 (file)
@@ -83,6 +83,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
 
        @Override
        public void setFocus() {
+               getConversationHolder().commit(true);
                getConversationHolder().bind();
                super.setFocus();
        }
index 3b4ae0d7ab1d1bcad784e2b7d041f4eabee34ad3..f31a83125aa62cf9cf7d9846550908e69a0b318d 100644 (file)
@@ -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);
        }
index 82964c8ff74d5228171838c0928f968c8bc21706..e2a30d9226a6150fcb788ca67ff7c80003e9c6fc 100644 (file)
@@ -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);
-    }
-
 
 }
index 407234ba7fa2c07b1571cc83d8bc912576efefd7..b191647d838a123ed117900bf00d401a175a643e 100644 (file)
@@ -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);
-    }
 }
index 71062e2e8eab8ba742b7c768da36cf326977accb..0f59e5e90da48ff947e9a2491c8153de516bf8cf 100644 (file)
          version="0.0.0"
          unpack="false"/>
 
-   <plugin
-         id="eu.etaxonomy.taxeditor.molecular"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="eu.etaxonomy.taxeditor.molecular.lib"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
 </feature>
diff --git a/eu.etaxonomy.taxeditor.molecular.lib/.classpath b/eu.etaxonomy.taxeditor.molecular.lib/.classpath
deleted file mode 100644 (file)
index 1d66dd2..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-       <classpathentry exported="true" kind="lib" path="lib/bioinfweb-commons-bio-2-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/bioinfweb-commons-core-2-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/bioinfweb-commons-swing-2-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/bioinfweb-commons-swt-2-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/core-1.9.2-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/libralign-biojava1-0-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/libralign-core-0-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/libralign-swt-0-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/sequencing-1.9.2-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/tic-core-2-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/tic-swt-2-SNAPSHOT.jar"/>
-       <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/eu.etaxonomy.taxeditor.molecular.lib/.gitignore b/eu.etaxonomy.taxeditor.molecular.lib/.gitignore
deleted file mode 100644 (file)
index e6066b2..0000000
+++ /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 (file)
index 45f118a..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-       <name>eu.etaxonomy.taxeditor.molecular.lib</name>
-       <comment>The Taxonomic Editor for EDIT&apos;s platform for
-    cybertaxonomy. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
-       <projects>
-       </projects>
-       <buildSpec>
-               <buildCommand>
-                       <name>org.eclipse.pde.ManifestBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.SchemaBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.jdt.core.javabuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-       </buildSpec>
-       <natures>
-               <nature>org.eclipse.pde.PluginNature</nature>
-               <nature>org.eclipse.jdt.core.javanature</nature>
-       </natures>
-</projectDescription>
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 (file)
index 3ee9c82..0000000
+++ /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 (file)
index 97e80af..0000000
+++ /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 (file)
index 0557829..0000000
+++ /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 (file)
index 5700ef8..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-<project>
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>eu.etaxonomy.taxeditor</groupId>
-  <artifactId>eu.etaxonomy.taxeditor.molecular.lib</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  
-  <parent>
-    <groupId>eu.etaxonomy</groupId>
-    <artifactId>taxeditor-parent</artifactId>
-    <version>3.8.0-SNAPSHOT</version>
-  </parent>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <version>2.4</version>
-        <executions>
-          <execution>
-            <id>copy-dependencies</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>copy-dependencies</goal>
-            </goals>
-            <configuration>
-              <includeArtifactIds>libralign-swt, libralign-core,
-                bioinfweb-commons-swt, bioinfweb-commons-core,
-                bioinfweb-commons-bio, bioinfweb-commons-swing,
-                tic-core, libralign-biojava1, core, sequencing, tic-swt</includeArtifactIds>
-              <outputDirectory>lib</outputDirectory>
-              <overWriteReleases>true</overWriteReleases>
-              <overWriteSnapshots>true</overWriteSnapshots>
-              <excludeTransitive>true</excludeTransitive>
-            </configuration>
-          </execution>
-          <!-- <execution> -->
-          <!-- <id>copy-dependencies-sources</id> -->
-          <!-- <phase>validate</phase> -->
-          <!-- <goals> -->
-          <!-- <goal>copy-dependencies</goal> -->
-          <!-- </goals> -->
-          <!-- <configuration> -->
-          <!-- <classifier>sources</classifier> -->
-          <!-- <includeArtifactIds>cdmlib-commons,cdmlib-model,cdmlib-persistence,cdmlib-remote,cdmlib-print,cdmlib-services,cdmlib-ext,cdmlib-io</includeArtifactIds> -->
-          <!-- <outputDirectory>lib</outputDirectory> -->
-          <!-- <overWriteReleases>true</overWriteReleases> -->
-          <!-- <overWriteSnapshots>true</overWriteSnapshots> -->
-          <!-- <excludeTransitive>true</excludeTransitive> -->
-          <!-- <failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact> -->
-          <!-- </configuration> -->
-          <!-- </execution> -->
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-antrun-plugin</artifactId>
-        <version>1.7</version>
-        <executions>
-          <execution>
-            <id>remove-existing-jars</id>
-            <phase>clean</phase>
-            <goals>
-              <goal>run</goal>
-            </goals>
-            <configuration>
-              <target>
-                <echo>Remove all jars</echo>
-                <delete>
-                  <fileset dir="./lib" includes="*" />
-                </delete>
-              </target>
-            </configuration>
-          </execution>
-          <execution>
-            <id>update-snapshot-jar-names</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>run</goal>
-            </goals>
-            <configuration>
-              <target>
-                <echo>Update jars to SNAPSHOT when build with
-                  timestamp</echo>
-                <move todir="./lib">
-                  <fileset dir="./lib" />
-                  <mapper type="regexp"
-                    from="(^bioinfweb\-.*\-[0-9]-)[0-9.-]+(\.jar)" to="\1SNAPSHOT\2" />
-                </move>
-                <move todir="./lib">
-                  <fileset dir="./lib" />
-                  <mapper type="regexp"
-                    from="(^libralign\-.*\-[0-9]-)[0-9.-]+(\.jar)" to="\1SNAPSHOT\2" />
-                </move>
-                <move todir="./lib">
-                  <fileset dir="./lib" />
-                  <mapper type="regexp"
-                    from="(^tic\-.*\-[0-9]-)[0-9.-]+(\.jar)" to="\1SNAPSHOT\2" />
-                </move>
-                <move todir="./lib">
-                  <fileset dir="./lib" />
-                  <mapper type="regexp"
-                    from="(^core\-[0-9]\.[0-9]\.[0-9])(\.jar)" to="\1-SNAPSHOT\2" />
-                </move>
-                <move todir="./lib">
-                  <fileset dir="./lib" />
-                  <mapper type="regexp"
-                    from="(^sequencing\-[0-9]\.[0-9]\.[0-9])(\.jar)" to="\1-SNAPSHOT\2" />
-                </move>
-              </target>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-  <dependencies>
-    <!-- LibrAling -->
-    <dependency>
-      <groupId>info.bioinfweb.libralign</groupId>
-      <artifactId>libralign-core</artifactId>
-      <version>0-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>info.bioinfweb.libralign</groupId>
-      <artifactId>libralign-swt</artifactId>
-      <version>0-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>info.bioinfweb.libralign</groupId>
-      <artifactId>libralign-biojava1</artifactId>
-      <version>0-SNAPSHOT</version>
-    </dependency>
-    <!-- commons -->
-    <dependency>
-      <groupId>info.bioinfweb.commons.java</groupId>
-      <artifactId>bioinfweb-commons-swt</artifactId>
-      <version>2-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>info.bioinfweb.commons.java</groupId>
-      <artifactId>bioinfweb-commons-core</artifactId>
-      <version>2-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>info.bioinfweb.commons.java</groupId>
-      <artifactId>bioinfweb-commons-bio</artifactId>
-      <version>2-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>info.bioinfweb.commons.java</groupId>
-      <artifactId>bioinfweb-commons-swing</artifactId>
-      <version>2-SNAPSHOT</version>
-    </dependency>
-    <!-- tic -->
-    <dependency>
-      <groupId>info.bioinfweb.tic</groupId>
-      <artifactId>tic-core</artifactId>
-      <version>2-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>info.bioinfweb.tic</groupId>
-      <artifactId>tic-swt</artifactId>
-      <version>2-SNAPSHOT</version>
-    </dependency>
-    <!-- biojava -->
-    <dependency>
-      <groupId>org.biojava</groupId>
-      <artifactId>core</artifactId>
-      <version>1.9.2</version>
-    </dependency>
-    <dependency>
-      <groupId>org.biojava</groupId>
-      <artifactId>sequencing</artifactId>
-      <version>1.9.2</version>
-    </dependency>
-  </dependencies>
-
-  <repositories>
-    <repository>
-      <id>bioinfweb-maven-repo</id>
-      <name>bioinfweb repository</name>
-      <url>http://bioinfweb.info/MavenRepository/</url>
-    </repository>
-  </repositories>
-  
-</project> 
-
diff --git a/eu.etaxonomy.taxeditor.molecular/.classpath b/eu.etaxonomy.taxeditor.molecular/.classpath
deleted file mode 100644 (file)
index f14ba2c..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-       <classpathentry including="**/*.java" kind="src" path="src/main/java"/>
-       <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/eu.etaxonomy.taxeditor.molecular/.gitignore b/eu.etaxonomy.taxeditor.molecular/.gitignore
deleted file mode 100644 (file)
index e6066b2..0000000
+++ /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 (file)
index 3826881..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-       <name>eu.etaxonomy.taxeditor.molecular</name>
-       <comment>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.</comment>
-       <projects>
-       </projects>
-       <buildSpec>
-               <buildCommand>
-                       <name>org.eclipse.jdt.core.javabuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.ManifestBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.SchemaBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-       </buildSpec>
-       <natures>
-               <nature>org.eclipse.jdt.core.javanature</nature>
-               <nature>org.eclipse.pde.PluginNature</nature>
-       </natures>
-</projectDescription>
diff --git a/eu.etaxonomy.taxeditor.molecular/META-INF/MANIFEST.MF b/eu.etaxonomy.taxeditor.molecular/META-INF/MANIFEST.MF
deleted file mode 100644 (file)
index 38ab0a7..0000000
+++ /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 (file)
index e2943e3..0000000
+++ /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 (file)
index 8c098c3..0000000
+++ /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 (file)
index 897175a..0000000
+++ /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 (file)
index e4bf8ac..0000000
+++ /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 (file)
index 6c9bce7..0000000
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 (file)
index d2aa9e2..0000000
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 (file)
index d36e479..0000000
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 (file)
index b7a23fa..0000000
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 (file)
index 4d10fb1..0000000
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 (file)
index 3f9fa7c..0000000
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 (file)
index 20e8aca..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            class="eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor"
-            default="false"
-            id="eu.etaxonomy.taxeditor.molecular.AlignmentEditor"
-            name="Alignment Editor">
-      </editor>
-   </extension>
-      <extension
-            point="org.eclipse.ui.views">
-         <view
-               allowMultiple="true"
-               class="eu.etaxonomy.taxeditor.molecular.editor.PherogramViewPart"
-               id="eu.etaxonomy.taxeditor.molecular.PherogramView"
-               name="PherogramView"
-               restorable="true">
-         </view>
-      </extension>
-      <extension
-            point="org.eclipse.ui.commands">
-         <command
-               defaultHandler="eu.etaxonomy.taxeditor.molecular.handler.EditSequenceHandler"
-               id="eu.etaxonomy.taxeditor.molecular.editSequence"
-               name="Edit Sequence">
-         </command>
-         <command
-               defaultHandler="eu.etaxonomy.taxeditor.molecular.handler.ShowPherogramHandler"
-               id="eu.etaxonomy.taxeditor.molecular.showPherogram"
-               name="Show Pherogram">
-         </command>
-         <command
-               id="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.cutPherogramLeft"
-               name="Cut pherogram left">
-         </command>
-         <command
-               id="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.cutPherogramRight"
-               name="Cut pherogram right">
-         </command>
-         <command
-               id="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.reverseComplementRows"
-               name="Reverse complement selected rows">
-         </command>
-         <command
-               id="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.createConsensus"
-               name="(Re)create consensus sequence">
-         </command>
-         <command
-               id="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.updateConsensus"
-               name="Update consensus sequence">
-         </command>
-         <command
-               id="eu.etaxonomy.taxeditor.molecular.pherogramComponent.toggleShowProbabilities"
-               name="Toggle show probability values">
-         </command>
-         <command
-               id="eu.etaxonomy.taxeditor.molecular.pherogramComponent.toggleShowBaseCallLines"
-               name="Toggle show base call lines">
-         </command>
-         <command
-               id="eu.etaxonomy.taxeditor.molecular.pherogramComponent.changeQualityOutput"
-               name="Change quality output">
-         </command>
-         <command
-               id="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.loadPherogram"
-               name="Load Pherogram">
-         </command>
-         <command
-               id="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.toggleInsertOverwrite"
-               name="Toggle insert/overwrite">
-         </command>
-         <command
-               id="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.toggleLeftRightInsertion"
-               name="Toggle left/right insertion in base call sequence">
-         </command>
-      </extension>
-      <extension
-            point="org.eclipse.ui.menus">
-         <menuContribution
-               locationURI="toolbar:org.eclipse.ui.main.toolbar?after=eu.etaxonomy.taxeditor.navigation.search.toolbar">
-            <toolbar
-                  id="eu.etaxonomy.taxeditor.molecular.alignmentToolbar">
-               <command
-                     commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.toggleInsertOverwrite"
-                     label="Toggle insert/overwrite"
-                     style="push">
-                  <visibleWhen
-                        checkEnabled="true">
-                     <with
-                           variable="activePartId">
-                        <equals
-                              value="eu.etaxonomy.taxeditor.molecular.AlignmentEditor">
-                        </equals>
-                     </with>
-                  </visibleWhen>
-               </command>
-               <command
-                     commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.toggleLeftRightInsertion"
-                     icon="icons/pherogram-insert-left-16x16.png"
-                     style="push">
-                  <visibleWhen
-                        checkEnabled="true">
-                     <with
-                           variable="activePartId">
-                        <equals
-                              value="eu.etaxonomy.taxeditor.molecular.AlignmentEditor">
-                        </equals>
-                     </with>
-                  </visibleWhen>
-               </command>
-            </toolbar>
-         </menuContribution>
-         <menuContribution
-               allPopups="false"
-               locationURI="menu:org.eclipse.ui.main.menu">
-            <menu
-                  label="Alignment Editor">
-               <command
-                     commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.loadPherogram"
-                     style="push">
-               </command>
-               <command
-                     commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.cutPherogramLeft"
-                     id="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.cutPherogramLeft"
-                     name="Cut pherogram left">
-               </command>
-               <command
-                     commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.cutPherogramRight"
-                     id="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.cutPherogramRight"
-                     style="push">
-               </command>
-               <command
-                     commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.reverseComplementRows"
-                     mnemonic="r"
-                     style="push">
-               </command>
-               <command
-                     commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.createConsensus"
-                     style="push">
-               </command>
-               <command
-                     commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.updateConsensus"
-                     style="push">
-               </command>
-               <visibleWhen
-                     checkEnabled="true">
-                  <with
-                        variable="activePartId">
-                     <equals
-                           value="eu.etaxonomy.taxeditor.molecular.AlignmentEditor">
-                     </equals>
-                  </with>
-               </visibleWhen>
-            </menu>
-            <menu
-                  label="Pherogram View">
-               <command
-                     commandId="eu.etaxonomy.taxeditor.molecular.pherogramComponent.changeQualityOutput"
-                     style="push">
-               </command>
-               <command
-                     commandId="eu.etaxonomy.taxeditor.molecular.pherogramComponent.toggleShowProbabilities"
-                     style="push">
-               </command>
-               <command
-                     commandId="eu.etaxonomy.taxeditor.molecular.pherogramComponent.toggleShowBaseCallLines"
-                     style="push">
-               </command>
-               <visibleWhen
-                     checkEnabled="true">
-                  <with
-                        variable="activePartId">
-                     <equals
-                           value="eu.etaxonomy.taxeditor.molecular.PherogramView">
-                     </equals>
-                  </with>
-               </visibleWhen>
-            </menu>
-         </menuContribution>
-         <menuContribution
-               locationURI="popup:eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView?before=eu.etaxonomy.taxeditor.editor.view.derivate.DerivateContextMenu">
-            <command
-                  commandId="eu.etaxonomy.taxeditor.molecular.editSequence"
-                  label="Edit Sequence"
-                  style="push">
-               <visibleWhen
-                     checkEnabled="true">
-                  <reference
-                        definitionId="isSequence">
-                  </reference>
-               </visibleWhen>
-            </command>
-            <command
-                  commandId="eu.etaxonomy.taxeditor.molecular.showPherogram"
-                  label="Show Pherogram"
-                  style="push">
-               <visibleWhen
-                     checkEnabled="true">
-                  <reference
-                        definitionId="isSingleRead">
-                  </reference>
-               </visibleWhen>
-            </command>
-         </menuContribution>
-      </extension>
-      <extension
-            point="org.eclipse.ui.handlers">
-         <handler
-               class="eu.etaxonomy.taxeditor.molecular.handler.LoadPherogramHandler"
-               commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.loadPherogram">
-            <activeWhen>
-               <with
-                     variable="activePartId">
-                  <equals
-                        value="eu.etaxonomy.taxeditor.molecular.AlignmentEditor">
-                  </equals>
-               </with>
-            </activeWhen>
-         </handler>
-         <handler
-               class="eu.etaxonomy.taxeditor.molecular.handler.ToggleInsertOverwriteHandler"
-               commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.toggleInsertOverwrite">
-         </handler>
-         <handler
-               class="eu.etaxonomy.taxeditor.molecular.handler.ToggleLeftRightInsertionHandler"
-               commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.toggleLeftRightInsertion">
-         </handler>
-         <handler
-               class="eu.etaxonomy.taxeditor.molecular.handler.CutPherogramLeftHandler"
-               commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.cutPherogramLeft">
-         </handler>
-         <handler
-               class="eu.etaxonomy.taxeditor.molecular.handler.CutPherogramRightHandler"
-               commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.cutPherogramRight">
-         </handler>
-         <handler
-               class="eu.etaxonomy.taxeditor.molecular.handler.ReverseComplementHandler"
-               commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.reverseComplementRows">
-         </handler>
-         <handler
-               class="eu.etaxonomy.taxeditor.molecular.handler.CreateConsensusSequenceHandler"
-               commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.createConsensus">
-         </handler>
-         <handler
-               class="eu.etaxonomy.taxeditor.molecular.handler.UpdateConsensusSequenceHandler"
-               commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.updateConsensus">
-         </handler>
-         <handler
-               class="eu.etaxonomy.taxeditor.molecular.handler.ToggleShowPherogramProbabilitiesHandler"
-               commandId="eu.etaxonomy.taxeditor.molecular.pherogramComponent.toggleShowProbabilities">
-         </handler>
-         <handler
-               class="eu.etaxonomy.taxeditor.molecular.handler.ToggleShowPherogramBaseCallLinesHandler"
-               commandId="eu.etaxonomy.taxeditor.molecular.pherogramComponent.toggleShowBaseCallLines">
-         </handler>
-         <handler
-               class="eu.etaxonomy.taxeditor.molecular.handler.ChangePherogramQualityOutputType"
-               commandId="eu.etaxonomy.taxeditor.molecular.pherogramComponent.changeQualityOutput">
-         </handler>
-      </extension>
-      <extension
-            point="org.eclipse.core.expressions.definitions">
-         <definition
-               id="isSequence">
-            <with
-                  variable="selection">
-               <test
-                     property="eu.etaxonomy.taxeditor.molecular.SpecimenPropertyTester.isSequence">
-               </test>
-            </with>
-         </definition>
-         <definition
-               id="isSingleRead">
-            <with
-                  variable="selection">
-               <test
-                     property="eu.etaxonomy.taxeditor.molecular.SpecimenPropertyTester.isSingleRead">
-               </test>
-            </with>
-         </definition>
-      </extension>
-      <extension
-            point="org.eclipse.core.expressions.propertyTesters">
-         <propertyTester
-               class="eu.etaxonomy.taxeditor.molecular.handler.SpecimenPropertyTester"
-               id="eu.etaxonomy.taxeditor.molecular.SpecimenPropertyTester"
-               namespace="eu.etaxonomy.taxeditor.molecular.SpecimenPropertyTester"
-               properties="isSequence,isSingleRead"
-               type="org.eclipse.jface.viewers.IStructuredSelection">
-         </propertyTester>
-      </extension>
-      <extension
-            point="org.eclipse.ui.bindings">
-         <scheme
-               description="%scheme.description"
-               id="eu.etaxonomy.taxeditor.bindings.scheme.default"
-               name="%scheme.name">
-         </scheme>
-         <key
-               commandId="eu.etaxonomy.taxeditor.molecular.AlignmentEditor.loadPherogram"
-               schemeId="eu.etaxonomy.taxeditor.bindings.scheme.default"
-               sequence="M1+O">
-         </key>
-      </extension>
-      
-</plugin>
diff --git a/eu.etaxonomy.taxeditor.molecular/pom.xml b/eu.etaxonomy.taxeditor.molecular/pom.xml
deleted file mode 100644 (file)
index 1e91c23..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <parent>
-    <groupId>eu.etaxonomy</groupId>
-    <artifactId>taxeditor-parent</artifactId>
-    <version>3.8.0-SNAPSHOT</version>
-  </parent>
-
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>eu.etaxonomy.taxeditor.molecular</artifactId>
-  <packaging>eclipse-plugin</packaging>
-
-  <name>Molecular Bundle</name>
-  <description>Provides editors, views and operations for handling molecular data and alignments</description>
-
-</project>
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 (file)
index 77818ed..0000000
+++ /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 (file)
index 315e92d..0000000
+++ /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.
- * <p>
- * The contained GUI components used to edit the alignment come from <a href="http://bioinfweb.info/LibrAlign/">LibrAlign</a>.
- *
- * @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 <T> void afterTokenChange(TokenChangeEvent<T> e) {
-                                       setDirty();
-                               }
-
-                               @Override
-                               public <T> void afterSequenceRenamed(SequenceRenamedEvent<T> e) {
-                                       setDirty();
-                               }
-
-                               @Override
-                               public <T> void afterSequenceChange(SequenceChangeEvent<T> e) {
-                                       setDirty();
-                               }
-
-                               @Override
-                               public <T, U> void afterProviderChanged(AlignmentModel<T> oldProvider,
-                                               AlignmentModel<U> newProvider) {  // Not expected.
-
-                                       setDirty();
-                               }
-                       };
-
-    private MultipleAlignmentsContainer alignmentsContainer = null;
-    private final Map<Integer, SingleReadAlignment> cdmMap = new TreeMap<Integer, SingleReadAlignment>();  //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<Character> provider = new PackedAlignmentModel<Character>(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<Object> tokens = new ArrayList<Object>();  // 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<ShiftChange> iterator = model.shiftChangeIterator();
-       List<Shift> shifts = new ArrayList<SingleReadAlignment.Shift>();
-       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<Integer> 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 <T> void createConsensusSequence() {
-        ConsensusSequenceArea area = getConsensusHintDataArea();
-        AlignmentModel<T> model = (AlignmentModel<T>)getEditableConsensusArea().getAlignmentModel();
-        int sequenceID = model.sequenceIDIterator().next();  // There is always one sequence contained.
-        int length = getReadsArea().getAlignmentModel().getMaxSequenceLength();
-
-        Collection<T> tokens = new ArrayList<T>(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 <T> void updateConsensusSequence() {
-        ConsensusSequenceArea area = getConsensusHintDataArea();
-        AlignmentModel<T> model = (AlignmentModel<T>)getEditableConsensusArea().getAlignmentModel();
-        TokenSet<T> 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<T> tokens = new ArrayList<T>(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.
-     * <p>
-     * 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<Object> 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<Object>();
-                       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 (file)
index b823625..0000000
+++ /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 (file)
index 71e2c9a..0000000
+++ /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 (file)
index 40c0470..0000000
+++ /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 (file)
index 0c8a6ed..0000000
+++ /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 (file)
index 55c24e3..0000000
+++ /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<Integer> 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 (file)
index a5fba94..0000000
+++ /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 (file)
index a95de50..0000000
+++ /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 (file)
index 955dbae..0000000
+++ /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 (file)
index dd8bc90..0000000
+++ /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 (file)
index 69597f1..0000000
+++ /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&ouml;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 (file)
index 11d92e6..0000000
+++ /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 (file)
index 97e1b97..0000000
+++ /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 (file)
index 99e7388..0000000
+++ /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 (file)
index f4c6580..0000000
+++ /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 (file)
index 0a59a70..0000000
+++ /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 (file)
index e94a290..0000000
+++ /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 (file)
index 291e72c..0000000
+++ /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 (file)
index c8663eb..0000000
+++ /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 (file)
index 50d45d6..0000000
+++ /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 (file)
index 50cc1b1..0000000
+++ /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 (file)
index 64bc123..0000000
+++ /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
index 2ace44ef5c2038708d29704c16ca45c31fa1c80a..86609245a3571b0d1283dfd2b75e6977e441a567 100644 (file)
          <dynamic
                class="eu.etaxonomy.taxeditor.navigation.RecentNamesContributionItem"
                id="eu.etaxonomy.taxeditor.navigation.recentnames">
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </dynamic>
       </menuContribution>
       <menuContribution
                   name="org.eclipse.ui.views.showView.viewId"
                   value="eu.etaxonomy.taxeditor.navigation.navigator">
             </parameter>
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
          <command
                commandId="org.eclipse.ui.views.showView"
                   name="org.eclipse.ui.views.showView.viewId"
                   value="eu.etaxonomy.taxeditor.navigation.key.polytomous.polytomousKeyViewPart">
             </parameter>
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
       </menuContribution>
       <menuContribution
                id="eu.etaxonomy.taxeditor.navigation.search.toolbar">
             <control
                   class="eu.etaxonomy.taxeditor.navigation.search.SearchBar">
-               <visibleWhen
-                     checkEnabled="true">
-                  <reference
-                        definitionId="isCdmStoreConnected">
-                  </reference>
-               </visibleWhen>
             </control>
          </toolbar>
       </menuContribution>
                commandId="eu.etaxonomy.taxeditor.navigation.command.create.taxonNode"
                label="%command.label.13"
                style="push">
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
          <separator
                name="eu.etaxonomy.navigation.menu.new.separator1"
                id="eu.etaxonomy.taxeditor.navigation.create.classificationHandler"
                label="%command.label.14"
                style="push">
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
       </menuContribution>
       <menuContribution
          </with>
       </definition>
    </extension>
+   <extension
+         point="eu.etaxonomy.taxeditor.store.cdmViewer">
+      <cdmViewer
+            class="eu.etaxonomy.taxeditor.navigation.NavigationCdmViewer">
+      </cdmViewer>
+   </extension>
 </plugin>
index 273d9ad36383f11750f991bcafab80a3f7fcc5aa..813701c91f55f4c041d29d407b69d3f6bd54f40e 100644 (file)
@@ -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<TaxonNode> 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);
index ee6ecbc03c8dfab5e81fbae3fa36a4409fcfcf66..2e5da6688054bdff7871e99b02d146814ee2a024 100644 (file)
@@ -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<TaxonNode> comparator){
+       public TaxonNodeNavigatorComparator(Comparator<TaxonBase> comparator){
                super(comparator);
        }
 
index 55df02ba26580f05fa4cc09d74df9336257d6b6e..5a8650098b30cf91fe380d90fb7f994e7be7fc87 100644 (file)
@@ -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);
                                        }
                                }
 
index 3b026cdf1defab4f62980e29d838b4e9da7d8d98..41a4ad279bcfe7f014dca98ed5648424dd114637 100644 (file)
                      name="org.eclipse.ui.views.showView.viewId"
                      value="eu.etaxonomy.taxeditor.view.derivateSearch.DerivateSearchView">
                </parameter>
-               <visibleWhen
-                     checkEnabled="true">
-                  <reference
-                        definitionId="isCdmStoreConnected">
-                  </reference>
-               </visibleWhen>
             </command>
             <separator
                   name="eu.etaxonomy.taxeditor.store.showViewMenu.details"
                      name="org.eclipse.ui.views.showView.viewId"
                      value="eu.etaxonomy.taxeditor.view.detail">
                </parameter>
-               <visibleWhen
-                     checkEnabled="true">
-                  <reference
-                        definitionId="isCdmStoreConnected">
-                  </reference>
-               </visibleWhen>
             </command>
             <command
                   commandId="org.eclipse.ui.views.showView"
                      name="org.eclipse.ui.views.showView.viewId"
                      value="eu.etaxonomy.taxeditor.view.supplementalData">
                </parameter>
-               <visibleWhen
-                     checkEnabled="true">
-                  <reference
-                        definitionId="isCdmStoreConnected">
-                  </reference>
-               </visibleWhen>
             </command>
             <!-- Originally used by validation framework, currently not in use -->
        <!--        <command
                </parameter>
                <visibleWhen
                      checkEnabled="true">
-                  <and>
-                     <reference
-                           definitionId="isShowExperimentalFeatures">
-                     </reference>
-                     <reference
-                           definitionId="isCdmStoreConnected">
-                     </reference>
-                  </and>
+                  <reference
+                        definitionId="isShowExperimentalFeatures">
+                  </reference>
                </visibleWhen>
             </command>
          </menu>
       </menuContribution>
+      <menuContribution
+            class="eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermMenuFactory"
+            locationURI="menu:org.eclipse.ui.main.menu.window?before=eu.etaxonomy.taxeditor.application.windowMenu.last">
+      </menuContribution>
       <menuContribution
             locationURI="menu:org.eclipse.ui.main.menu.file?after=eu.etaxonomy.taxeditor.application.filemenu.io">
          <command
                commandId="eu.etaxonomy.taxeditor.store.operations.showLoginWindow"
                label="%command.label.5"
                style="push">
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
          </command>
          <separator
                name="eu.etaxonomy.taxeditor.application.filemenu.login"
             </visibleWhen>
          </command>
       </menuContribution>
-      <menuContribution
-            allPopups="false"
-            locationURI="menu:org.eclipse.ui.main.menu.window?before=eu.etaxonomy.taxeditor.application.windowMenu.last">
-         <dynamic
-               class="eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermMenu"
-               id="eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermMenu">
-            <visibleWhen
-                  checkEnabled="true">
-               <reference
-                     definitionId="isCdmStoreConnected">
-               </reference>
-            </visibleWhen>
-         </dynamic>
-      </menuContribution>
    </extension>
    <extension
          point="org.eclipse.ui.handlers">
index b233e53f9d3ec4f27bf630e383492765ef7fbdbe..42791ec3b89d6c6967cb86041814a7d482ff7619 100644 (file)
@@ -21,8 +21,7 @@
       </annotation>
       <complexType>
          <sequence>
-            <element ref="cdmViewer" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="viewCommandMapping" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="cdmViewer" minOccurs="1" maxOccurs="unbounded"/>
          </sequence>
          <attribute name="point" type="string" use="required">
             <annotation>
       </complexType>
    </element>
 
-   <element name="viewCommandMapping">
-      <annotation>
-         <documentation>
-            Maps a viewing class, like editors or views, to a command which opens it.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="commandId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The command which opens the viewer to show the selected object
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/command/@id"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="viewerName" type="string">
-            <annotation>
-               <documentation>
-                  The name of the viewer which shows the selected element
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="selection" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class of the selected element
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
    <annotation>
       <appInfo>
          <meta.section type="since"/>
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermMenu.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermMenu.java
deleted file mode 100644 (file)
index 4f3e777..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2009 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.editor.definedterm;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.EnumSet;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.CompoundContributionItem;
-import org.eclipse.ui.menus.CommandContributionItem;
-import org.eclipse.ui.menus.CommandContributionItemParameter;
-
-import eu.etaxonomy.cdm.model.common.TermType;
-
-/**
- * Menu used in the store plugin xml to dynamically generate menu (sub-menu) contribution items
- * for term types which when clicked open the defined term editor for the chosen term type
- *
- * @author pplitzner
- * @date 21 Jul 2015
- *
- */
-
-public class DefinedTermMenu extends CompoundContributionItem {
-
-
-    @Override
-    protected IContributionItem[] getContributionItems() {
-        Collection<IContributionItem> items = new ArrayList<IContributionItem>();
-           MenuManager dtMenuManager =
-                   new MenuManager("Term Editor","eu.etaxonomy.taxeditor.store.definedTermEditorMenu");
-
-           dtMenuManager.setVisible(true);
-
-           items.add(dtMenuManager);
-           List<TermType> ttList = new ArrayList<TermType>(EnumSet.allOf(TermType.class));
-           Collections.sort(ttList,new SortByTermTypeMessage());
-           for (TermType tt : ttList)
-           {
-               // if term type has a parent, do not add it
-               // it will be added in the recursive call
-               if(tt.getKindOf() == null) {
-                   IContributionItem ici = addChildTermsToMenuManager(tt);
-                   if(ici != null) {
-                       dtMenuManager.add(ici);
-                   }
-               }
-           }
-           return items.toArray(new IContributionItem[]{});
-       }
-
-       private IContributionItem addChildTermsToMenuManager(TermType termType) {
-
-               //FIXME : need a better way to find out if a term type can be editable (ticket 3853)
-               if(termType.getEmptyDefinedTermBase() != null) {
-                       Set<TermType> children = termType.getGeneralizationOf();
-                       // term type has no children, so create menu item
-                       if(children.isEmpty()) {
-                               return createMenuItem(termType);
-                       }
-                       // term type has children, so create sub menu
-                       MenuManager dtMenuManager =
-                                       new MenuManager(termType.getMessage(),"eu.etaxonomy.taxeditor.store." + termType.getKey() + "Menu");
-                       dtMenuManager.setVisible(true);
-                       dtMenuManager.add(createDefaultMenuItem(termType));
-
-                       Separator sep = new Separator();
-                       dtMenuManager.add(sep);
-                       // add child items to the sub menu
-                       for(TermType tt : children) {
-                               IContributionItem item = addChildTermsToMenuManager(tt);
-                               if(item != null) {
-                                       dtMenuManager.add(item);
-                               }
-                       }
-                       return dtMenuManager;
-               } else {
-                       return null;
-               }
-
-       }
-
-       private CommandContributionItem createMenuItem(TermType termType) {
-
-               Map<String, String> params = new HashMap<String, String>();
-               params.put("eu.etaxonomy.taxeditor.store.openDefinedTermEditor.termTypeUuid",
-                               termType.getUuid().toString());
-
-        CommandContributionItemParameter p = new CommandContributionItemParameter(
-                PlatformUI.getWorkbench(),
-                "",
-                "eu.etaxonomy.taxeditor.store.openDefinedTermEditor",
-                params,
-                null,
-                null,
-                null,
-                termType.getMessage(),
-                "",
-                "",
-                SWT.PUSH,
-                "",
-                true);
-
-        CommandContributionItem item = new CommandContributionItem(p);
-        return item;
-
-       }
-
-       private CommandContributionItem createDefaultMenuItem(TermType termType) {
-
-               Map<String, String> params = new HashMap<String, String>();
-               params.put("eu.etaxonomy.taxeditor.store.openDefinedTermEditor.termTypeUuid",
-                               termType.getUuid().toString());
-
-        CommandContributionItemParameter p = new CommandContributionItemParameter(
-                PlatformUI.getWorkbench(),
-                "",
-                "eu.etaxonomy.taxeditor.store.openDefinedTermEditor",
-                params,
-                null,
-                null,
-                null,
-                "Other " + termType.getMessage() + "s",
-                "",
-                "",
-                SWT.PUSH,
-                "",
-                true);
-
-
-
-        CommandContributionItem item = new CommandContributionItem(p);
-        return item;
-
-       }
-
-       private class SortByTermTypeMessage implements Comparator<TermType> {
-           @Override
-        public int compare(TermType t1, TermType t2) {
-               return t1.getMessage().compareTo(t2.getMessage());
-           }
-       }
-
-
-}
index f266729565dcd7e2221fcfcef4b6f27eb76435bc..9bd7ccbda2d8ed188e837b2cd847829e0abab79a 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2009 EDIT
-* European Distributed Institute of Taxonomy
+* 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.
 */
@@ -34,77 +34,78 @@ import eu.etaxonomy.cdm.model.common.TermType;
 /**
  * Menu factory used in the store plugin xml to dynamically generate menu (sub-menu) contribution items
  * for term types which when clicked open the defined term editor for the chosen term type
- *
+ * 
  * @author c.mathew
  * @date 18 Jul 2013
  *
  */
 
-public class DefinedTermMenuFactory extends ExtensionContributionFactory {
-
+public class DefinedTermMenuFactory extends ExtensionContributionFactory {     
+       
        @Override
        public void createContributionItems(IServiceLocator serviceLocator,
-               IContributionRoot additions) {
-           MenuManager dtMenuManager =
-                   new MenuManager("Term Editor","eu.etaxonomy.taxeditor.store.definedTermEditorMenu");
-
-           dtMenuManager.setVisible(true);
-
-           additions.addContributionItem(dtMenuManager, null);
-           List<TermType> ttList = new ArrayList<TermType>(EnumSet.allOf(TermType.class));
-           Collections.sort(ttList,new SortByTermTypeMessage());
-           for (TermType tt : ttList)
-           {
-               // if term type has a parent, do not add it
-               // it will be added in the recursive call
-               if(tt.getKindOf() == null) {
-                   IContributionItem ici = addChildTermsToMenuManager(tt, serviceLocator);
-                   if(ici != null) {
-                       dtMenuManager.add(ici);
-                   }
-               }
-           }
+                       IContributionRoot additions) {
+               
+               MenuManager dtMenuManager = 
+                               new MenuManager("Term Editor","eu.etaxonomy.taxeditor.store.definedTermEditorMenu"); 
+               
+               dtMenuManager.setVisible(true);
+        
+               additions.addContributionItem(dtMenuManager, null);
+               List<TermType> ttList = new ArrayList<TermType>(EnumSet.allOf(TermType.class));
+               Collections.sort(ttList,new SortByTermTypeMessage());
+        for (TermType tt : ttList)
+        {
+               // if term type has a parent, do not add it
+               // it will be added in the recursive call
+               if(tt.getKindOf() == null) {
+                       IContributionItem ici = addChildTermsToMenuManager(tt, serviceLocator);                 
+                       if(ici != null) {                                                       
+                               dtMenuManager.add(ici);
+                       }
+               }
+        }                                     
        }
-
+       
        private IContributionItem addChildTermsToMenuManager(TermType termType, IServiceLocator serviceLocator) {
-
+       
                //FIXME : need a better way to find out if a term type can be editable (ticket 3853)
                if(termType.getEmptyDefinedTermBase() != null) {
                        Set<TermType> children = termType.getGeneralizationOf();
                        // term type has no children, so create menu item
-                       if(children.isEmpty()) {
+                       if(children.isEmpty()) {                        
                                return createMenuItem(termType, serviceLocator);
                        }
-                       // term type has children, so create sub menu
-                       MenuManager dtMenuManager =
-                                       new MenuManager(termType.getMessage(),"eu.etaxonomy.taxeditor.store." + termType.getKey() + "Menu");
+                       // term type has children, so create sub menu           
+                       MenuManager dtMenuManager = 
+                                       new MenuManager(termType.getMessage(),"eu.etaxonomy.taxeditor.store." + termType.getKey() + "Menu"); 
                        dtMenuManager.setVisible(true);
                        dtMenuManager.add(createDefaultMenuItem(termType, serviceLocator));
 
                        Separator sep = new Separator();
                        dtMenuManager.add(sep);
                        // add child items to the sub menu
-                       for(TermType tt : children) {
+                       for(TermType tt : children) {                   
                                IContributionItem item = addChildTermsToMenuManager(tt,serviceLocator);
-                               if(item != null) {
+                               if(item != null) {                              
                                        dtMenuManager.add(item);
-                               }
-                       }
+                               }                                       
+                       }               
                        return dtMenuManager;
                } else {
                        return null;
                }
-
+               
        }
-
+       
        private CommandContributionItem createMenuItem(TermType termType, IServiceLocator serviceLocator) {
-
+               
                Map<String, String> params = new HashMap<String, String>();
                params.put("eu.etaxonomy.taxeditor.store.openDefinedTermEditor.termTypeUuid",
-                               termType.getUuid().toString());
-
+                               termType.getUuid().toString());         
+               
         CommandContributionItemParameter p = new CommandContributionItemParameter(
-                serviceLocator,
+                serviceLocator, 
                 "",
                 "eu.etaxonomy.taxeditor.store.openDefinedTermEditor",
                 params,
@@ -113,24 +114,24 @@ public class DefinedTermMenuFactory extends ExtensionContributionFactory {
                 null,
                 termType.getMessage(),
                 "",
-                "",
+                "",                
                 SWT.PUSH,
                 "",
                 true);
-
-        CommandContributionItem item = new CommandContributionItem(p);
+   
+        CommandContributionItem item = new CommandContributionItem(p);   
         return item;
-
+               
        }
-
+       
        private CommandContributionItem createDefaultMenuItem(TermType termType, IServiceLocator serviceLocator) {
-
+               
                Map<String, String> params = new HashMap<String, String>();
                params.put("eu.etaxonomy.taxeditor.store.openDefinedTermEditor.termTypeUuid",
-                               termType.getUuid().toString());
-
+                               termType.getUuid().toString());         
+               
         CommandContributionItemParameter p = new CommandContributionItemParameter(
-                serviceLocator,
+                serviceLocator, 
                 "",
                 "eu.etaxonomy.taxeditor.store.openDefinedTermEditor",
                 params,
@@ -139,24 +140,23 @@ public class DefinedTermMenuFactory extends ExtensionContributionFactory {
                 null,
                 "Other " + termType.getMessage() + "s",
                 "",
-                "",
+                "",                
                 SWT.PUSH,
                 "",
                 true);
-
-
-
-        CommandContributionItem item = new CommandContributionItem(p);
+        
+        
+   
+        CommandContributionItem item = new CommandContributionItem(p);   
         return item;
-
+               
        }
-
+       
        private class SortByTermTypeMessage implements Comparator<TermType> {
-           @Override
-        public int compare(TermType t1, TermType t2) {
+           public int compare(TermType t1, TermType t2) {
                return t1.getMessage().compareTo(t2.getMessage());
            }
        }
-
+       
 
 }
index eb36edac26f314ac4853c445ef28331754b62449..647addd10ccaea42b89725ac4b201456b51c25e5 100644 (file)
@@ -20,6 +20,7 @@ import org.eclipse.swt.widgets.Shell;
 import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
 import eu.etaxonomy.cdm.api.service.config.TaxonBaseDeletionConfigurator;
+import eu.etaxonomy.cdm.api.service.config.TaxonNodeDeletionConfigurator;
 
 /**
  * Abstract subclass of MessageDialog providing the functionality to configure
@@ -49,7 +50,10 @@ public class DeleteConfiguratorDialog extends MessageDialog{
         }
         else if(configurator instanceof SpecimenDeleteConfigurator){
             composite.addConfiguratorComposite(new DeleteSpecimenConfiguratorComposite((SpecimenDeleteConfigurator) configurator, composite.getSectionConfigure(), SWT.NONE));
+        } else if(configurator instanceof TaxonNodeDeletionConfigurator){
+            composite.addConfiguratorComposite(new DeleteNodeConfiguratorComposite((TaxonNodeDeletionConfigurator) configurator, composite.getSectionConfigure(), SWT.NONE));
         }
+        
         return composite;
     }
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteNodeConfiguratorComposite.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteNodeConfiguratorComposite.java
new file mode 100644 (file)
index 0000000..4901526
--- /dev/null
@@ -0,0 +1,76 @@
+package eu.etaxonomy.taxeditor.ui.dialog.deleteConfigurator;
+/**
+* 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.
+*/
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.beans.PojoProperties;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.layout.RowLayout;
+
+import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
+import eu.etaxonomy.cdm.api.service.config.TaxonNodeDeletionConfigurator;
+/**
+ * @author kluther
+ * @date Jul 13, 2015
+ *
+ */
+public class DeleteNodeConfiguratorComposite extends Composite {
+       // $Id$
+       
+       private final DataBindingContext m_bindingContext;
+
+       private final FormToolkit toolkit = new FormToolkit(Display.getCurrent());
+       private final TaxonNodeDeletionConfigurator configurator;
+       private final Button btnDeleteTaxon;
+
+
+           /**
+            * Create the composite.
+            * @param parent
+            * @param style
+            */
+           public DeleteNodeConfiguratorComposite(TaxonNodeDeletionConfigurator configurator, Composite parent, int style) {
+               super(parent, style);
+               this.configurator = configurator;
+               addDisposeListener(new DisposeListener() {
+                   @Override
+                   public void widgetDisposed(DisposeEvent e) {
+                       toolkit.dispose();
+                   }
+               });
+               toolkit.paintBordersFor(this);
+               setLayout(new RowLayout(SWT.VERTICAL));
+               setBackground(getBackground());
+
+               btnDeleteTaxon = new Button(this, SWT.CHECK);
+               btnDeleteTaxon.setText("Delete taxon if possible");
+            
+               m_bindingContext = initDataBindings();
+
+           }
+
+           protected DataBindingContext initDataBindings() {
+               DataBindingContext bindingContext = new DataBindingContext();
+               //
+               IObservableValue observeSelectionBtnDeleteTaxonObserveWidget = WidgetProperties.selection().observe(btnDeleteTaxon);
+               IObservableValue deleteTaxonIfPossibleConfiguratorObserveValue = PojoProperties.value("deleteTaxon").observe(configurator);
+               bindingContext.bindValue(observeSelectionBtnDeleteTaxonObserveWidget, deleteTaxonIfPossibleConfiguratorObserveValue, null, null);
+               //
+               return bindingContext;
+           }
+       }
+
+
index e7ef5ec0b227a867e3d6522b53d4c36cf154acef..ee6867db2b3a57827f7e4f552affc3713903b1bc 100644 (file)
@@ -13,7 +13,6 @@ package eu.etaxonomy.taxeditor.ui.element;
 import java.net.URI;
 
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
 
 /**
@@ -44,11 +43,9 @@ public class UriWithLabelElement extends TextWithLabelElement {
 
        public URI getUri(){
         try {
-            labelException.setBackground(getPersistentBackground());
             labelException.setText("");
             return new URI(super.getText());
         } catch (Exception e) {
-            labelException.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
             labelException.setText(e.getMessage());
             return null;
         }
index be33fcb1029f0e39218ecb5e447a69c07e3fa686..7da47bb4c2b0742ac5ffbe3a10ee30c48c7f726e 100644 (file)
@@ -114,6 +114,7 @@ public class FeatureDistributionDetailElement extends AbstractCdmDetailElement<F
                 false, 
                 false, 
                 null,
+                null,
                 presenceAbsenceTermColors, 
                 languages);
 
index 9d016cb3175be5d881d8eb238c4c495ff5b1410d..fbde0b7e0ed056e51d0b6d809db9aa24e4a535ac 100644 (file)
@@ -119,13 +119,7 @@ public class ImageFileElement extends MediaRepresentationPartElement<ImageFile>
                        try {
                            URI uri = text_uri.getUri();
                                getEntity().setUri(uri);
-                               if(uri==null){
-                                   //buffer URI if parsing error occurred
-                                   MediaDetailElement parentMediaDetailElement = getParentMediaDetailElement();
-                                   if(parentMediaDetailElement!=null){
-                                       parentMediaDetailElement.setUriBuffer(text_uri.getText());
-                                   }
-                               }
+
 
                                loadImage(getEntity().getUri(), true);
 
index 1c27665647713fdd53c267767588114f683fb708..e05ed4064260e68d770df99dec3a5c11e950a8bd 100644 (file)
@@ -9,7 +9,6 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.media;
 
-import java.net.URI;
 import java.util.List;
 import java.util.Set;
 
@@ -17,7 +16,6 @@ import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.media.MediaRepresentation;
 import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
 import eu.etaxonomy.cdm.model.media.MediaUtils;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -41,11 +39,6 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
     private ICdmFormElement parentFormElement;
     private int style;
 
-    /**
-     * Used to store the URI even if it is invalid and thus cannot be stored in CDM
-     */
-    private String uriBuffer;
-
     public MediaDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
@@ -70,25 +63,11 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
     public void handleEvent(Object eventSource){
         if(eventSource==textUri){
             textUri.setBackground(getPersistentBackground());
-            URI uri = textUri.getUri();
-            singleMediaRepresentationPart.setUri(uri);
-            if(uri==null){
-                uriBuffer=textUri.getText();
-            }
+            singleMediaRepresentationPart.setUri(textUri.getUri());
         }
     }
 
-    public void toggleAdvancedMediaView() {
-        if (getEntity().getRepresentations() != null
-                && (getEntity().getRepresentations().size() > 1 ||
-                        (getEntity().getRepresentations().size() == 1
-                        && getEntity().getRepresentations().iterator().next().getParts().size() > 1))) {
-            MessagingUtils.informationDialog("Toggling not possible",
-                    "Media has consists of multiple representations or representatio parts");
-            // toggling is only possible if there are no more than one
-            // MediaRepresentation resp. MediaRepresentationParts
-            return;
-        }
+    public void toggleAdvancedMediaView(){
         isAdvancedMediaView = !isAdvancedMediaView;
         showAdvancedView();
         reflowParentScrolledForm(true);
@@ -102,23 +81,13 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
             section_mediaRepresentation = formFactory.createMediaRepresentationSection(getConversationHolder(), parentFormElement, style);
             section_mediaRepresentation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
             section_mediaRepresentation.setEntity(getEntity());
-            //set buffered uri as text if uri had parsing problems in simple view
-            if(uriBuffer!=null){
-                section_mediaRepresentation.getLayoutComposite().getChildren();
-            }
         }
         else{
             if(section_mediaRepresentation!=null){
                 removeElementsAndControls(section_mediaRepresentation);
             }
             textUri = formFactory.createUriWithLabelElement(parentFormElement, "Media URI", null, style);
-            URI uri = singleMediaRepresentationPart.getUri();
-            textUri.setUri(uri);
-            //set buffered uri as text if uri had parsing problems in advanced view
-            if(uri==null && uriBuffer!=null){
-                textUri.setText(uriBuffer);
-                textUri.getUri();
-            }
+            textUri.setUri(singleMediaRepresentationPart.getUri());
             textUri.getLayoutComposite().layout();
         }
     }
@@ -147,12 +116,4 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
         return isAdvancedMediaView;
     }
 
-    public void setUriBuffer(String uriBuffer) {
-        this.uriBuffer = uriBuffer;
-    }
-
-    public String getUriBuffer() {
-        return uriBuffer;
-    }
-
 }
index 663848da419d2bef3ba02e2b78c73f4c0911f147..5a295254788c851528ec31c0a1eb5e141f4d2b17 100644 (file)
@@ -58,14 +58,8 @@ public class MediaRepresentationPartElement<T extends MediaRepresentationPart> e
                        text_size.setText(FileUtils.byteCountToDisplaySize(entity.getSize()));
                }
                if(entity.getUri() != null){
-                       text_uri.setUri(entity.getUri());
-               } else {
-            String uriBuffer = getParentMediaDetailElement().getUriBuffer();
-            if(uriBuffer!=null){
-                text_uri.setText(uriBuffer);
-                text_uri.getUri();//just to update the error label
-            }
-        }
+                       text_uri.setText(entity.getUri().toString());
+               }
        }
 
        @Override
@@ -73,27 +67,8 @@ public class MediaRepresentationPartElement<T extends MediaRepresentationPart> e
                if(eventSource == text_uri){
                    URI uri = text_uri.getUri();
                    getEntity().setUri(uri);
-                   if(uri==null){
-                //buffer URI if parsing error occurred
-                MediaDetailElement parentMediaDetailElement = getParentMediaDetailElement();
-                if(parentMediaDetailElement!=null){
-                    parentMediaDetailElement.setUriBuffer(text_uri.getText());
-                }
-            }
-
                    firePropertyChangeEvent(this);
                }
        }
 
-    protected MediaDetailElement getParentMediaDetailElement() {
-        ICdmFormElement parentElement = getParentElement();
-        while(parentElement!=null){
-            parentElement = parentElement.getParentElement();
-            if(parentElement instanceof MediaDetailElement){
-                return (MediaDetailElement) parentElement;
-            }
-        }
-        return null;
-    }
-
 }
index f2eef9fe3e63113dab460be3d7cf8bb122b58d87..712bec9d8a40c91ee3024b635122163b36d2e5a8 100644 (file)
@@ -3,8 +3,6 @@ package eu.etaxonomy.taxeditor.view;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.common.NotDefinedException;
 import org.eclipse.jface.action.ContributionItem;
 import org.eclipse.jface.action.IContributionItem;
 import org.eclipse.jface.viewers.ISelection;
@@ -17,10 +15,6 @@ import org.eclipse.swt.widgets.MenuItem;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.actions.CompoundContributionItem;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
-
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
 
 /**
  * Generic context menu for opening elements in the taxeditor.
@@ -34,40 +28,20 @@ public class CdmViewerContextMenu extends CompoundContributionItem {
                 new ContributionItem() {
                     @Override
                     public void fill(Menu menu, int index) {
-                        final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-                        final ISelection selection = window.getActivePage().getSelection();
-
                         MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
                         addItem.setText("Open in...");
                         Menu addMenu = new Menu(menu);
                         addItem.setMenu(addMenu);
+                        final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+                        final ISelection selection = window.getActivePage().getSelection();
                         if(selection instanceof IStructuredSelection){
                             Object firstElement = ((IStructuredSelection) selection).getFirstElement();
-                            Map<String, String> availableViewers = CdmViewerUtil.getAvailableViewers(firstElement);
-                            for(Entry<String, String> entry:availableViewers.entrySet()){
-                                final String commandId = entry.getKey();
-                                String viewerName = entry.getValue();
+                            Map<Entry<Class<?>, String>, ICdmViewer> nameViewerMap = CdmViewerUtil.getNameViewerMap(firstElement);
+                            for(Entry<Entry<Class<?>, String>, ICdmViewer> entry:nameViewerMap.entrySet()){
+                                Entry<Class<?>, String> viewerClass = entry.getKey();
                                 MenuItem menuItem = new MenuItem(addMenu, SWT.NONE);
-                                menuItem.setText(viewerName);
-                                menuItem.addSelectionListener(new SelectionAdapter() {
-
-                                    @Override
-                                    public void widgetSelected(SelectionEvent e) {
-                                        ICommandService commandService = (ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class);
-
-                                        Command command = commandService.getCommand(commandId);
-                                        if(command.isEnabled()) {
-                                            IHandlerService handlerService = (IHandlerService)PlatformUI.getWorkbench().getService(IHandlerService.class);
-                                            try {
-                                                handlerService.executeCommand(commandId, null);
-                                            } catch (NotDefinedException nde) {
-                                                throw new RuntimeException("Could not find open command: " + commandId);
-                                            } catch (Exception exception) {
-                                                MessagingUtils.error(getClass(), "An exception occured while trying execute "+commandId, exception);
-                                            }
-                                        }
-                                    }
-                                }) ;
+                                menuItem.setText(viewerClass.getValue());
+                                menuItem.addSelectionListener(new OpenInViewerListener(entry.getValue(), firstElement, viewerClass.getKey()));
                             }
                         }
                     }
index 88552f12f0310ef70e47948aa38a5608012bb516..6f5c6f67ab73666cdc2aec92a0f81f8c881aedca 100644 (file)
@@ -32,7 +32,7 @@ public class CdmViewerUtil {
 
     public static  Map<Entry<Class<?>, String>, ICdmViewer> getNameViewerMap(Object input){
         Map<Entry<Class<?>, String>, ICdmViewer> nameViewerMap = new HashMap<Entry<Class<?>, String>, ICdmViewer>();
-
+    
         IExtensionRegistry reg = Platform.getExtensionRegistry();
         IConfigurationElement[] extensions = reg
                 .getConfigurationElementsFor("eu.etaxonomy.taxeditor.store.cdmViewer");
@@ -56,30 +56,4 @@ public class CdmViewerUtil {
         return nameViewerMap;
     }
 
-    public static  Map<String, String> getAvailableViewers(Object input){
-        Map<String, String> commandViewerNameMap = new HashMap<String, String>();
-
-        if(input!=null){
-            IExtensionRegistry reg = Platform.getExtensionRegistry();
-            IConfigurationElement[] extensions = reg
-                    .getConfigurationElementsFor("eu.etaxonomy.taxeditor.store.cdmViewer");
-            for (IConfigurationElement configElement : extensions) {
-                if(configElement.getName().equals("viewCommandMapping")){
-                    String commandId = configElement.getAttribute("commandId");
-                    String viewerName = configElement.getAttribute("viewerName");
-                    try {
-                        Object selectionObject = configElement.createExecutableExtension("selection");
-                        Class<? extends Object> selectionClass = selectionObject.getClass();
-                        if(input.getClass().isAssignableFrom(selectionClass)){
-                            commandViewerNameMap.put(commandId, viewerName);
-                        }
-                    } catch (CoreException e) {
-                        MessagingUtils.error(CdmViewerChooser.class, "Could not initalize selection class element of cdmViewer extension", e);
-                    }
-                }
-            }
-        }
-        return commandViewerNameMap;
-    }
-
 }
diff --git a/pom.xml b/pom.xml
index d6abb4c37f8c7579ab46332fe3de55759eab619c..45b3087ba74ca4ae6d09dddc212e512aab0a41c3 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,7 @@
     <java.codelevel>1.6</java.codelevel>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <cdmlib.version>3.8.0-SNAPSHOT</cdmlib.version>
+    <!-- TODO can we use project.version ????? -->
     <tycho.version>0.22.0</tycho.version>
     <taxeditor.version>3.8.0-SNAPSHOT</taxeditor.version>
     <update.dir>snapshot</update.dir>
@@ -34,8 +35,6 @@
     <module>eu.etaxonomy.taxeditor.application</module>
     <module>eu.etaxonomy.taxeditor.feature.platform</module>
     <module>eu.etaxonomy.taxeditor.feature</module>
-    <module>eu.etaxonomy.taxeditor.molecular</module>
-    <module>eu.etaxonomy.taxeditor.molecular.lib</module>
     <module>eu.etaxonomy.taxeditor</module>
   </modules>
   <scm>