3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.dna
;
13 import java
.util
.Collection
;
14 import java
.util
.Collections
;
15 import java
.util
.LinkedList
;
17 import org
.eclipse
.jface
.action
.Action
;
18 import org
.eclipse
.jface
.action
.IAction
;
19 import org
.eclipse
.jface
.action
.ToolBarManager
;
20 import org
.eclipse
.jface
.resource
.ImageDescriptor
;
21 import org
.eclipse
.swt
.SWT
;
22 import org
.eclipse
.swt
.graphics
.ImageData
;
23 import org
.eclipse
.swt
.widgets
.Control
;
25 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
26 import eu
.etaxonomy
.cdm
.model
.common
.Identifier
;
27 import eu
.etaxonomy
.cdm
.model
.molecular
.DnaSample
;
28 import eu
.etaxonomy
.taxeditor
.model
.ImageResources
;
29 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
30 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
31 import eu
.etaxonomy
.taxeditor
.view
.derivateSearch
.DerivateLabelProvider
;
39 public class CurrentSampleDesignationDetailSection
extends AbstractSampleDesignationDetailSection
{
41 public CurrentSampleDesignationDetailSection(CdmFormFactory formFactory
,
42 ConversationHolder conversation
, ICdmFormElement parentElement
,
44 super(formFactory
, conversation
, parentElement
, "Current Sample Designation", style
);
48 protected Control
createToolbar() {
49 ToolBarManager toolBarManager
= new ToolBarManager(SWT
.FLAT
);
51 Action addAction
= new Action("add", IAction
.AS_PUSH_BUTTON
){
53 * @see org.eclipse.jface.action.Action#run()
57 Identifier
<DnaSample
> element
= createNewElement();
59 getEntity().addIdentifier(element
);
62 if(! getSection().isExpanded()) {
63 getSection().setExpanded(true);
65 internalUpdateSection(true);
69 addAction
.setImageDescriptor(new ImageDescriptor() {
72 public ImageData
getImageData() {
73 return ImageResources
.getImage(ImageResources
.ADD_ICON
).getImageData();
76 addAction
.setToolTipText(getTooltipString());
78 toolBarManager
.add(addAction
);
80 return toolBarManager
.createControl(this);
84 public void refresh() {
85 internalUpdateSection(false);
89 * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
92 public Collection
<Identifier
<DnaSample
>> getCollection(DnaSample entity
) {
93 LinkedList
<Identifier
<DnaSample
>> sampleDesignations
= new LinkedList
<Identifier
<DnaSample
>>();
94 for (Identifier
<DnaSample
> identifier
: entity
.getIdentifiers()) {
95 if(identifier
.getType()!=null && identifier
.getType().equals(DerivateLabelProvider
.getSampleDesignationTerm())){
96 sampleDesignations
.add(identifier
);
99 Collections
.reverse(sampleDesignations
);
100 if(sampleDesignations
.size()>0){
101 //last sample designation is the current
102 return Collections
.singleton(sampleDesignations
.getFirst());
105 return Collections
.emptyList();
110 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
114 protected String
getTooltipString() {
115 return "Create new current sample designation";