-// $Id$
/**
* Copyright (C) 2007 EDIT
* European Distributed Institute of Taxonomy
package eu.etaxonomy.taxeditor.ui.section.classification;
+import java.util.UUID;
+
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.api.service.dto.CreateTaxonDTO;
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.newWizard.IWizardPageListener;
+import eu.etaxonomy.taxeditor.newWizard.NewTaxonNodeWizard;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
*
* @author n.hoffmann
* @created Sep 15, 2009
- * @version 1.0
*/
-public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeNode> implements Listener{
+public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<TaxonNode> implements Listener{
private final IWizardPageListener wizardPageListener;
+ private final boolean isCreateNew;
+
/**
* <p>
* @param closeOnEnterListener
*/
public TaxonNodeWizardPage(CdmFormFactory formFactory,
- ConversationHolder conversation, ITaxonTreeNode entity, IWizardPageListener closeOnEnterListener) {
+ ConversationHolder conversation, TaxonNode entity, IWizardPageListener closeOnEnterListener, boolean isCreateNew) {
super(formFactory, conversation, entity);
this.wizardPageListener = closeOnEnterListener;
- setTitle("Create a new Taxon");
+
+ if (isCreateNew){
+ setTitle(Messages.TaxonNodeWizardPage_new);
+ }else{
+ setTitle(Messages.TaxonNodeWizardPage_edit);
+ }
+ this.isCreateNew = isCreateNew;
+
+
}
- /*
- * (non-Javadoc)
- *
- * @see
- * eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement
- * (eu.etaxonomy.taxeditor.forms.ICdmFormElement)
- */
- /** {@inheritDoc} */
@Override
public TaxonNodeDetailElement createElement(ICdmFormElement rootElement) {
- TaxonNodeDetailElement detailElement = formFactory.createTaxonNodeDetailElement(rootElement);
- detailElement.setEntity(entity);
+ TaxonNodeDetailElement detailElement = formFactory.createTaxonNodeDetailElement(rootElement, this.isCreateNew);
+
+ if (isCreateNew){
+ detailElement.setParentTreeNode(((NewTaxonNodeWizard)getWizard()).getParentEntity());
+ }else{
+ detailElement.setEntity(entity);
+ }
+// detailElement.setPersistentBackground(Abstrac);;
+
formFactory.addPropertyChangeListener(this);
- detailElement.getTextNewTaxonName().getMainControl().addListener(SWT.KeyDown, this);
+// if (isCreateNew){
+// detailElement.getMainControl().addListener(SWT.KeyDown, this);
+// }
return detailElement;
}
- /**
- * <p>
- * openInEditor
- * </p>
- *
- * @return a boolean.
- */
- public boolean openInEditor() {
- return ((TaxonNodeDetailElement) getDetailElement()).isOpenInEditor();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse
- * .jface.util.PropertyChangeEvent)
- */
- /** {@inheritDoc} */
@Override
public void propertyChange(PropertyChangeEvent event) {
- if (event.getSource() == getDetailElement()) {
- checkComplete();
- }
+ checkComplete();
}
@Override
TaxonNodeDetailElement detailElement = (TaxonNodeDetailElement) getDetailElement();
if (detailElement.getClassification() == null) {
- setMessage("No classification set.", WARNING);
+ setMessage(Messages.TaxonNodeWizardPage_no_classification, WARNING);
}
- else if(detailElement.getTextNewTaxonName().getText().isEmpty()){
- setMessage("No taxon name set.", ERROR);
+ else if(isCreateNew ){
+ if(CdmUtils.isBlank(detailElement.getTaxonName())){
+ setMessage(Messages.TaxonNodeWizardPage_no_taxon_name, ERROR);
+ } else{
+ setMessage(null);
+ setPageComplete(true);
+ return;
+ }
}
else if(!detailElement.isComplete()){
- setMessage("Not all required fields are filled.", ERROR);
+ setMessage(Messages.TaxonNodeWizardPage_not_all_required_fields, ERROR);
}
else {
setMessage(null);
setPageComplete(false);
}
- /**
- * <p>
- * Getter for the field <code>parentTreeNode</code>.
- * </p>
- *
- * @return a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
- */
- public ITaxonTreeNode getParentTreeNode() {
- return ((TaxonNodeDetailElement) getDetailElement())
- .getParentTreeNode();
+ public TaxonNode getParentTreeNode() {
+ return ((TaxonNodeDetailElement) getDetailElement()).getParentTreeNode();
+ }
+
+ public CreateTaxonDTO createTaxon() {
+
+ UUID nameUuid = null;
+ String taxonNameString = null;
+ if (((TaxonNodeDetailElement) getDetailElement()).getExistingName() != null){
+ nameUuid = ((TaxonNodeDetailElement) getDetailElement()).getExistingName().getUuid();
+ }else{
+ taxonNameString = ((TaxonNodeDetailElement) getDetailElement()).getTaxonName();
+ }
+
+ UUID secUuid = null;
+ if (((TaxonNodeDetailElement) getDetailElement()).getSecReference() != null){
+ secUuid = ((TaxonNodeDetailElement) getDetailElement()).getSecReference().getUuid();
+ }
+ boolean isPublish = ((TaxonNodeDetailElement) getDetailElement()).is_publish();
+ String secMicroReference = ((TaxonNodeDetailElement) getDetailElement()).getMicroReference();
+
+ CreateTaxonDTO createDto = new CreateTaxonDTO(nameUuid, secUuid,secMicroReference,false, null,isPublish,
+ taxonNameString, PreferencesUtil.getPreferredNomenclaturalCode(), null);
+
+ return createDto;
}
- public Taxon getTaxon() {
- return ((TaxonNodeDetailElement) getDetailElement()).getTaxon();
+ public TaxonNode getTaxonNode(){
+ return ((TaxonNodeDetailElement) getDetailElement()).getEntity();
}
- /*
- * (non-Javadoc)
- *
- * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#dispose()
- */
- /** {@inheritDoc} */
@Override
public void dispose() {
formFactory.removePropertyChangeListener(this);
@Override
public void handleEvent(Event event) {
TaxonNodeDetailElement detailElement = (TaxonNodeDetailElement) getDetailElement();
- if(event.widget == detailElement.getTextNewTaxonName().getMainControl()
+ if(event.widget == detailElement.getMainControl()
&& event.keyCode == SWT.CR && isPageComplete()){
wizardPageListener.close();
}
}
-
}