merge-update from trunk
authorPatric Plitzner <p.plitzner@bgbm.org>
Thu, 3 Jul 2014 15:47:13 +0000 (15:47 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Thu, 3 Jul 2014 15:47:13 +0000 (15:47 +0000)
17 files changed:
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/SpecimenProviderSelectionWizardPage.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/SpecimenSearchWizard.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java
eu.etaxonomy.taxeditor.store/.classpath
eu.etaxonomy.taxeditor.store/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.store/build.properties
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/TermManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/TermStore.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceViewPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/specimenSearch/SpecimenProviderSelectionController.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/specimenSearch/SpecimenSearchController.java

index 5657686e3bc4fdd0ac4c743784eb8a64d39c4417..fae847394171aed05c4bf15c102caf245063cf2f 100644 (file)
@@ -9,6 +9,11 @@
 */
 package eu.etaxonomy.taxeditor.editor.view.dataimport;
 
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.widgets.Composite;
 
@@ -24,6 +29,7 @@ import eu.etaxonomy.taxeditor.view.specimenSearch.SpecimenProviderSelectionContr
 public class SpecimenProviderSelectionWizardPage extends WizardPage{
 
     private SpecimenProviderSelectionController specimenProviderSelectionController;
+    private URI endPoint;
 
     protected SpecimenProviderSelectionWizardPage(String pageName) {
         super(pageName);
@@ -37,7 +43,7 @@ public class SpecimenProviderSelectionWizardPage extends WizardPage{
      */
     @Override
     public void createControl(Composite parent) {
-        specimenProviderSelectionController = new SpecimenProviderSelectionController(parent);
+        specimenProviderSelectionController = SpecimenProviderSelectionController.getInstance(parent, getWizard());
         setControl(specimenProviderSelectionController.getComposite());
     }
 
@@ -50,4 +56,46 @@ public class SpecimenProviderSelectionWizardPage extends WizardPage{
         }
     }
 
+    /**
+     * @return
+     * @throws URISyntaxException
+     */
+    public URI getEndPoint() {
+        return endPoint;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.wizard.WizardPage#isPageComplete()
+     */
+    @Override
+    public boolean isPageComplete() {
+        if(specimenProviderSelectionController.getComposite().getBtnBioCaseProvider().getSelection()){
+            endPoint = null;
+            try {
+                endPoint = new URL(specimenProviderSelectionController.getComposite().getTxtAccessPoint().getText()).toURI();
+                this.setErrorMessage(null);
+                return true;
+            } catch (MalformedURLException e) {
+                setErrorMessage("A valid URL has to be entered.");
+                return false;
+            } catch (URISyntaxException e) {
+                setErrorMessage("A valid URL has to be entered.");
+                return false;
+            }
+        }
+        else if(specimenProviderSelectionController.getComposite().getBtnGbif().getSelection()){
+            this.setErrorMessage(null);
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * @return
+     */
+    public SpecimenProviderSelectionController getController() {
+        return specimenProviderSelectionController;
+    }
+
+
 }
index 412b991dda75084aebbc0c0cc4683cb717d09ee9..a2a21f96559fac9ccb1581c063d2a85ec11f0a78 100644 (file)
@@ -57,12 +57,13 @@ public class SpecimenSearchWizard extends Wizard implements IImportWizard {
     @Override
     public boolean performFinish() {
         searchPage.getController().saveLastSate();
-       
+        providerSelectionPage.getController().saveLastState();
+
         DataImportEditorInput<?> input = null;
         query = searchPage.getQuery();
         switch (providerSelectionPage.getQueryType()) {
         case BIOCASE:
-            input = new BioCaseEditorInput(query, null);
+            input = new BioCaseEditorInput(query, providerSelectionPage.getEndPoint());
             break;
         case GBIF:
             input = new GbifImportEditorInput(query);
index 06aaa37cd09f03aa3bef5c12de47665fbf5f8f24..bab27cfed83353fb37aa25949f082ea979737abf 100644 (file)
@@ -8,6 +8,7 @@ import java.util.Set;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.AbstractTreeViewer;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TreeNode;
 import org.eclipse.jface.viewers.TreeViewer;
@@ -88,7 +89,7 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa
         viewer.setContentProvider(new DerivateContentProvider());
         labelProvider = new DerivateLabelProvider();
         viewer.setLabelProvider(labelProvider);
-        viewer.setAutoExpandLevel(2);
+        viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
         // Propagate selection from viewer
         getSite().setSelectionProvider(viewer);
 
index c21f3696a373be7372d9c2ab62fec5bd0e22ab96..b956e86c779337c9dc9e6335f021c44b07749fe0 100644 (file)
@@ -15,7 +15,6 @@ import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.actions.CompoundContributionItem;
 
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy;
-import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
@@ -30,7 +29,6 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
 
 /**
  * Context menu for the creation of derivates in the derivate hierarchy.
@@ -47,9 +45,6 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
                 new ContributionItem() {
                     @Override
                     public void fill(Menu menu, int index) {
-                        DefinedTerm artworkTerm = DerivateLabelProvider.getArtworkTerm();
-                        DefinedTerm livingPlantPhotoTerm = DerivateLabelProvider.getLivingPlantPhotoTerm();
-                        DefinedTerm specimenScanTerm = DerivateLabelProvider.getSpecimenScanTerm();
                         MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
                         addItem.setText("Add...");
                         Menu addMenu = new Menu(menu);
@@ -64,18 +59,14 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
                                 new MenuItem(addMenu, SWT.SEPARATOR);
                                 createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.TissueSample);
                                 createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample);
-                                createMenuItem(addMenu, "Specimen Scan", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, specimenScanTerm);
-                                createMenuItem(addMenu, "Artwork", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, artworkTerm);
-                                createMenuItem(addMenu, "Living Plant Photo", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, livingPlantPhotoTerm);
+                                createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media);
                             }
                             //context menu for Specimen
                             else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){
 
                                 createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.TissueSample);
                                 createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample);
-                                createMenuItem(addMenu, "Specimen Scan", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, specimenScanTerm);
-                                createMenuItem(addMenu, "Artwork", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, artworkTerm);
-                                createMenuItem(addMenu, "Living Plant Photo", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, livingPlantPhotoTerm);
+                                createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media);
                             }
                             //context menu for TissueSample
                             else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.TissueSample){
@@ -104,14 +95,10 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
         return contributionItems;
     }
 
-    private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType, DefinedTerm kindOfUnit) {
+    private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) {
         MenuItem menuItem = new MenuItem(menu, SWT.NONE);
         menuItem.setText(menuLabel);
-        menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType, kindOfUnit));
-    }
-
-    private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) {
-        createMenuItem(menu, menuLabel, selectedNode, childClass, specimenType, null);
+        menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType));
     }
 
     private class WidgetSelectionListener extends SelectionAdapter{
@@ -120,18 +107,15 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
         //TODO: we need a common interface for the generic like e.g. "IDerivateHierarchyNode"
         private final Class<?> childClass;
         private final SpecimenOrObservationType specimenType;
-        private final DefinedTerm kindOfUnit;
 
         /**
          * @param selectedNode
          * @param specimenType
-         * @param kindOfUnit
          */
-        public WidgetSelectionListener(TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType, DefinedTerm kindOfUnit) {
+        public WidgetSelectionListener(TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) {
             this.selectedNode = selectedNode;
             this.childClass = childClass;
             this.specimenType = specimenType;
-            this.kindOfUnit = kindOfUnit;
         }
 
         /* (non-Javadoc)
@@ -159,7 +143,6 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
                     derivedUnit = MediaSpecimen.NewInstance(specimenType);
                     //a MediaSpecimen with no media attached does not make sense. Hence we add one
                     ((MediaSpecimen)derivedUnit).setMediaSpecimen(Media.NewInstance());
-                    derivedUnit.setKindOfUnit(kindOfUnit);
                 }
                 else{
                     derivedUnit = DerivedUnit.NewInstance(specimenType);
index ee4c1eaf51a36033492cb5045bdfeef04799db80..666d5b1fe50f830ec445655a369f9decdea964c1 100644 (file)
@@ -1,10 +1,20 @@
 <?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 exported="true" kind="lib" path="lib/bioinfweb.commons.swing.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/core-1.8.5.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/sequencing-1.8.5.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jfreechart-1.0.17/lib/jfreechart-1.0.17-swt.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/bioinfweb.commons.tic.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/LibrAlign.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/biojava3-alignment-3.0.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/bioinfweb.commons.experimental.bio.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/biojava3-core-3.0.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/bioinfweb.commons.core.jar"/>
        <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
        <classpathentry including="**/*.java" kind="src" path="src/main/java"/>
        <classpathentry including="**/*.java" kind="src" path="src/test/java"/>
        <classpathentry kind="src" path="src/main/resources"/>
        <classpathentry including="**/*.java" kind="src" path="src/test/resources"/>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
        <classpathentry kind="output" path="target/classes"/>
 </classpath>
index 9344dffeabf5c66c3a341c302adff688881316be..d2216872f27da235fabe65170d2989bad3c9473e 100644 (file)
@@ -52,7 +52,32 @@ Export-Package: eu.etaxonomy.cdm,
  eu.etaxonomy.taxeditor.view.derivateSearch,
  eu.etaxonomy.taxeditor.view.detail,
  eu.etaxonomy.taxeditor.view.specimenSearch,
- eu.etaxonomy.taxeditor.view.supplementaldata
+ eu.etaxonomy.taxeditor.view.supplementaldata,
+ info.bioinfweb.commons,
+ info.bioinfweb.commons.appversion,
+ info.bioinfweb.commons.bio,
+ info.bioinfweb.commons.bio.alignment.pairwise,
+ info.bioinfweb.commons.bio.biojava3.alignment,
+ info.bioinfweb.commons.bio.biojava3.alignment.io,
+ info.bioinfweb.commons.bio.biojava3.alignment.io.fasta,
+ info.bioinfweb.commons.bio.biojava3.alignment.io.hennig86,
+ info.bioinfweb.commons.bio.biojava3.alignment.io.mega,
+ info.bioinfweb.commons.bio.biojava3.alignment.io.nexus,
+ info.bioinfweb.commons.bio.biojava3.alignment.io.phylip,
+ info.bioinfweb.commons.bio.biojava3.alignment.template,
+ info.bioinfweb.commons.bio.biojava3.core.sequence,
+ info.bioinfweb.commons.bio.biojava3.core.sequence.compound,
+ info.bioinfweb.commons.bio.biojava3.core.sequence.io,
+ info.bioinfweb.commons.bio.biojava3.core.sequence.template,
+ info.bioinfweb.commons.bio.biojava3.core.sequence.views,
+ info.bioinfweb.commons.bio.biojavax.bio.phylo.io.nexus,
+ info.bioinfweb.commons.changemonitor,
+ info.bioinfweb.commons.collections,
+ info.bioinfweb.commons.graphics,
+ info.bioinfweb.commons.io,
+ info.bioinfweb.commons.log,
+ info.bioinfweb.commons.progress,
+ info.bioinfweb.commons.text
 Require-Bundle: org.eclipse.osgi,
  org.eclipse.ui,
  org.eclipse.jface.text,
@@ -240,4 +265,14 @@ Bundle-ClassPath: .,
  xpp3-1.1.4c.jar,
  xpp3_min-1.1.4c.jar,
  xstream-1.4.4.jar,
- yjp-controller-api-redist-9.0.8.jar
+ yjp-controller-api-redist-9.0.8.jar,
+ lib/bioinfweb.commons.core.jar,
+ lib/biojava3-core-3.0.7.jar,
+ lib/bioinfweb.commons.experimental.bio.jar,
+ lib/biojava3-alignment-3.0.7.jar,
+ lib/LibrAlign.jar,
+ lib/bioinfweb.commons.tic.jar,
+ lib/jfreechart-1.0.17/lib/jfreechart-1.0.17-swt.jar,
+ lib/bioinfweb.commons.swing.jar,
+ lib/core-1.8.5.jar,
+ lib/sequencing-1.8.5.jar
index 925934e50ff1d92c868e24dda037b16c48abeb72..0ed4bb68791fcaf03afbb3ee025bfbede0921f3a 100644 (file)
@@ -6,4 +6,14 @@ bin.includes = META-INF/,\
                .,\
                plugin.xml,\
                icons/,\
-               p2.inf
+               p2.inf,\
+               lib/bioinfweb.commons.core.jar,\
+               lib/biojava3-core-3.0.7.jar,\
+               lib/bioinfweb.commons.experimental.bio.jar,\
+               lib/biojava3-alignment-3.0.7.jar,\
+               lib/LibrAlign.jar,\
+               lib/bioinfweb.commons.tic.jar,\
+               lib/jfreechart-1.0.17/lib/jfreechart-1.0.17-swt.jar,\
+               lib/bioinfweb.commons.swing.jar,\
+               lib/core-1.8.5.jar,\
+               lib/sequencing-1.8.5.jar
index 59e9865fe6f8bd04b847ed459cc93005e4ae36b1..d7f16fe55c0d3c1f5bf3cb358b274beb56eac9a4 100644 (file)
@@ -23,7 +23,7 @@ import org.eclipse.ui.IMemento;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.TermBase;
 import eu.etaxonomy.cdm.model.common.TermType;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
 import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
 import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
 
@@ -56,6 +56,15 @@ public class TermManager extends ContextListenerAdapter{
            return getFilteredTerms(TermStore.getTerms(termType, null));
        }
 
+       /**
+        *
+        * @param clazz
+        * @return
+        */
+       public <T extends DefinedTermBase> List<T> getPreferredTerms(TermVocabulary<T> termVocabulary){
+           return getFilteredTerms(new ArrayList<T>(TermStore.getTerms(termVocabulary, null)));
+       }
+
        /**
         *
         * @param clazz
@@ -137,7 +146,7 @@ public class TermManager extends ContextListenerAdapter{
 
                String typeName = getTermClass(initialTerms);
                Collection<UUID> hiddenTermUuids = hiddenTermsMap.get(typeName);
-               
+
 
                if(hiddenTermUuids == null){
                        return initialTerms;
@@ -148,7 +157,7 @@ public class TermManager extends ContextListenerAdapter{
                                if(! hiddenTermUuids.contains(((TaxonRelationshipTypeInverseContainer) term).getType().getUuid())){
                                        T type = (T)((TaxonRelationshipTypeInverseContainer) term).getType();
                                        filteredTerms.add(type);
-                                       
+
                                }
                        }
                        if(! hiddenTermUuids.contains(term.getUuid())){
@@ -160,10 +169,10 @@ public class TermManager extends ContextListenerAdapter{
        }
 
        private <T extends DefinedTermBase> String getTermClass(Collection<T> initialTerms){
-          
+
                String result = null;
                if(!initialTerms.isEmpty()){
-                       
+
                        //TODO: there should be a more generic solution!!
                T entity = initialTerms.iterator().next();
                if (entity instanceof TaxonRelationshipTypeInverseContainer){
index 3db2afee30791caa4bcc6a7f23c1b70ab0a6c410..fe8016fc1f7a565f868798730d0b4db3e26cd607 100644 (file)
@@ -23,6 +23,7 @@ import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableExcepti
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
 import eu.etaxonomy.cdm.model.description.AbsenceTerm;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
@@ -65,6 +66,17 @@ public class TermStore {
         return getTermsFromService(termType, comparator);
        }
 
+       /**
+        * Returns an alphabetically sorted list of terms (anything that extends {@link DefinedTermBase}) of the given {@link TermType})
+        * currently available in the system.
+        *
+        * @param termType the term type
+        * @return an alphabetically sorted list of terms
+        */
+       public static <TERM extends DefinedTermBase> Set<TERM> getTerms(TermVocabulary<TERM> termVocabulary, Comparator<DefinedTermBase<?>> comparator){
+           return termVocabulary.getTerms();
+       }
+
        /**
         * Returns a list of terms of the given type currently available in the system.
         * If <code>filtered</code> is set to <code>true</code>, all terms for certain types will be
index 5e493dc4b5ec94ca5c14c1da779a34e03bfa1d98..8323e62dc7280fe880371324039e4c88611355f3 100644 (file)
@@ -22,6 +22,7 @@ import org.eclipse.swt.widgets.Listener;
 import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -67,107 +68,65 @@ public class TermComboElement<T extends DefinedTermBase>
 
        private List<T> customPreferredTerms;
 
-       /**
-        * <p>
-        * Constructor for AbstractTermComboElement.
-        * </p>
-        *
-        * @param parentElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param style
-        *            a int.
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param labelString
-        *            a {@link java.lang.String} object.
-        * @param selection
-        *            a T object.
-        * @param visibleItems
-        *            a int.
-        * @param <T>
-        *            a T object.
-        */
        public TermComboElement(CdmFormFactory formFactory,
                        ICdmFormElement parentElement, TermType termType, String labelString, T selection,
                        int style) {
-               super(formFactory, parentElement);
-
-               this.termClass =  (Class<T>) DefinedTerm.class;
-
-               if (labelString != null) {
-                       label = formFactory.createLabel(getLayoutComposite(), labelString);
-                       addControl(label);
-               }
-
-               // create combo
-               combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY);
-               addControl(combo);
-               combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
-               combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
-
-               //TODO try to remove generic T and avoid classes to be used
-               populateTerms((List<T>) getTermManager().getPreferredTerms(termType));
-
-               combo.addSelectionListener(this);
-               combo.addDisposeListener(this);
-               PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this);
-
-               if (selection != null) {
-                       setSelection(selection);
-               }
+               this(formFactory, parentElement, null, termType, null, labelString, selection, style);
        }
 
-       /**
-        * <p>
-        * Constructor for AbstractTermComboElement.
-        * </p>
-        *
-        * @param parentElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param style
-        *            a int.
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param labelString
-        *            a {@link java.lang.String} object.
-        * @param selection
-        *            a T object.
-        * @param visibleItems
-        *            a int.
-        * @param <T>
-        *            a T object.
-        */
        public TermComboElement(CdmFormFactory formFactory,
-                       ICdmFormElement parentElement, Class<T> termClass, String labelString, T selection,
-                       int style) {
-               super(formFactory, parentElement);
+               ICdmFormElement parentElement, TermVocabulary<?> termVocabulary, String labelString, T selection,
+               int style) {
+           this(formFactory, parentElement, null, null, termVocabulary, labelString, selection, style);
+       }
 
-               this.termClass = termClass;
+    public TermComboElement(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, Class<T> termClass, String labelString, T selection,
+            int style) {
+        this(formFactory, parentElement, termClass, null, null, labelString, selection, style);
+    }
 
-               if (labelString != null) {
-                       label = formFactory.createLabel(getLayoutComposite(), labelString);
-                       addControl(label);
-               }
+       private TermComboElement(CdmFormFactory formFactory,
+               ICdmFormElement parentElement, Class<T> termClass, TermType termType, TermVocabulary<?> termVocabulary, String labelString, T selection,
+               int style) {
+        super(formFactory, parentElement);
+
+        if(termClass!=null){
+            this.termClass = termClass;
+        }
+        else{
+            this.termClass =  (Class<T>) DefinedTerm.class;
+        }
 
-               // create combo
-               combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY);
-               addControl(combo);
-               combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
-               combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
+        if (labelString != null) {
+            label = formFactory.createLabel(getLayoutComposite(), labelString);
+            addControl(label);
+        }
 
-               populateTerms(getPreferredTerms());
+        // create combo
+        combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY | style);
+        addControl(combo);
+        combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
+        combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
 
-               combo.addSelectionListener(this);
-               combo.addDisposeListener(this);
-               PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this);
+        if(termType!=null){
+            //TODO try to remove generic T and avoid classes to be used
+            populateTerms((List<T>) getTermManager().getPreferredTerms(termType));
+        }
+        else if(termVocabulary!=null){
+            populateTerms((List<T>) getTermManager().getPreferredTerms(termVocabulary));
+        }
+        else if(this.termClass!=null){
+            populateTerms(getPreferredTerms());
+        }
 
-               if (selection != null) {
-                       setSelection(selection);
-               }
+        combo.addSelectionListener(this);
+        combo.addDisposeListener(this);
+        PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this);
+
+        if (selection != null) {
+            setSelection(selection);
+        }
        }
 
        /**
index 45b01cb383651b2247183702d48377d7892a2c5e..74de20b68d564e75c2c06d2d0135c0ae2062f299 100644 (file)
@@ -60,6 +60,7 @@ import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.common.Marker;
 import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
 import eu.etaxonomy.cdm.model.common.TimePeriod;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.model.common.VersionableEntity;
@@ -898,6 +899,41 @@ public class CdmFormFactory extends FormToolkit {
                return element;
        }
 
+       /**
+        * <p>
+        * createTermComboElement
+        * </p>
+        *
+        * @param termComboType
+        *            a
+        *            {@link eu.eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.TermComboType}
+        *            object.
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param labelString
+        *            a {@link java.lang.String} object.
+        * @param selection
+        *            a {@link eu.etaxonomy.cdm.model.common.DefinedTermBase}
+        *            object.
+        * @param style
+        *            a int.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.combo.TermComboElement}
+        *         object.
+        */
+
+       public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
+               TermVocabulary<?> termVocabulary,
+               ICdmFormElement parentElement,
+               String labelString,
+               T selection,
+               int style) {
+           TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termVocabulary, labelString, selection, style);
+           adapt(element);
+           parentElement.addElement(element);
+           return element;
+       }
+
     /**
      * <p>
      * createEnumComboElement
index 5dd71f15a0230ee21283ebe1ad960528882b96dd..0af1cb17f268f035b26ad2917a0adf83ddb7bed8 100644 (file)
@@ -13,16 +13,19 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.forms.widgets.ExpandableComposite;
 import org.joda.time.DateTime;
 
+import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.OriginalSourceType;
-import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
+import eu.etaxonomy.cdm.model.common.VocabularyEnum;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
 import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
 import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -32,7 +35,6 @@ import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.mvc.element.DateElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.media.MediaRepresentationSection;
-import eu.etaxonomy.taxeditor.ui.section.supplemental.SourceSection;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
@@ -42,6 +44,8 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  */
 public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<MediaSpecimen> {
 
+    private final TermVocabulary mediaSpecimenVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.MediaSpecimenKindOfUnit.getUuid());
+
     private TermComboElement<DefinedTerm> comboKindOfUnit;
     private LanguageStringWithLabelElement textTitleLanguageString;
     private EntitySelectionElement<AgentBase> selectionArtist;
@@ -74,7 +78,7 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
             formFactory.createLabel(formElement, "No media attached to this MediaSpecimen!");
         }
         else{
-            comboKindOfUnit = formFactory.createDefinedTermComboElement(TermType.KindOfUnit, formElement, "Kind of Media", entity.getKindOfUnit(), style);
+            comboKindOfUnit = formFactory.createDefinedTermComboElement(mediaSpecimenVocabulary, formElement, "Kind of Media", entity.getKindOfUnit(), style);
             textTitleLanguageString = formFactory.createLanguageStringWithLabelElement(formElement, "Motif", media.getTitle(), style);
             selectionArtist = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Prepared by", media.getArtist(), EntitySelectionElement.ALL, style);
 
index b4da945659ff12b50d6ca930daaea5e924f1a99b..48df3b4ab47c1c6b16f9e7f3abcb3f876e5d7145 100644 (file)
@@ -64,6 +64,9 @@ public class MediaSpecimenGeneralDetailSection  extends AbstractCdmDetailSection
             else if(getEntity().getKindOfUnit().equals(DerivateLabelProvider.getSpecimenScanTerm())){
                 text = "Specimen Scan";
             }
+            else if(getEntity().getKindOfUnit().equals(DerivateLabelProvider.getDetailImageTerm())){
+                text = "Detail Image";
+            }
         }
         if(text!=null){
             super.setText(text);
index 3cbafb3844980b5d28ff30c1c4e23ffcb66d0208..34afe6bb9e57404ac6dd27f3337460ebbef0e809 100644 (file)
@@ -1,61 +1,62 @@
 // $Id$
 /**
 * Copyright (C) 2007 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.
 */
 
 package eu.etaxonomy.taxeditor.view.datasource;
 
+import info.bioinfweb.commons.bio.biojava3.alignment.SimpleAlignment;
+import info.bioinfweb.commons.bio.biojava3.alignment.template.Alignment;
+import info.bioinfweb.commons.bio.biojava3.core.sequence.compound.AlignmentAmbiguityNucleotideCompoundSet;
+import info.bioinfweb.libralign.AlignmentArea;
+import info.bioinfweb.libralign.dataarea.implementations.ConsensusSequenceArea;
+import info.bioinfweb.libralign.pherogram.BioJavaPherogramProvider;
+import info.bioinfweb.libralign.pherogram.PherogramFormats.QualityOutputType;
+import info.bioinfweb.libralign.pherogram.PherogramHeadingView;
+import info.bioinfweb.libralign.pherogram.PherogramTraceCurveView;
+import info.bioinfweb.libralign.sequenceprovider.implementations.BioJavaSequenceDataProvider;
+import info.bioinfweb.libralign.sequenceprovider.tokenset.BioJavaTokenSet;
+
+import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.log4j.Logger;
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.common.NotDefinedException;
+import org.biojava.bio.chromatogram.ChromatogramFactory;
+import org.biojava.bio.chromatogram.UnsupportedChromatogramFormatException;
+import org.biojava3.core.sequence.DNASequence;
+import org.biojava3.core.sequence.compound.NucleotideCompound;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.StructuredViewer;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TableViewerColumn;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
 import org.eclipse.ui.part.ViewPart;
 import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-import org.springframework.security.core.GrantedAuthority;
 
 import eu.etaxonomy.cdm.config.ICdmSource;
-import eu.etaxonomy.cdm.database.ICdmDataSource;
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
 import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
 import eu.etaxonomy.taxeditor.model.IContextListener;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
  * <p>CdmDataSourceViewPart class.</p>
@@ -65,9 +66,9 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @version 1.0
  */
 public class CdmDataSourceViewPart extends ViewPart{
-       
+
     private static final Logger logger = Logger.getLogger(CdmDataSourceViewPart.class);
-       
+
        private class ContextListener extends ContextListenerAdapter{
                /* (non-Javadoc)
                 * @see eu.etaxonomy.taxeditor.model.IContextListener#contextAboutToStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
@@ -75,7 +76,7 @@ public class CdmDataSourceViewPart extends ViewPart{
                @Override
                public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
                        monitor.subTask("Refreshing Datasource View");
-                       viewer.refresh();       
+                       viewer.refresh();
                }
 
                /* (non-Javadoc)
@@ -84,7 +85,7 @@ public class CdmDataSourceViewPart extends ViewPart{
                @Override
                public void contextStop(IMemento memento, IProgressMonitor monitor) {
                        monitor.subTask("Refreshing Datasource View");
-                       viewer.refresh();       
+                       viewer.refresh();
                }
 
                /* (non-Javadoc)
@@ -96,10 +97,10 @@ public class CdmDataSourceViewPart extends ViewPart{
                        viewer.refresh();
                }
        }
-       
+
        private class DataSourceJob extends Job{
 
-               private List<ICdmSource> cdmSources;
+               private final List<ICdmSource> cdmSources;
 
                /**
                 * @param name
@@ -116,142 +117,218 @@ public class CdmDataSourceViewPart extends ViewPart{
                public IStatus run(final IProgressMonitor monitor) {
                        try{
                                logger.debug("Begin of eclipse core runtime Job to Retrieve datasources");
-                               monitor.beginTask("Retrieving datasources", cdmSources.size() + 1);                     
-                               
+                               monitor.beginTask("Retrieving datasources", cdmSources.size() + 1);
+
                                final List<CdmMetaDataAwareDataSourceContainer> containers = new ArrayList<CdmMetaDataAwareDataSourceContainer>();
-                               
+
                                for(ICdmSource cdmSource : cdmSources){
                                        containers.add(new CdmMetaDataAwareDataSourceContainer(cdmSource));
                                }
-                               
+
                                Display.getDefault().asyncExec(new Runnable() {
-                                       
+
                                        @Override
                                        public void run() {
                                                viewer.setInput(containers);
                                        }
                                });
                                monitor.worked(1);
-                               
+
                                for(final CdmMetaDataAwareDataSourceContainer container : containers){
-                                       
-                                       
-                                       if(logger.isDebugEnabled()) logger.debug("  #" + container.hashCode() + " : next DataSourceContainer");                                         
+
+
+                                       if(logger.isDebugEnabled()) {
+                        logger.debug("  #" + container.hashCode() + " : next DataSourceContainer");
+                    }
                                        container.getMetaDataFromDataSource();
-                                       if(logger.isDebugEnabled()) logger.debug("  #" + container.hashCode() + " : metadata retrieved, creating new runnable ...");    
+                                       if(logger.isDebugEnabled()) {
+                        logger.debug("  #" + container.hashCode() + " : metadata retrieved, creating new runnable ...");
+                    }
                                        Display.getDefault().asyncExec(new Runnable() {
-                                               
+
                                                @Override
                                                public void run() {
-                                                       if(logger.isDebugEnabled()) logger.debug("  #" + container.hashCode() + " starting sub thread to update ...");  
+                                                       if(logger.isDebugEnabled()) {
+                                logger.debug("  #" + container.hashCode() + " starting sub thread to update ...");
+                            }
                                                        viewer.update(container, null);
-                                                       if(logger.isDebugEnabled()) logger.debug("  #" + container.hashCode() + " end of sub thread to update ...");    
+                                                       if(logger.isDebugEnabled()) {
+                                logger.debug("  #" + container.hashCode() + " end of sub thread to update ...");
+                            }
                                                }
                                        });
-                                       if(logger.isDebugEnabled()) logger.debug("  #" + container.hashCode() + " done");       
+                                       if(logger.isDebugEnabled()) {
+                        logger.debug("  #" + container.hashCode() + " done");
+                    }
                                        monitor.worked(1);
                                }
-                               
+
                        }finally{
                                monitor.done();
                        }
                        return Status.OK_STATUS;
                }
        }
-       
+
        /** Constant <code>ID="eu.etaxonomy.taxeditor.store.datasource"{trunked}</code> */
        public static String ID = "eu.etaxonomy.taxeditor.view.datasource";
-       
+
        private TableViewer viewer;
 
        private String partNameCache;
 
        private IWorkbenchSiteProgressService service;
-       
+
        private IContextListener contextListener;
 
        private CdmDataSourceViewerComparator comparator;
-       
+
        /**
         * <p>Constructor for CdmDataSourceViewPart.</p>
         */
        public CdmDataSourceViewPart(){
        }
-       
+
+       private void librAlignInit(Composite parent){
+           ScrolledComposite scrolledComposite = new ScrolledComposite(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
+        scrolledComposite.setExpandHorizontal(true);
+        scrolledComposite.setExpandVertical(true);
+
+        Alignment<DNASequence, NucleotideCompound> alignment =
+                new SimpleAlignment<DNASequence, NucleotideCompound>();
+        alignment.add("Sequence 1", new DNASequence("ATCGTAGATCGTAGATCGTAGATCGTAGATCGTAGATCGTAGATCGTAG"));
+        alignment.add("Sequence 2", new DNASequence("AT-GTTG"));
+        alignment.add("Sequence 3", new DNASequence("AT-GTAG"));
+
+        BioJavaSequenceDataProvider<DNASequence, NucleotideCompound> sequenceProvider =
+                new BioJavaSequenceDataProvider<DNASequence, NucleotideCompound>(
+                        new BioJavaTokenSet<NucleotideCompound>(
+                                AlignmentAmbiguityNucleotideCompoundSet.getAlignmentAmbiguityNucleotideCompoundSet()),
+                        alignment);
+
+        AlignmentArea result = new AlignmentArea();
+        result.setSequenceProvider(sequenceProvider, false);
+        result.getDataAreas().getBottomAreas().add(new ConsensusSequenceArea(result));
+
+//        Composite alignmentWidget = result.createSWTWidget(scrolledComposite, SWT.NONE);
+//        scrolledComposite.setContent(alignmentWidget);
+//        scrolledComposite.setMinSize(alignmentWidget.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+
+        //+++ConsensusSequenceArea
+        ConsensusSequenceArea consensusSequenceArea = new ConsensusSequenceArea(result);
+        Composite consensusWidget = consensusSequenceArea.createSWTWidget(scrolledComposite, SWT.NONE);
+        scrolledComposite.setContent(consensusWidget);
+
+
+        //+++PherogramTraceCurveView+++
+        PherogramTraceCurveView pherogramView = new PherogramTraceCurveView();
+        //      pherogramView.setProvider(new BioJavaPherogramProvider(ChromatogramFactory.create(
+        //      new File("data\\pherograms\\Test_pel1PCR_Pel2Wdhg_PCR-7-A_1.ab1"))));
+        try {
+            pherogramView.setProvider(new BioJavaPherogramProvider(ChromatogramFactory.create(
+                    new File("/home/pplitzner/svn/branch/taxeditor-3.4/eu.etaxonomy.taxeditor.store/lib/jfreechart-1.0.17/lib/A10001_GM106-petD_F.scf"))));
+        } catch (UnsupportedChromatogramFormatException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        pherogramView.setHorizontalScale(1);
+        pherogramView.setVerticalScale(100);
+        pherogramView.getFormats().setQualityOutputType(QualityOutputType.ALL);
+        pherogramView.getFormats().setShowProbabilityValues(true);
+
+//        Composite pherogramWidget = pherogramView.createSWTWidget(scrolledComposite, SWT.NONE);
+//        scrolledComposite.setContent(pherogramWidget);
+//        scrolledComposite.setMinSize(pherogramWidget.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+
+        //+++Pherogramm Heading View+++
+        PherogramHeadingView pherogramHeadingView = new PherogramHeadingView(pherogramView);
+//        Composite pherogramHeadingWidget = pherogramHeadingView.createSWTWidget(scrolledComposite, SWT.NONE);
+//        scrolledComposite.setContent(pherogramHeadingWidget);
+//        scrolledComposite.setMinSize(pherogramHeadingWidget.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+
+       }
+
        /** {@inheritDoc} */
        @Override
        public void createPartControl(Composite parent) {
                service = (IWorkbenchSiteProgressService) getSite().getAdapter(IWorkbenchSiteProgressService.class);
                contextListener = new ContextListener();
                CdmStore.getContextManager().addContextListener(contextListener);
-               
+
                // Create top composite
                FillLayout fillLayout = new FillLayout();
                fillLayout.marginWidth = 0;
                fillLayout.marginHeight = 0;
-               fillLayout.type = SWT.VERTICAL; 
+               fillLayout.type = SWT.VERTICAL;
                parent.setLayout(fillLayout);
-               
-               viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
-                                                                                               | SWT.V_SCROLL | SWT.FULL_SELECTION);
-               getSite().setSelectionProvider(viewer);
-               
-               createColumns(viewer);
-               
-               viewer.setContentProvider(new CdmDataSourceContentProvider());
-               viewer.setLabelProvider(new CdmDataSourceLabelProvider());
-               comparator = new CdmDataSourceViewerComparator();
-               viewer.setComparator(comparator);
-               
-               
-               // register context menu
-               MenuManager menuMgr = new MenuManager();
-               menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-               getSite().registerContextMenu(menuMgr, viewer);
-
-               Control control = viewer.getControl();
-               Menu menu = menuMgr.createContextMenu(control);
-               control.setMenu(menu);  
-               
-               // connect on doubleclick
-               viewer.addDoubleClickListener(new IDoubleClickListener() {
-
-                       public void doubleClick(DoubleClickEvent event) {
-                               if (event.getSelection() instanceof StructuredSelection) {
-                                       
-                                       Object element = ((StructuredSelection) event
-                                                       .getSelection()).getFirstElement();
-                                       if (element instanceof CdmMetaDataAwareDataSourceContainer) {
-                                               String commandId = "eu.etaxonomy.taxeditor.store.datasource.change";
-                                               
-                                               ICommandService commandService = (ICommandService)getSite().getService(ICommandService.class);
-                                               
-                                               Command command = commandService.getCommand(commandId); 
-                                               if(command.isEnabled()) {
-                                               
-                                                       IHandlerService handlerService = (IHandlerService) StoreUtil.getService(IHandlerService.class);
-                                                       
-                                                       try {
-                                                               handlerService.executeCommand(commandId, null);
-                                                       } catch (ExecutionException e) {
-                                                               StoreUtil.error(this.getClass(), e);
-                                                       } catch (NotDefinedException e) {
-                                                               StoreUtil.error(this.getClass(), e);
-                                                       } catch (NotEnabledException e) {
-                                                               StoreUtil.error(this.getClass(), e);
-                                                       } catch (NotHandledException e) {
-                                                               StoreUtil.error(this.getClass(), e);
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-               });
-               
-               refresh();
+
+        librAlignInit(parent);
+
+
+//             viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
+//                                                                                             | SWT.V_SCROLL | SWT.FULL_SELECTION);
+//             getSite().setSelectionProvider(viewer);
+//
+//             createColumns(viewer);
+//
+//             viewer.setContentProvider(new CdmDataSourceContentProvider());
+//             viewer.setLabelProvider(new CdmDataSourceLabelProvider());
+//             comparator = new CdmDataSourceViewerComparator();
+//             viewer.setComparator(comparator);
+//
+//
+//             // register context menu
+//             MenuManager menuMgr = new MenuManager();
+//             menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
+//             getSite().registerContextMenu(menuMgr, viewer);
+//
+//             Control control = viewer.getControl();
+//             Menu menu = menuMgr.createContextMenu(control);
+//             control.setMenu(menu);
+//
+//             // connect on doubleclick
+//             viewer.addDoubleClickListener(new IDoubleClickListener() {
+//
+//                     @Override
+//            public void doubleClick(DoubleClickEvent event) {
+//                             if (event.getSelection() instanceof StructuredSelection) {
+//
+//                                     Object element = ((StructuredSelection) event
+//                                                     .getSelection()).getFirstElement();
+//                                     if (element instanceof CdmMetaDataAwareDataSourceContainer) {
+//                                             String commandId = "eu.etaxonomy.taxeditor.store.datasource.change";
+//
+//                                             ICommandService commandService = (ICommandService)getSite().getService(ICommandService.class);
+//
+//                                             Command command = commandService.getCommand(commandId);
+//                                             if(command.isEnabled()) {
+//
+//                                                     IHandlerService handlerService = (IHandlerService) AbstractUtility.getService(IHandlerService.class);
+//
+//                                                     try {
+//                                                             handlerService.executeCommand(commandId, null);
+//                                                     } catch (ExecutionException e) {
+//                                                             AbstractUtility.error(this.getClass(), e);
+//                                                     } catch (NotDefinedException e) {
+//                                                             AbstractUtility.error(this.getClass(), e);
+//                                                     } catch (NotEnabledException e) {
+//                                                             AbstractUtility.error(this.getClass(), e);
+//                                                     } catch (NotHandledException e) {
+//                                                             AbstractUtility.error(this.getClass(), e);
+//                                                     }
+//                                             }
+//                                     }
+//                             }
+//                     }
+//             });
+//
+//             refresh();
        }
 
-       
+
        // This will create the columns for the table
        private void createColumns(TableViewer viewer) {
                Table table = viewer.getTable();
@@ -272,13 +349,13 @@ public class CdmDataSourceViewPart extends ViewPart{
                table.setHeaderVisible(true);
                table.setLinesVisible(true);
                table.setSortDirection(SWT.UP);
-               
+
        }
-       
+
        /**
         * <p>refresh</p>
         */
-       public void refresh(){          
+       public void refresh(){
                getService().schedule(new DataSourceJob("Loading datasources", CdmDataSourceRepository.getAll()), Job.LONG);
        }
 
@@ -292,10 +369,10 @@ public class CdmDataSourceViewPart extends ViewPart{
        /** {@inheritDoc} */
        @Override
        public void setFocus() {
-               viewer.getControl().setFocus();
+//             viewer.getControl().setFocus();
        }
 
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.part.WorkbenchPart#showBusy(boolean)
         */
@@ -331,7 +408,7 @@ public class CdmDataSourceViewPart extends ViewPart{
        public IWorkbenchSiteProgressService getService() {
                return service;
        }
-       
+
        private SelectionAdapter getSelectionAdapter(final TableColumn column,
                        final int index) {
                SelectionAdapter selectionAdapter = new SelectionAdapter() {
index b42ffd8c5bd7da9909fd26119445f916edf47fd4..6aa6b2963e4f99996c5ac89079b9e2245f284548 100644 (file)
@@ -49,19 +49,23 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
     private static DefinedTerm photoTerm = null;
     private static DefinedTerm drawingTerm = null;
     private static DefinedTerm specimenScanTerm = null;
+    private static DefinedTerm detailImageTerm = null;
 
     private static void initializeTerms() {
         List<DefinedTerm> preferredTerms = CdmStore.getTermManager().getPreferredTerms(DefinedTerm.class);
         for (DefinedTerm definedTerm : preferredTerms) {
-            if(definedTerm.getUuid().equals(UUID.fromString("04673952-dab1-42ff-b47a-5e847c350eaf"))){//photo
+            if(definedTerm.getUuid().equals(UUID.fromString("c5c59c42-f254-471e-96c6-09f459f7c903"))){
                 photoTerm = definedTerm;
             }
-            else if(definedTerm.getUuid().equals(UUID.fromString("76204a15-098f-4afe-9e8f-fa344ee3fdbb"))){//drawing
+            else if(definedTerm.getUuid().equals(UUID.fromString("669b0409-4aa4-4695-aae4-a95ed27bad4c"))){
                 drawingTerm = definedTerm;
             }
-            else if(definedTerm.getUuid().equals(UUID.fromString("c0b127d6-c849-48f9-bbc3-29e3337c1d03"))){//cover TODO temporary until new term is created
+            else if(definedTerm.getUuid().equals(UUID.fromString("acda15be-c0e2-4ea8-8783-b9b0c4ad7f03"))){
                 specimenScanTerm = definedTerm;
             }
+            else if(definedTerm.getUuid().equals(UUID.fromString("31eb8d02-bf5d-437c-bcc6-87a626445f34"))){
+                detailImageTerm = definedTerm;
+            }
         }
     }
 
@@ -86,6 +90,13 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         return specimenScanTerm;
     }
 
+    public static DefinedTerm getDetailImageTerm(){
+        if(detailImageTerm==null){
+            initializeTerms();
+        }
+        return detailImageTerm;
+    }
+
 
     /** {@inheritDoc} */
     @Override
@@ -215,7 +226,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
             else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){
                 return ImageResources.getImage(ImageResources.SPECIMEN_DERIVATE);
             }
-            else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.StillImage){
+            else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.Media){
                 if(derivedUnit.getKindOfUnit()!=null){
                     if(derivedUnit.getKindOfUnit().equals(getArtworkTerm())){
                         return ImageResources.getImage(ImageResources.ARTWORK_DERIVATE);
@@ -226,6 +237,9 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                     else if(derivedUnit.getKindOfUnit().equals(getSpecimenScanTerm())){
                         return ImageResources.getImage(ImageResources.SPECIMEN_SCAN_DERIVATE);
                     }
+                    else if(derivedUnit.getKindOfUnit().equals(getDetailImageTerm())){
+                        return ImageResources.getImage(ImageResources.DETAIL_IMAGE_DERIVATE);
+                    }
                 }
             }
         }
index 2c0d0e57aebe1e34226520935cc89c77a0c94d6b..6cbeaf562a0a51690a53297bf713d209d1f7fa44 100644 (file)
@@ -9,10 +9,12 @@
 */
 package eu.etaxonomy.taxeditor.view.specimenSearch;
 
+import org.eclipse.jface.wizard.IWizard;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
 
 /**
  * Controller class for handling {@link SpecimenProviderSelectionComposite}
@@ -22,21 +24,63 @@ import org.eclipse.swt.widgets.Listener;
  */
 public class SpecimenProviderSelectionController implements Listener{
 
-    private final SpecimenProviderSelectionComposite composite;
+    private SpecimenProviderSelectionComposite composite;
+    private IWizard wizard;
+    private String lastAccessPoint;
+
+    private static SpecimenProviderSelectionController instance;
+
+    public static SpecimenProviderSelectionController getInstance(Composite parent, IWizard wizard){
+        if(instance==null){
+            instance = new SpecimenProviderSelectionController(parent, wizard);
+            return instance;
+        }
+        instance.init(parent, wizard);
+        return instance;
+    }
+
 
     /**
      * Constructs a new controller which will itself construct the composite
      * @param parent the parent {@link Composite} for the one handles by this controller
      */
-    public SpecimenProviderSelectionController(Composite parent) {
+    private SpecimenProviderSelectionController(Composite parent, IWizard wizard) {
+        init(parent, wizard);
+    }
+
+    /**
+     * @param parent
+     * @param wizard
+     */
+    private void init(Composite parent, IWizard wizard) {
+        this.wizard = wizard;
         composite = new SpecimenProviderSelectionComposite(parent, SWT.NONE);
         composite.getBtnBioCaseProvider().addListener(SWT.Selection, this);
         composite.getBtnGbif().addListener(SWT.Selection, this);
+        composite.getTxtAccessPoint().addListener(SWT.Modify, this);
         composite.getBtnGbif().setSelection(true);
         composite.getTxtAccessPoint().setEnabled(false);
         composite.getLblAccessPointUrl().setEnabled(false);
+
+        loadLastState();
+    }
+
+    private void loadLastState() {
+        if(lastAccessPoint!=null){
+            Text text = composite.getTxtAccessPoint();
+            Listener[] listeners = text.getListeners(SWT.Modify);
+            for (int i = 0; i < listeners.length; i++) {
+                text.removeListener(SWT.Modify, listeners[i]);
+            }
+            text.setText(lastAccessPoint);
+            for (int i = 0; i < listeners.length; i++) {
+                text.addListener(SWT.Modify, listeners[i]);
+            }
+
+        }
     }
 
+
     /* (non-Javadoc)
      * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
      */
@@ -50,6 +94,7 @@ public class SpecimenProviderSelectionController implements Listener{
             composite.getLblAccessPointUrl().setEnabled(false);
             composite.getTxtAccessPoint().setEnabled(false);
         }
+        wizard.getContainer().updateButtons();
     }
 
     /**
@@ -59,4 +104,9 @@ public class SpecimenProviderSelectionController implements Listener{
         return composite;
     }
 
+
+    public void saveLastState() {
+        lastAccessPoint = composite.getTxtAccessPoint().getText();
+    }
+
 }
index 018f59af538b001d48590734f2f536848bf20264..33f1e6ea5e61caf61013c1ffc113849f90f075e9 100644 (file)
@@ -9,10 +9,8 @@
 */
 package eu.etaxonomy.taxeditor.view.specimenSearch;
 
-import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.GregorianCalendar;
-import java.util.List;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Button;
@@ -31,7 +29,6 @@ import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
 public class SpecimenSearchController implements Listener{
 
     private SpecimenSearchComposite specimenSearchComposite;
-    private final List<String> lastStateList = new ArrayList<String>();
     private OccurenceQuery lastQuery = null;
 
     private static SpecimenSearchController instance = null;