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
.taxeditor
.model
.MessagingUtils
;
17 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
18 import eu
.etaxonomy
.taxeditor
.ui
.section
.classification
.TaxonNodeWizardPage
;
21 * <p>NewTaxonNodeWizard class.</p>
24 * @created Sep 15, 2009
27 public class NewTaxonNodeWizard
extends AbstractNewEntityWizard
<ITaxonTreeNode
>{
29 private TaxonNodeWizardPage taxonNodePage
;
30 private boolean openEmptyEditor
;
31 private UUID generatedTaxonNodeUuid
;
34 public void addPages() {
35 taxonNodePage
= new TaxonNodeWizardPage(formFactory
, getConversationHolder(), getEntity());
36 addPage(taxonNodePage
);
40 protected void saveEntity() {
41 if(taxonNodePage
.getTaxon() == null || StringUtils
.isEmpty(taxonNodePage
.getTaxon().getName().getFullTitleCache())){
42 openEmptyEditor
= true;
44 getConversationHolder().bind();
45 ITaxonTreeNode parent
= getParentTreeNode();
46 Taxon taxon
= taxonNodePage
.getTaxon();
48 TaxonNode taxonNode
= parent
.addChildTaxon(taxon
, parent
.getReference(), parent
.getMicroReference());
49 generatedTaxonNodeUuid
= CdmStore
.getService(ITaxonNodeService
.class).saveOrUpdate(taxonNode
);
50 }catch(IllegalArgumentException e
){
51 MessagingUtils
.warningDialog("Taxon already exists in classfication", getClass(), e
.getMessage());
57 protected ITaxonTreeNode
createNewEntity() {
58 if(getSelection() != null){
59 Object selectedObject
= getSelection().getFirstElement();
60 if(selectedObject
instanceof ITaxonTreeNode
){
61 ITaxonTreeNode treeNode
= (ITaxonTreeNode
) selectedObject
;
63 if(treeNode
instanceof Classification
){
64 return CdmStore
.getService(IClassificationService
.class).load(treeNode
.getUuid());
66 else if(treeNode
instanceof TaxonNode
){
67 return CdmStore
.getService(ITaxonNodeService
.class).load(treeNode
.getUuid());
80 public boolean openInEditor(){
81 return taxonNodePage
.openInEditor();
89 public boolean openEmpty(){
90 return openInEditor() && openEmptyEditor
;
96 * @return a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
98 public TaxonNode
getTaxonNode(){
99 if(generatedTaxonNodeUuid
!= null){
100 return CdmStore
.getService(ITaxonNodeService
.class).load(generatedTaxonNodeUuid
);
105 public ITaxonTreeNode
getParentTreeNode(){
106 return taxonNodePage
.getParentTreeNode();
110 protected String
getEntityName() {