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
.lang
.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
.model
.ImageResources
;
26 import eu
.etaxonomy
.taxeditor
.ui
.dialog
.selection
.NameSelectionDialog
;
27 import eu
.etaxonomy
.taxeditor
.ui
.dialog
.selection
.TaxonBaseSelectionDialog
;
28 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
29 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
30 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractCdmDetailElement
;
31 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractCdmDetailSection
;
32 import eu
.etaxonomy
.taxeditor
.ui
.section
.ITaxonBaseDetailSection
;
33 import eu
.etaxonomy
.taxeditor
.ui
.section
.name
.NonViralNameDetailSection
;
40 public class TaxonRelationshipDetailSection
extends AbstractCdmDetailSection
<TaxonRelationship
> implements ITaxonBaseDetailSection
{
43 boolean taxonChoosable
= false;
45 public TaxonRelationshipDetailSection(CdmFormFactory formFactory
,
46 ConversationHolder conversation
, ICdmFormElement parentElement
,
47 ISelectionProvider selectionProvider
, int style
, boolean taxonChoosable
) {
48 super(formFactory
, conversation
, parentElement
, selectionProvider
, style
);
49 this.taxonChoosable
= taxonChoosable
;
53 public String
getHeading() {
55 return getEntity() != null ? StringUtils
.replace( getEntity().getType().getLabel(), "for", ""): "Taxon Relation";
59 * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
62 protected AbstractCdmDetailElement
<TaxonRelationship
> createCdmDetailElement(AbstractCdmDetailSection
<TaxonRelationship
> parentElement
, int style
) {
63 return formFactory
.createTaxonRelationshipDetailElement(parentElement
);
68 public void setTaxonBase(TaxonBase taxon
) {
69 this.taxon
= (Taxon
)taxon
;
70 TaxonName name
= HibernateProxyHelper
.deproxy(taxon
.getName());
75 public TaxonBase
getTaxonBase() {
79 private void setName(TaxonName name
){
84 protected Control
createToolbar() {
85 ToolBarManager toolBarManager
= new ToolBarManager(SWT
.FLAT
);
89 Action chooseTaxonAction
= new Action("Choose Taxon", IAction
.AS_PUSH_BUTTON
){
92 Taxon taxon
= TaxonBaseSelectionDialog
.selectTaxon(getShell(), getConversationHolder(), getEntity().getFromTaxon());
94 taxon
= HibernateProxyHelper
.deproxy(taxon
);
95 name
= taxon
.getName();
96 TaxonRelationship rel
= getEntity();
97 rel
.setFromTaxon(taxon
);
99 // taxonBase.getTitleCache();
101 firePropertyChangeEvent(TaxonRelationshipDetailSection
.this);
105 chooseTaxonAction
.setToolTipText("Choose taxon for this Relationship");
106 chooseTaxonAction
.setImageDescriptor(ImageResources
.getImageDescriptor(ImageResources
.BROWSE_ICON
));
108 toolBarManager
.add(chooseTaxonAction
);
110 return toolBarManager
.createControl(this);