- removed Amplification as a TreeNode from the DerivateView
authorPatric Plitzner <p.plitzner@bgbm.org>
Tue, 1 Apr 2014 06:51:22 +0000 (06:51 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Tue, 1 Apr 2014 06:51:22 +0000 (06:51 +0000)
 - added Amplification to DetailsView of SingleRead as an EntitySelectionElement

16 files changed:
.gitattributes
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/CreateDerivateContextMenu.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateContentProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationCloningWizardPage.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationGeneralWizardPage.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationPrimerWizardPage.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewAmplificationWizard.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AmplificationSelectionDialog.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SelectionDialogFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGelPhotoDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EditFromSelectionWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EntitySelectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java

index ed0cde2a2d585bf6c8f0655dbf96031ceaa466a5..b2baca59e69801b0a762ca67c03bfdf8bafef89f 100644 (file)
@@ -1211,7 +1211,11 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonTra
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/TextHelper.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/TimeHelper.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AbstractNewEntityWizard.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationCloningWizardPage.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationGeneralWizardPage.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationPrimerWizardPage.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/ExternalReferenceServiceWizardPage.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewAmplificationWizard.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewClassificationWizard.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewCollectionWizard.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewDerivedUnitBaseWizard.java -text
@@ -1298,6 +1302,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/UriD
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmEnumSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AgentSelectionDialog.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AmplificationSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ClassificationSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CollectionSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/DerivedUnitSelectionDialog.java -text
@@ -1537,6 +1542,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occ
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationCloningDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationCloningDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGelPhotoCollectionDetailSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGelPhotoDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGeneralDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGeneralDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationPrimerDetailElement.java -text
index ad13ae473892af262d54b467598fc941e83a918b..e265cb3281de6ead2a8672e8751a80833e82da73 100644 (file)
@@ -18,7 +18,6 @@ import org.eclipse.ui.actions.CompoundContributionItem;
 
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy;
 import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.molecular.Amplification;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
 import eu.etaxonomy.cdm.model.molecular.SingleRead;
@@ -81,10 +80,10 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
                             else if(selectedTreeNode.getValue() instanceof Sequence){
                                 createMenuItem(menu, "Single Read", selectedTreeNode, SingleRead.class, null);
                             }
-                            //context menu for SingleRead
-                            else if(selectedTreeNode.getValue() instanceof SingleRead && !(selectedTreeNode.getParent().getValue() instanceof Amplification)){
-                                createMenuItem(menu, "Amplification (will be a parent node)", selectedTreeNode, Amplification.class, null);
-                            }
+//                            //context menu for SingleRead
+//                            else if(selectedTreeNode.getValue() instanceof SingleRead && !(selectedTreeNode.getParent().getValue() instanceof Amplification)){
+//                                createMenuItem(menu, "Amplification (will be a parent node)", selectedTreeNode, Amplification.class, null);
+//                            }
                             //default
                             else{
                                 MenuItem menuItem = new MenuItem(menu, SWT.NONE);
@@ -130,31 +129,32 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
             Object selectedDerivate = selectedNode.getValue();
             if(selectedDerivate instanceof DnaSample){
                 DnaSample dnaSample = (DnaSample)selectedDerivate;
-                if(childClass.equals(Amplification.class)){
-                    Amplification.NewInstance(dnaSample);
-                }
-                else if(childClass.equals(Sequence.class)){
+//                if(childClass.equals(Amplification.class)){
+//                    Amplification.NewInstance(dnaSample);
+//                }
+//                else
+                    if(childClass.equals(Sequence.class)){
                     dnaSample.addSequence(Sequence.NewInstance(""));//why does this not have DnaSample as constructor parameter?
                 }
             }
-            else if(selectedDerivate instanceof Amplification){
-                ((Amplification) selectedDerivate).addSingleRead(SingleRead.NewInstance());
-            }
+//            else if(selectedDerivate instanceof Amplification){
+//                ((Amplification) selectedDerivate).addSingleRead(SingleRead.NewInstance());
+//            }
             else if(selectedDerivate instanceof Sequence){
                 ((Sequence) selectedDerivate).addSingleRead(SingleRead.NewInstance());
             }
-            else if(selectedDerivate instanceof SingleRead){
-                TreeNode parentNode = selectedNode.getParent();
-                while(parentNode!=null && !(parentNode.getValue() instanceof DnaSample)){
-                    parentNode = parentNode.getParent();
-                }
-                if(parentNode!=null && parentNode.getValue() instanceof DnaSample){
-                    DnaSample dnaSample = (DnaSample)parentNode.getValue();
-                    Amplification amplification = Amplification.NewInstance(dnaSample);
-                    dnaSample.addAmplification(amplification);
-                    amplification.addSingleRead((SingleRead) selectedDerivate);
-                }
-            }
+//            else if(selectedDerivate instanceof SingleRead){
+//                TreeNode parentNode = selectedNode.getParent();
+//                while(parentNode!=null && !(parentNode.getValue() instanceof DnaSample)){
+//                    parentNode = parentNode.getParent();
+//                }
+//                if(parentNode!=null && parentNode.getValue() instanceof DnaSample){
+//                    DnaSample dnaSample = (DnaSample)parentNode.getValue();
+//                    Amplification amplification = Amplification.NewInstance(dnaSample);
+//                    dnaSample.addAmplification(amplification);
+//                    amplification.addSingleRead((SingleRead) selectedDerivate);
+//                }
+//            }
             else if(selectedDerivate instanceof SpecimenOrObservationBase && DerivedUnit.class.isAssignableFrom(childClass)){
                 SpecimenOrObservationBase<?> specimenOrObservationBase = (SpecimenOrObservationBase<?>)selectedDerivate;
                 DerivedUnit derivedUnit;
index 2bac2f20bdd3cfcb016e68088d4f73cd23689ca2..d860a16b03a34e3b01cf8185e1fe72c450a257ca 100644 (file)
@@ -10,7 +10,6 @@ import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.TreeNode;
 import org.eclipse.jface.viewers.Viewer;
 
-import eu.etaxonomy.cdm.model.molecular.Amplification;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
 import eu.etaxonomy.cdm.model.molecular.SingleRead;
@@ -69,35 +68,35 @@ public class DerivateContentProvider implements ITreeContentProvider {
             }
             return children.toArray();
         }
-        else if(value instanceof Amplification){
-            if(parentNode!=null && parentNode.getValue() instanceof Sequence){
-                Set<SingleRead> amplificationSingleReads = ((Amplification) value).getSingleReads();
-                Set<SingleRead> sequenceSingleReads = ((Sequence)parentNode.getValue()).getSingleReads();
-                for(SingleRead amplificationSingleRead:amplificationSingleReads){
-                    if(sequenceSingleReads.contains(amplificationSingleRead)){
-                        TreeNode node = new TreeNode(amplificationSingleRead);
-                        node.setParent(currentnode);
-                        children.add(node);
-                    }
-                }
-                return children.toArray();
-            }
-        }
+//        else if(value instanceof Amplification){
+//            if(parentNode!=null && parentNode.getValue() instanceof Sequence){
+//                Set<SingleRead> amplificationSingleReads = ((Amplification) value).getSingleReads();
+//                Set<SingleRead> sequenceSingleReads = ((Sequence)parentNode.getValue()).getSingleReads();
+//                for(SingleRead amplificationSingleRead:amplificationSingleReads){
+//                    if(sequenceSingleReads.contains(amplificationSingleRead)){
+//                        TreeNode node = new TreeNode(amplificationSingleRead);
+//                        node.setParent(currentnode);
+//                        children.add(node);
+//                    }
+//                }
+//                return children.toArray();
+//            }
+//        }
         else if(value instanceof Sequence){
             Set<SingleRead> singleReads = ((Sequence) value).getSingleReads();
             for(SingleRead singleRead:singleReads){
-                // if the single read has an amplification then show the amplification as the direct child
-                // (and the single read as child of the amplification)
-                if(singleRead.getAmplification()!=null){
-                    TreeNode node = new TreeNode(singleRead.getAmplification());
-                    node.setParent(currentnode);
-                    children.add(node);
-                }
-                else{
+//                // if the single read has an amplification then show the amplification as the direct child
+//                // (and the single read as child of the amplification)
+//                if(singleRead.getAmplification()!=null){
+//                    TreeNode node = new TreeNode(singleRead.getAmplification());
+//                    node.setParent(currentnode);
+//                    children.add(node);
+//                }
+//                else{
                     TreeNode node = new TreeNode(singleRead);
                     node.setParent(currentnode);
                     children.add(node);
-                }
+//                }
             }
             return children.toArray();
         }
@@ -129,14 +128,14 @@ public class DerivateContentProvider implements ITreeContentProvider {
 
         if(element instanceof DnaSample){
             DnaSample dnaSample = (DnaSample)element;
-            if(!dnaSample.getSequences().isEmpty() || !dnaSample.getAmplifications().isEmpty()){
+            if(!dnaSample.getSequences().isEmpty()){// || !dnaSample.getAmplifications().isEmpty()){
                 return true;
             }
         }
-        else if(element instanceof Amplification){
-            Amplification amplification = (Amplification)element;
-            return !amplification.getSingleReads().isEmpty();
-        }
+//        else if(element instanceof Amplification){
+//            Amplification amplification = (Amplification)element;
+//            return !amplification.getSingleReads().isEmpty();
+//        }
         else if(element instanceof Sequence){
             return !((Sequence)element).getSingleReads().isEmpty();
         }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationCloningWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationCloningWizardPage.java
new file mode 100644 (file)
index 0000000..02c1d12
--- /dev/null
@@ -0,0 +1,57 @@
+// $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.newWizard;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationCloningDetailElement;
+
+/**
+ * @author pplitzner
+ * @date 11.03.2014
+ *
+ */
+public class AmplificationCloningWizardPage extends AbstractCdmEntityWizardPage<Amplification> {
+
+    /**
+     * @param formFactory
+     * @param conversation
+     * @param entity
+     */
+    public AmplificationCloningWizardPage(CdmFormFactory formFactory,
+            ConversationHolder conversation, Amplification entity) {
+        super(formFactory, conversation, entity);
+        setTitle("Amplification Cloning Data");
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.forms.AbstractCdmEntityWizardPage#checkComplete()
+     */
+    @Override
+    protected void checkComplete() {
+        setPageComplete(true);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
+     */
+    @Override
+    public AbstractCdmDetailElement<Amplification> createElement(ICdmFormElement rootElement) {
+        AmplificationCloningDetailElement detailElement = formFactory.createAmplificationCloningDetailElement(rootElement);
+        detailElement.setEntity(getEntity());
+        checkComplete();
+        return detailElement;
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationGeneralWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationGeneralWizardPage.java
new file mode 100644 (file)
index 0000000..df056f0
--- /dev/null
@@ -0,0 +1,59 @@
+// $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.newWizard;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.cdm.model.molecular.Primer;
+import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGeneralDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.PrimerGeneralDetailElement;
+
+/**
+ * @author pplitzner
+ * @date 11.03.2014
+ *
+ */
+public class AmplificationGeneralWizardPage extends AbstractCdmEntityWizardPage<Amplification> {
+
+    /**
+     * @param formFactory
+     * @param conversation
+     * @param entity
+     */
+    public AmplificationGeneralWizardPage(CdmFormFactory formFactory,
+            ConversationHolder conversation, Amplification entity) {
+        super(formFactory, conversation, entity);
+        setTitle("General Amplification Data");
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.forms.AbstractCdmEntityWizardPage#checkComplete()
+     */
+    @Override
+    protected void checkComplete() {
+        setPageComplete(true);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
+     */
+    @Override
+    public AbstractCdmDetailElement<Amplification> createElement(ICdmFormElement rootElement) {
+        AmplificationGeneralDetailElement detailElement = formFactory.createAmplificationGeneralDetailElement(rootElement);
+        detailElement.setEntity(getEntity());
+        checkComplete();
+        return detailElement;
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationPrimerWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationPrimerWizardPage.java
new file mode 100644 (file)
index 0000000..a63a0ca
--- /dev/null
@@ -0,0 +1,57 @@
+// $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.newWizard;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationPrimerDetailElement;
+
+/**
+ * @author pplitzner
+ * @date 11.03.2014
+ *
+ */
+public class AmplificationPrimerWizardPage extends AbstractCdmEntityWizardPage<Amplification> {
+
+    /**
+     * @param formFactory
+     * @param conversation
+     * @param entity
+     */
+    public AmplificationPrimerWizardPage(CdmFormFactory formFactory,
+            ConversationHolder conversation, Amplification entity) {
+        super(formFactory, conversation, entity);
+        setTitle("Amplification Primer Data");
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.forms.AbstractCdmEntityWizardPage#checkComplete()
+     */
+    @Override
+    protected void checkComplete() {
+        setPageComplete(true);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
+     */
+    @Override
+    public AbstractCdmDetailElement<Amplification> createElement(ICdmFormElement rootElement) {
+        AmplificationPrimerDetailElement detailElement = formFactory.createAmplificationPrimerDetailElement(rootElement);
+        detailElement.setEntity(getEntity());
+        checkComplete();
+        return detailElement;
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewAmplificationWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewAmplificationWizard.java
new file mode 100644 (file)
index 0000000..490e1e0
--- /dev/null
@@ -0,0 +1,63 @@
+// $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.newWizard;
+
+import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;
+import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author pplitzner
+ * @date 11.03.2014
+ *
+ */
+public class NewAmplificationWizard  extends AbstractNewEntityWizard<Amplification> {
+
+    private AmplificationGeneralWizardPage amplificationGeneralPage;
+    private AmplificationPrimerWizardPage amplificationPrimerPage;
+    private AmplificationCloningWizardPage amplificationCloningPage;
+
+    /** {@inheritDoc} */
+    @Override
+    public void addPages() {
+        amplificationGeneralPage = new AmplificationGeneralWizardPage(formFactory, getConversationHolder(), getEntity());
+        addPage(amplificationGeneralPage);
+        amplificationPrimerPage = new AmplificationPrimerWizardPage(formFactory, getConversationHolder(), getEntity());
+        addPage(amplificationPrimerPage);
+        amplificationCloningPage = new AmplificationCloningWizardPage(formFactory, getConversationHolder(), getEntity());
+        addPage(amplificationCloningPage);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected Amplification createNewEntity() {
+        return Amplification.NewInstance();
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected void saveEntity() {
+        CdmStore.getService(IAmplificationService.class).saveOrUpdate(getEntity());
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setEntity(Amplification entity) {
+        super.setEntity(entity);
+        amplificationGeneralPage.getDetailElement().setEntity(entity);
+        amplificationPrimerPage.getDetailElement().setEntity(entity);
+        amplificationCloningPage.getDetailElement().setEntity(entity);
+    }
+
+    @Override
+    protected String getEntityName() {
+        return "Amplification";
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AmplificationSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AmplificationSelectionDialog.java
new file mode 100644 (file)
index 0000000..a1b4c47
--- /dev/null
@@ -0,0 +1,89 @@
+// $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.ui.dialog.selection;
+
+import java.util.UUID;
+
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
+import eu.etaxonomy.taxeditor.newWizard.NewAmplificationWizard;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author pplitzner
+ * @date 11.03.2014
+ *
+ */
+public class AmplificationSelectionDialog extends
+AbstractFilteredCdmResourceSelectionDialog<Amplification> {
+
+    public static Amplification select(Shell shell, ConversationHolder conversation, Amplification amplification){
+        AmplificationSelectionDialog dialog = new AmplificationSelectionDialog(shell, conversation,
+                "Choose Unit", false, AmplificationSelectionDialog.class.getCanonicalName(), amplification);
+        return getSelectionFromDialog(dialog);
+    }
+
+    /**
+     * <p>Constructor for FilteredDerivedUnitSelectionDialog.</p>
+     */
+    protected AmplificationSelectionDialog(Shell shell, ConversationHolder conversation, String title,
+            boolean multi, String settings, Amplification cdmObject) {
+        super(shell, conversation, title, multi, settings, cdmObject);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected Amplification getPersistentObject(UUID uuid) {
+        Object object = CdmStore.getService(IAmplificationService.class).load(uuid);
+
+        Amplification amplification = (Amplification) HibernateProxyHelper.deproxy(object);
+
+        if(amplification != null){
+            return amplification;
+        }
+        AbstractUtility.error(this.getClass(), "Selected unit is not an amplification", null);
+        return null;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected void initModel() {
+        model = CdmStore.getService(IAmplificationService.class).getAmplificationUuidAndDescription();
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.dialog.selection.AbstractFilteredCdmResourceSelectionDialog#getTitle(eu.etaxonomy.cdm.model.common.ICdmBase)
+     */
+    @Override
+    protected String getTitle(Amplification cdmObject) {
+        if(cdmObject!=null){
+            return cdmObject.getDescription();
+        }
+        return super.getTitle(cdmObject);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
+        return new NewAmplificationWizard();
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected String getNewWizardLinkText() {
+        return String.format("Create a new <a>%1s</a>", "Amplification ");
+    }
+}
index f461466754e6869218b0cd6b2888b00b8fc90efb..5f09c9b96fe2b78c1c5e1f49d3b4302016b87fbb 100644 (file)
@@ -25,6 +25,7 @@ import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.cdm.model.molecular.Amplification;
 import eu.etaxonomy.cdm.model.molecular.Primer;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
@@ -118,6 +119,9 @@ public class SelectionDialogFactory {
                if(clazz.equals(Primer.class)){
                    return (T) PrimerSelectionDialog.select(shell, conversation, (Primer) curentSelection);
                }
+               if(clazz.equals(Amplification.class)){
+                   return (T) AmplificationSelectionDialog.select(shell, conversation, (Amplification) curentSelection);
+               }
 
                return null;
        }
index 9778af4d957c47203e289528cdb4d83f7705c0df..f7f789b92e7916cf319a2cbd77a18b9cd431a8e8 100644 (file)
@@ -39,6 +39,8 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 public class DerivedUnitBaseDetailElement extends
                AbstractCdmDetailElement<DerivedUnitFacade> {
 
+    private TextWithLabelElement textOriginalLabelData;
+
        private TextWithLabelElement text_derivedUnitDefinitions;
 
        private TextWithLabelElement text_barcode;
@@ -81,6 +83,8 @@ public class DerivedUnitBaseDetailElement extends
                // "Specimen Definition",
                // facade.getDerivedUnitDefinition(CdmStore.getDefaultLanguage()),
                // style);
+           //FIXME map original label data to corresponding model field
+           textOriginalLabelData = formFactory.createTextWithLabelElement(formElement, "Original Label Data", null, style);
         text_barcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
         text_catalogNumber = formFactory.createTextWithLabelElement(formElement, "Catalog Number", entity.getCatalogNumber(), style);
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGelPhotoDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGelPhotoDetailElement.java
new file mode 100644 (file)
index 0000000..ce27240
--- /dev/null
@@ -0,0 +1,60 @@
+// $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.ui.section.occurrence.dna;
+
+import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+
+/**
+ * @author pplitzner
+ * @date 15.01.2014
+ *
+ */
+public class AmplificationGelPhotoDetailElement  extends AbstractCdmDetailElement<Amplification> {
+    private AmplificationGelPhotoCollectionDetailSection sectionGelPhoto;
+
+    /**
+     * @param formFactory
+     * @param formElement
+     */
+    public AmplificationGelPhotoDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+        super(formFactory, formElement);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
+     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
+     */
+    @Override
+    protected void createControls(ICdmFormElement formElement, Amplification entity, int style) {
+        sectionGelPhoto = formFactory.createAmplificationGelPhotoCollectionDetailSection(getConversationHolder(), formElement, style);
+        sectionGelPhoto.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        sectionGelPhoto.setEntity(entity);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
+     * .lang.Object)
+     */
+    @Override
+    public void handleEvent(Object eventSource) {
+        handle
+    }
+
+}
index 1bc1759bb650927eb7dfb470ea1e6266de4d042f..d17b3468d73c6ef2666679ca58f198faf6fda380 100644 (file)
@@ -30,6 +30,7 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  */
 public class AmplificationGeneralDetailElement extends AbstractCdmDetailElement<Amplification> {
 
+    private TextWithLabelElement textDescription;
     private TermComboElement<DefinedTerm> comboMarker;
     private TimePeriodElement dateAmplification;
     private EntitySelectionElement<AgentBase> selectionAmplificationStaff;
@@ -62,6 +63,7 @@ public class AmplificationGeneralDetailElement extends AbstractCdmDetailElement<
      */
     @Override
     protected void createControls(ICdmFormElement formElement, Amplification entity, int style) {
+        textDescription = formFactory.createTextWithLabelElement(formElement, "Description", entity.getDescription(), style);
         comboMarker = formFactory.createTermComboElement(DefinedTerm.class, formElement, "Marker", entity.getDnaMarker(), style);
 //        dateAmplification = formFactory.createTimePeriodElement(formElement, "Amplification Date", entity.getTimeperiod(), style);
 //        selectionAmplificationStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Amplification staff", entity.getActor(), EntitySelectionElement.ALL, style);
@@ -85,7 +87,10 @@ public class AmplificationGeneralDetailElement extends AbstractCdmDetailElement<
      */
     @Override
     public void handleEvent(Object eventSource) {
-        if(eventSource==comboMarker){
+        if(eventSource==textDescription){
+            getEntity().setDescription(textDescription.getText());
+        }
+        else if(eventSource==comboMarker){
             getEntity().setDnaMarker(comboMarker.getSelection());
         }
         else if(eventSource==dateAmplification){
index 268fcf3b22d362c1c8d6043ad84bdae7b8628c4b..54f33c6fac6e0315550b92c0da3bc2f83c23b295 100644 (file)
@@ -9,6 +9,7 @@
  */
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
+import eu.etaxonomy.cdm.model.molecular.Amplification;
 import eu.etaxonomy.cdm.model.molecular.Primer;
 import eu.etaxonomy.cdm.model.molecular.SingleRead;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -24,6 +25,7 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 public class SingleReadGeneralDetailElement extends AbstractCdmDetailElement<SingleRead> {
 
     private EntitySelectionElement<Primer> selectionPrimer;
+    private EntitySelectionElement<Amplification> selectionAmplification;
 
     /**
      * @param formFactory
@@ -43,6 +45,7 @@ public class SingleReadGeneralDetailElement extends AbstractCdmDetailElement<Sin
     @Override
     protected void createControls(ICdmFormElement formElement, SingleRead entity, int style) {
         selectionPrimer = formFactory.createSelectionElement(Primer.class, getConversationHolder(), formElement, "Primer", entity.getPrimer(), EntitySelectionElement.ALL, style);
+        selectionAmplification = formFactory.createSelectionElement(Amplification.class, getConversationHolder(), formElement, "Amplification", entity.getAmplification(), EntitySelectionElement.ALL, style);
     }
 
     /*
@@ -57,5 +60,8 @@ public class SingleReadGeneralDetailElement extends AbstractCdmDetailElement<Sin
         if(eventSource==selectionPrimer){
             getEntity().setPrimer(selectionPrimer.getSelection());
         }
+        else if(eventSource==selectionAmplification){
+            selectionAmplification.getSelection().addSingleRead(getEntity());
+        }
     }
 }
index 3e72bd6cb444510cb31e7ed13bd68c8968266169..a2cfa9026485767fa6e6196aabd4dc3cd83cfead 100644 (file)
@@ -24,6 +24,7 @@ import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.cdm.model.molecular.Amplification;
 import eu.etaxonomy.cdm.model.molecular.Primer;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
@@ -31,6 +32,9 @@ import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.TextHelper;
+import eu.etaxonomy.taxeditor.newWizard.AmplificationCloningWizardPage;
+import eu.etaxonomy.taxeditor.newWizard.AmplificationGeneralWizardPage;
+import eu.etaxonomy.taxeditor.newWizard.AmplificationPrimerWizardPage;
 import eu.etaxonomy.taxeditor.newWizard.PrimerWizardPage;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -133,6 +137,19 @@ public class EditFromSelectionWizard extends Wizard implements
             addPage(new PrimerWizardPage(formFactory,
                     selectionElement.getConversationHolder(),
                     (Primer) entity));
+        } else if (entity instanceof Amplification) {
+            addPage(new AmplificationGeneralWizardPage(formFactory,
+                    selectionElement.getConversationHolder(),
+                    (Amplification) entity));
+            addPage(new AmplificationPrimerWizardPage(formFactory,
+                    selectionElement.getConversationHolder(),
+                    (Amplification) entity));
+            addPage(new AmplificationCloningWizardPage(formFactory,
+                    selectionElement.getConversationHolder(),
+                    (Amplification) entity));
+//            addPage(new AmplificationGelPhotoWizardPage(formFactory,
+//                    selectionElement.getConversationHolder(),
+//                    (Amplification) entity));
         } else {
                        AbstractUtility.warningDialog("Missing interface", this,
                                        "No detail element for current selection");
index 75bc4d725a51a4c90c51a5b29977e062b67f02b1..359fd901a3dd355596a787d0b9091990e6d7a6b8 100644 (file)
@@ -29,6 +29,7 @@ import eu.etaxonomy.cdm.model.common.Group;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.cdm.model.molecular.Amplification;
 import eu.etaxonomy.cdm.model.molecular.Primer;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
@@ -320,6 +321,8 @@ public class EntitySelectionElement<T extends ICdmBase> extends
                 return ((User) entity).getUsername();
             } else if (entity instanceof Primer){
                 return ((Primer) entity).getLabel();
+            } else if (entity instanceof Amplification){
+                return ((Amplification) entity).getDescription();
             }
 
                }
index 7bedf306beaaf189f4222b23a9e72b2a78189964..10aefebb895560334d7ccbcd77ef5e615bea0f3a 100644 (file)
@@ -13,7 +13,6 @@ import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.jface.viewers.TreeNode;
 import org.eclipse.swt.graphics.Image;
 
-import eu.etaxonomy.cdm.model.molecular.Amplification;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
 import eu.etaxonomy.cdm.model.molecular.SingleRead;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
@@ -83,9 +82,9 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         else if(element instanceof Sequence){
             return ImageResources.getImage(ImageResources.SEQUENCE_DERIVATE);
         }
-        else if(element instanceof Amplification){
-            return ImageResources.getImage(ImageResources.AMPLIFICATION_DERIVATE);
-        }
+//        else if(element instanceof Amplification){
+//            return ImageResources.getImage(ImageResources.AMPLIFICATION_DERIVATE);
+//        }
         else if(element instanceof SingleRead){
             return ImageResources.getImage(ImageResources.SINGLE_READ_DERIVATE);
         }