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
.ITaxonTreeNode
;
14 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
15 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
16 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.CdmDataChangeEvent
.EventType
;
17 import eu
.etaxonomy
.taxeditor
.model
.MessagingUtils
;
18 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
19 import eu
.etaxonomy
.taxeditor
.ui
.section
.classification
.TaxonNodeWizardPage
;
22 * <p>NewTaxonNodeWizard class.</p>
25 * @created Sep 15, 2009
28 public class NewTaxonNodeWizard
extends AbstractNewEntityWizard
<ITaxonTreeNode
>{
30 private TaxonNodeWizardPage taxonNodePage
;
31 private boolean openEmptyEditor
;
32 private UUID generatedTaxonNodeUuid
;
35 public void addPages() {
36 taxonNodePage
= new TaxonNodeWizardPage(formFactory
, getConversationHolder(), getEntity());
37 addPage(taxonNodePage
);
41 protected void saveEntity() {
42 if(taxonNodePage
.getTaxon() == null || StringUtils
.isEmpty(taxonNodePage
.getTaxon().getName().getFullTitleCache())){
43 openEmptyEditor
= true;
45 getConversationHolder().bind();
46 ITaxonTreeNode parent
= getParentTreeNode();
47 Taxon taxon
= taxonNodePage
.getTaxon();
49 TaxonNode taxonNode
= parent
.addChildTaxon(taxon
, parent
.getReference(), parent
.getMicroReference());
50 taxonNode
= CdmStore
.getService(ITaxonNodeService
.class).merge(taxonNode
);
51 generatedTaxonNodeUuid
= taxonNode
.getUuid();
52 CdmStore
.getCurrentSessionManager().getActiveSession().addEvent(taxonNode
, EventType
.INSERT
);
53 }catch(IllegalArgumentException e
){
54 MessagingUtils
.warningDialog("Taxon already exists in classfication", getClass(), e
.getMessage());
60 protected ITaxonTreeNode
createNewEntity() {
61 if(getSelection() != null){
62 Object selectedObject
= getSelection().getFirstElement();
63 if(selectedObject
instanceof ITaxonTreeNode
){
64 ITaxonTreeNode treeNode
= (ITaxonTreeNode
) selectedObject
;
66 if(treeNode
instanceof Classification
){
67 return CdmStore
.getService(IClassificationService
.class).load(treeNode
.getUuid());
69 else if(treeNode
instanceof TaxonNode
){
70 return CdmStore
.getService(ITaxonNodeService
.class).load(treeNode
.getUuid());
83 public boolean openInEditor(){
84 return taxonNodePage
.openInEditor();
92 public boolean openEmpty(){
93 return openInEditor() && openEmptyEditor
;
99 * @return a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
101 public TaxonNode
getTaxonNode(){
102 if(generatedTaxonNodeUuid
!= null){
103 return CdmStore
.getService(ITaxonNodeService
.class).load(generatedTaxonNodeUuid
);
108 public ITaxonTreeNode
getParentTreeNode(){
109 return taxonNodePage
.getParentTreeNode();
113 protected String
getEntityName() {