private TextWithLabelElement text_parseText;
private int cursorPosition;
- /**
+ public int getCursorPosition() {
+ return cursorPosition;
+ }
+
+ public void setCursorPosition(int cursorPosition) {
+ this.cursorPosition = cursorPosition;
+ }
+
+ /**
* <p>
* Constructor for DateDetailSection.
* </p>
* When setting the entity through parsing we do not want to alter the parse field
* @param timePeriod
*/
- private void setEntityInternally(TimePeriod timePeriod){
+ protected void setEntityInternally(TimePeriod timePeriod){
Partial start = timePeriod.getStart();
partialElement_start.setPartial(start);
Partial end = timePeriod.getEnd();
firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
}
- private void updateTitle(){
+ protected void updateTitle(){
String title = CdmUtils.Nz(getEntity().toString());
this.setText(title);
layout();
*/
package eu.etaxonomy.taxeditor.ui.element;
+import org.eclipse.swt.widgets.Text;
+
import eu.etaxonomy.cdm.model.common.TimePeriod;
import eu.etaxonomy.cdm.model.common.VerbatimTimePeriod;
*/
@Override
public void setEntity(TimePeriod timePeriod) {
+ setEntityInternally(timePeriod);
+ updateTitle();
+ getText_parseText().setText(timePeriod.toString());
if (timePeriod instanceof VerbatimTimePeriod){
text_VerbatimDate.setText(((VerbatimTimePeriod)timePeriod).getVerbatimDate());
}
protected void handleEvent(Object eventSource) {
if (eventSource == text_VerbatimDate) {
-
- ((VerbatimTimePeriod)getEntity()).setVerbatimDate(text_VerbatimDate.getText());
+ TimePeriod entity = getEntity();
+ if(entity instanceof VerbatimTimePeriod){
+ ((VerbatimTimePeriod)entity).setVerbatimDate(text_VerbatimDate.getText());
+ }else{
+ VerbatimTimePeriod newEntity = VerbatimTimePeriod.NewVerbatimInstance();
+ newEntity.setEnd(entity.getEnd());
+ newEntity.setStart(entity.getStart());
+ newEntity.setFreeText(entity.getFreeText());
+ setEntity(newEntity);
+ ((VerbatimTimePeriod)getEntity()).setVerbatimDate(text_VerbatimDate.getText());
+ }
}
super.handleEvent(eventSource);
}
+ @Override
+ public TimePeriod getEntity() {
+ if(super.getEntity() == null){
+ setEntity(VerbatimTimePeriod.NewVerbatimInstance());
+ }
+ return super.getEntity();
+ }
+
+ /**
+ * When setting the entity through parsing we do not want to alter the parse field
+ * @param timePeriod
+ */
+
+ private void setEntityInternally(VerbatimTimePeriod timePeriod){
+ super.setEntityInternally(timePeriod);
+ ((Text) text_VerbatimDate.getMainControl()).setSelection(super.getCursorPosition());
+ text_VerbatimDate.setText(timePeriod.getVerbatimDate());
+ super.setEntity(timePeriod);
+ }
+
}
import eu.etaxonomy.taxeditor.ui.element.IErrorIntolerableElement;
import eu.etaxonomy.taxeditor.ui.element.IExceptionHandler;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
-import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.VerbatimTimePeriodElement;
import eu.etaxonomy.taxeditor.ui.mvc.element.DateElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
private UriWithLabelElement text_uri;
private DateElement text_accessed;
private EntitySelectionElement<AgentBase> selection_authorTeam;
- private TimePeriodElement element_timePeriod;
+ private VerbatimTimePeriodElement element_timePeriod;
private EntitySelectionElement<Reference> selection_inReference;
private EntitySelectionElement<Institution> selection_institution;
private EnumComboElement<ReferenceType> combo_referenceType;
}
// date published
- element_timePeriod = formFactory.createTimePeriodElement(formElement,
+ element_timePeriod = formFactory.createVerbatimTimePeriodElement(formElement,
"Date Published", entity.getDatePublished(), style);
createUriAndAbstract(this, entity, SWT.NULL);