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
.classification
;
12 import java
.util
.UUID
;
14 import org
.eclipse
.jface
.util
.PropertyChangeEvent
;
15 import org
.eclipse
.swt
.SWT
;
16 import org
.eclipse
.swt
.widgets
.Event
;
17 import org
.eclipse
.swt
.widgets
.Listener
;
19 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
20 import eu
.etaxonomy
.cdm
.api
.service
.dto
.CreateTaxonDTO
;
21 import eu
.etaxonomy
.cdm
.common
.CdmUtils
;
22 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
23 import eu
.etaxonomy
.taxeditor
.l10n
.Messages
;
24 import eu
.etaxonomy
.taxeditor
.newWizard
.IWizardPageListener
;
25 import eu
.etaxonomy
.taxeditor
.newWizard
.NewTaxonNodeWizard
;
26 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
27 import eu
.etaxonomy
.taxeditor
.ui
.element
.AbstractCdmEntityWizardPage
;
28 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
29 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
33 * TaxonNodeWizardPage class.
37 * @created Sep 15, 2009
39 public class TaxonNodeWizardPage
extends AbstractCdmEntityWizardPage
<TaxonNode
> implements Listener
{
41 private final IWizardPageListener wizardPageListener
;
42 private final boolean isCreateNew
;
47 * Constructor for TaxonNodeWizardPage.
51 * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
54 * a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
57 * a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
58 * @param closeOnEnterListener
60 public TaxonNodeWizardPage(CdmFormFactory formFactory
,
61 ConversationHolder conversation
, TaxonNode entity
, IWizardPageListener closeOnEnterListener
, boolean isCreateNew
) {
62 super(formFactory
, conversation
, entity
);
63 this.wizardPageListener
= closeOnEnterListener
;
66 setTitle(Messages
.TaxonNodeWizardPage_new
);
68 setTitle(Messages
.TaxonNodeWizardPage_edit
);
70 this.isCreateNew
= isCreateNew
;
76 public TaxonNodeDetailElement
createElement(ICdmFormElement rootElement
) {
77 TaxonNodeDetailElement detailElement
= formFactory
.createTaxonNodeDetailElement(rootElement
, this.isCreateNew
);
80 detailElement
.setParentTreeNode(((NewTaxonNodeWizard
)getWizard()).getParentEntity());
82 detailElement
.setEntity(entity
);
84 // detailElement.setPersistentBackground(Abstrac);;
86 formFactory
.addPropertyChangeListener(this);
88 // detailElement.getMainControl().addListener(SWT.KeyDown, this);
94 public void propertyChange(PropertyChangeEvent event
) {
99 protected void checkComplete() {
100 TaxonNodeDetailElement detailElement
= (TaxonNodeDetailElement
) getDetailElement();
102 if (detailElement
.getClassification() == null) {
103 setMessage(Messages
.TaxonNodeWizardPage_no_classification
, WARNING
);
105 else if(isCreateNew
){
106 if(CdmUtils
.isBlank(detailElement
.getTaxonName())){
107 setMessage(Messages
.TaxonNodeWizardPage_no_taxon_name
, ERROR
);
110 setPageComplete(true);
114 else if(!detailElement
.isComplete()){
115 setMessage(Messages
.TaxonNodeWizardPage_not_all_required_fields
, ERROR
);
119 setPageComplete(true);
123 setPageComplete(false);
126 public TaxonNode
getParentTreeNode() {
127 return ((TaxonNodeDetailElement
) getDetailElement()).getParentTreeNode();
130 public CreateTaxonDTO
createTaxon() {
132 UUID nameUuid
= null;
133 String taxonNameString
= null;
134 if (((TaxonNodeDetailElement
) getDetailElement()).getExistingName() != null){
135 nameUuid
= ((TaxonNodeDetailElement
) getDetailElement()).getExistingName().getUuid();
137 taxonNameString
= ((TaxonNodeDetailElement
) getDetailElement()).getTaxonName();
141 if (((TaxonNodeDetailElement
) getDetailElement()).getSecReference() != null){
142 secUuid
= ((TaxonNodeDetailElement
) getDetailElement()).getSecReference().getUuid();
144 boolean isPublish
= ((TaxonNodeDetailElement
) getDetailElement()).is_publish();
145 String secMicroReference
= ((TaxonNodeDetailElement
) getDetailElement()).getMicroReference();
147 CreateTaxonDTO createDto
= new CreateTaxonDTO(nameUuid
, secUuid
,secMicroReference
,false, null,isPublish
,
148 taxonNameString
, PreferencesUtil
.getPreferredNomenclaturalCode(), null);
153 public TaxonNode
getTaxonNode(){
154 return ((TaxonNodeDetailElement
) getDetailElement()).getEntity();
158 public void dispose() {
159 formFactory
.removePropertyChangeListener(this);
164 public void handleEvent(Event event
) {
165 TaxonNodeDetailElement detailElement
= (TaxonNodeDetailElement
) getDetailElement();
166 if(event
.widget
== detailElement
.getMainControl()
167 && event
.keyCode
== SWT
.CR
&& isPageComplete()){
168 wizardPageListener
.close();