From f8b7e09990d6e830108c0a4eff5cd016221524d1 Mon Sep 17 00:00:00 2001 From: "n.hoffmann" Date: Tue, 10 May 2011 09:07:47 +0000 Subject: [PATCH] Fixes a problem with DateDetail elements where the parse text was always overwritten with the parsed text when parsing ;) --- .../taxeditor/ui/forms/DateDetailSection.java | 15 +++++++++++---- .../section/reference/ReferenceDetailElement.java | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/forms/DateDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/forms/DateDetailSection.java index b3ef32b96..0b9556370 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/forms/DateDetailSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/forms/DateDetailSection.java @@ -80,18 +80,25 @@ public class DateDetailSection extends AbstractFormSection { */ @Override public void setEntity(TimePeriod timePeriod) { + setEntityInternally(timePeriod); + text_parseText.setText(timePeriod.toString()); + super.setEntity(timePeriod); + } + + /** + * When setting the entity through parsing we do not want to alter the parse field + * @param timePeriod + */ + private void setEntityInternally(TimePeriod timePeriod){ Partial start = timePeriod.getStart(); partialElement_start.setPartial(start); Partial end = timePeriod.getEnd(); partialElement_end.setPartial(end); - text_parseText.setText(timePeriod.toString()); ((Text) text_parseText.getMainControl()).setSelection(cursorPosition); text_freeText.setText(timePeriod.getFreeText()); this.setText(CdmUtils.Nz(timePeriod.toString())); - - super.setEntity(timePeriod); } /** {@inheritDoc} */ @@ -131,7 +138,7 @@ public class DateDetailSection extends AbstractFormSection { } else if (eventSource == text_parseText) { cursorPosition = ((Text) text_parseText.getMainControl()) .getCaretPosition(); - setEntity(TimePeriod.parseString(text_parseText.getText())); + setEntityInternally(TimePeriod.parseString(text_parseText.getText())); } else if (eventSource == text_freeText) { getEntity().setFreeText(text_freeText.getText()); } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailElement.java index 80f99ebcc..d66086f08 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailElement.java @@ -516,7 +516,7 @@ public class ReferenceDetailElement extends AbstractCdmDetailElement public void exceptionOccurred(CdmPropertyChangeEvent event) { for (IExceptionHandler handler : exceptionHandlers) { if (event == null) { - clearException(); + handler.clearException(); } else { handler.handleException(event); } -- 2.34.1