2 * Copyright (C) 2009 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.
9 package eu
.etaxonomy
.taxeditor
.ui
.section
.taxon
;
11 import org
.apache
.commons
.lang3
.StringUtils
;
12 import org
.eclipse
.jface
.action
.Action
;
13 import org
.eclipse
.jface
.action
.IAction
;
14 import org
.eclipse
.jface
.action
.ToolBarManager
;
15 import org
.eclipse
.jface
.viewers
.ISelectionProvider
;
16 import org
.eclipse
.swt
.SWT
;
17 import org
.eclipse
.swt
.widgets
.Control
;
19 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
20 import eu
.etaxonomy
.cdm
.hibernate
.HibernateProxyHelper
;
21 import eu
.etaxonomy
.cdm
.model
.name
.TaxonName
;
22 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
23 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonBase
;
24 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonRelationship
;
25 import eu
.etaxonomy
.taxeditor
.event
.EventUtility
;
26 import eu
.etaxonomy
.taxeditor
.event
.WorkbenchEventConstants
;
27 import eu
.etaxonomy
.taxeditor
.model
.ImageResources
;
28 import eu
.etaxonomy
.taxeditor
.ui
.dialog
.selection
.TaxonBaseSelectionDialog
;
29 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
30 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmPropertyChangeEvent
;
31 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
32 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractCdmDetailElement
;
33 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractCdmDetailSection
;
34 import eu
.etaxonomy
.taxeditor
.ui
.section
.ITaxonBaseDetailSection
;
41 public class TaxonRelationshipDetailSection
extends AbstractCdmDetailSection
<TaxonRelationship
> implements ITaxonBaseDetailSection
{
44 boolean taxonChoosable
= false;
46 public TaxonRelationshipDetailSection(CdmFormFactory formFactory
,
47 ConversationHolder conversation
, ICdmFormElement parentElement
,
48 ISelectionProvider selectionProvider
, int style
, boolean taxonChoosable
) {
49 super(formFactory
, conversation
, parentElement
, selectionProvider
, style
);
50 this.taxonChoosable
= taxonChoosable
;
54 public String
getHeading() {
56 return getEntity() != null ? StringUtils
.replace( getEntity().getType().getLabel(), "for", ""): "Taxon Relation";
60 * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
63 protected AbstractCdmDetailElement
<TaxonRelationship
> createCdmDetailElement(AbstractCdmDetailSection
<TaxonRelationship
> parentElement
, int style
) {
64 return formFactory
.createTaxonRelationshipDetailElement(parentElement
);
69 public void setTaxonBase(TaxonBase taxon
) {
70 this.taxon
= (Taxon
)taxon
;
71 TaxonName name
= HibernateProxyHelper
.deproxy(taxon
.getName());
76 public TaxonBase
getTaxonBase() {
80 private void setName(TaxonName name
){
85 protected Control
createToolbar() {
86 ToolBarManager toolBarManager
= new ToolBarManager(SWT
.FLAT
);
90 Action chooseTaxonAction
= new Action("Choose Taxon", IAction
.AS_PUSH_BUTTON
){
93 Taxon taxon
= TaxonBaseSelectionDialog
.selectTaxon(getShell(), //getConversationHolder(),
94 getEntity().getFromTaxon());
96 taxon
= HibernateProxyHelper
.deproxy(taxon
);
97 name
= taxon
.getName();
98 TaxonRelationship rel
= getEntity();
99 rel
.setFromTaxon(taxon
);
100 taxon
.addTaxonRelation(rel
);
103 // firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
104 detailElement
.firePropertyChangeEvent(new CdmPropertyChangeEvent(detailElement
, null));
105 EventUtility
.postEvent(WorkbenchEventConstants
.REFRESH_DETAILS
, true);
106 EventUtility
.postEvent(WorkbenchEventConstants
.REFRESH_SUPPLEMENTAL
, true);
107 EventUtility
.postEvent(WorkbenchEventConstants
.REFRESH_NAME_EDITOR
, rel
.getToTaxon());
108 ((TaxonRelationshipDetailElement
)detailElement
).getTaxonElement().setSelected(true);;
114 chooseTaxonAction
.setToolTipText("Choose taxon for this Relationship");
115 chooseTaxonAction
.setImageDescriptor(ImageResources
.getImageDescriptor(ImageResources
.BROWSE_ICON
));
117 toolBarManager
.add(chooseTaxonAction
);
119 return toolBarManager
.createControl(this);