4 package eu
.etaxonomy
.taxeditor
.newWizard
;
8 import org
.apache
.commons
.lang
.StringUtils
;
10 import eu
.etaxonomy
.cdm
.api
.service
.IClassificationService
;
11 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonNodeService
;
12 import eu
.etaxonomy
.cdm
.model
.taxon
.Classification
;
13 import eu
.etaxonomy
.cdm
.model
.taxon
.ITreeNode
;
14 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
15 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
16 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
17 import eu
.etaxonomy
.taxeditor
.ui
.section
.classification
.TaxonNodeWizardPage
;
20 * <p>NewTaxonNodeWizard class.</p>
23 * @created Sep 15, 2009
26 public class NewTaxonNodeWizard
extends AbstractNewEntityWizard
<ITreeNode
>{
28 private TaxonNodeWizardPage taxonNodePage
;
29 private boolean openEmptyEditor
;
30 private UUID generatedTaxonNodeUuid
;
33 public void addPages() {
34 taxonNodePage
= new TaxonNodeWizardPage(formFactory
, getConversationHolder(), getEntity());
35 addPage(taxonNodePage
);
39 protected void saveEntity() {
40 if(taxonNodePage
.getTaxon() == null || StringUtils
.isEmpty(taxonNodePage
.getTaxon().getName().getFullTitleCache())){
41 openEmptyEditor
= true;
43 getConversationHolder().bind();
44 ITreeNode parent
= getParentTreeNode();
45 Taxon taxon
= taxonNodePage
.getTaxon();
46 TaxonNode taxonNode
= parent
.addChildTaxon(taxon
, parent
.getReference(), parent
.getMicroReference(), null);
49 generatedTaxonNodeUuid
= CdmStore
.getService(ITaxonNodeService
.class).saveOrUpdate(taxonNode
);
54 protected ITreeNode
createNewEntity() {
55 if(getSelection() != null){
56 Object selectedObject
= getSelection().getFirstElement();
57 if(selectedObject
instanceof ITreeNode
){
58 ITreeNode treeNode
= (ITreeNode
) selectedObject
;
60 if(treeNode
instanceof Classification
){
61 return CdmStore
.getService(IClassificationService
.class).load(treeNode
.getUuid());
63 else if(treeNode
instanceof TaxonNode
){
64 return CdmStore
.getService(ITaxonNodeService
.class).load(treeNode
.getUuid());
77 public boolean openInEditor(){
78 return taxonNodePage
.openInEditor();
86 public boolean openEmpty(){
87 return openInEditor() && openEmptyEditor
;
93 * @return a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
95 public TaxonNode
getTaxonNode(){
96 if(generatedTaxonNodeUuid
!= null){
97 return CdmStore
.getService(ITaxonNodeService
.class).load(generatedTaxonNodeUuid
);
102 public ITreeNode
getParentTreeNode(){
103 return taxonNodePage
.getParentTreeNode();