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
;
32 private IWizardPageListener wizardPageListener
;
35 public void addPages() {
36 taxonNodePage
= new TaxonNodeWizardPage(formFactory
, getConversationHolder(), getEntity(), wizardPageListener
);
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 generatedTaxonNodeUuid
= CdmStore
.getService(ITaxonNodeService
.class).saveOrUpdate(taxonNode
);
51 }catch(IllegalArgumentException e
){
52 MessagingUtils
.warningDialog("Taxon already exists in classfication", getClass(), e
.getMessage());
58 protected ITaxonTreeNode
createNewEntity() {
59 if(getSelection() != null){
60 Object selectedObject
= getSelection().getFirstElement();
61 if(selectedObject
instanceof ITaxonTreeNode
){
62 ITaxonTreeNode treeNode
= (ITaxonTreeNode
) selectedObject
;
64 if(treeNode
instanceof Classification
){
65 return CdmStore
.getService(IClassificationService
.class).load(treeNode
.getUuid());
67 else if(treeNode
instanceof TaxonNode
){
68 return CdmStore
.getService(ITaxonNodeService
.class).load(treeNode
.getUuid());
81 public boolean openInEditor(){
82 return taxonNodePage
.openInEditor();
90 public boolean openEmpty(){
91 return openInEditor() && openEmptyEditor
;
97 * @return a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
99 public TaxonNode
getTaxonNode(){
100 if(generatedTaxonNodeUuid
!= null){
101 return CdmStore
.getService(ITaxonNodeService
.class).load(generatedTaxonNodeUuid
);
106 public ITaxonTreeNode
getParentTreeNode(){
107 return taxonNodePage
.getParentTreeNode();
111 protected String
getEntityName() {
115 public void addWizardPageListener(IWizardPageListener wizardPageListener
){
116 this.wizardPageListener
= wizardPageListener
;