2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.derivedUnit
;
12 import java
.util
.Arrays
;
13 import java
.util
.Collection
;
16 import org
.eclipse
.jface
.action
.Action
;
17 import org
.eclipse
.jface
.action
.ToolBarManager
;
18 import org
.eclipse
.jface
.resource
.ImageDescriptor
;
19 import org
.eclipse
.swt
.SWT
;
20 import org
.eclipse
.swt
.graphics
.ImageData
;
21 import org
.eclipse
.swt
.widgets
.Control
;
23 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
24 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivedUnit
;
25 import eu
.etaxonomy
.cdm
.model
.occurrence
.DeterminationEvent
;
26 import eu
.etaxonomy
.taxeditor
.model
.ImageResources
;
27 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
28 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
32 * @created May 11, 2011
35 public class PreservedSpecimenCurrentDeterminationDetailSection
extends
36 PreservedSpecimenAbstractDeterminationEventDetailSection
{
41 * @param parentElement
44 public PreservedSpecimenCurrentDeterminationDetailSection(CdmFormFactory formFactory
,
45 ConversationHolder conversation
, ICdmFormElement parentElement
,
47 super(formFactory
, conversation
, parentElement
, "Current Determination", style
);
51 protected Control
createToolbar() {
52 ToolBarManager toolBarManager
= new ToolBarManager(SWT
.FLAT
);
54 Action addAction
= new Action("add", Action
.AS_PUSH_BUTTON
){
56 * @see org.eclipse.jface.action.Action#run()
60 DeterminationEvent element
= createNewElement();
62 // set as preferred determination
63 Set
<DeterminationEvent
> events
= getEntity().getDeterminations();
64 for (DeterminationEvent event
: events
){
65 if (event
.getPreferredFlag() == true){
66 event
.setPreferredFlag(false);
69 element
.setPreferredFlag(true);
73 if(! getSection().isExpanded()) {
74 getSection().setExpanded(true);
76 internalUpdateSection(true);
80 addAction
.setImageDescriptor(new ImageDescriptor() {
83 public ImageData
getImageData() {
84 return ImageResources
.getImage(ImageResources
.ADD_ICON
).getImageData();
87 addAction
.setToolTipText(getTooltipString());
89 toolBarManager
.add(addAction
);
91 return toolBarManager
.createControl(this);
95 public void refresh() {
96 internalUpdateSection(false);
100 * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
103 public Collection
<DeterminationEvent
> getCollection(DerivedUnit entity
) {
104 DeterminationEvent preferredDetermination
= null;
105 Set
<DeterminationEvent
> events
= entity
.getDeterminations();
106 for (DeterminationEvent event
: events
){
107 if (event
.getPreferredFlag() == true){
108 preferredDetermination
= event
;
111 return preferredDetermination
!= null ? Arrays
.asList(new DeterminationEvent
[]{preferredDetermination
}) : null;
115 * @see eu.etaxonomy.taxeditor.ui.section.occurrence.AbstractDeterminationEventDetailSection#createNewElement()
118 public DeterminationEvent
createNewElement() {
119 DeterminationEvent newElement
= super.createNewElement();
120 newElement
.setPreferredFlag(true);
126 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
130 protected String
getTooltipString() {
131 return "Create new current determination event";