import eu.etaxonomy.cdm.model.term.Representation;
import eu.etaxonomy.cdm.model.term.TermBase;
import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
import eu.etaxonomy.taxeditor.model.ImageResources;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
protected Representation selectedRepresentation;
protected TermBase term;
- protected TermDto termDto;
+ protected AbstractTermDto termDto;
private Button removeRepresentation;
super(formFactory, formElement);
formFactory.addPropertyChangeListener(this);
-
+ setSelectedRepresentation(representation);
element_Label = this.formFactory.createTextWithLabelElement(formElement, "Label", null, style);
element_abbrevLabel = this.formFactory.createTextWithLabelElement(formElement, "abbrev. Label", null, style);
element_plural = this.formFactory.createTextWithLabelElement(formElement, "Plural", null, style);
createRepresentationEditingElements(formElement, style);
}
setTerm(term, fill);
- if(representation!=null){
- setSelectedRepresentation(representation);
- }
+ //if(representation!=null){
+
+ //}
}
public RepresentationElement(CdmFormFactory formFactory,
- ICdmFormElement formElement, Representation representation, TermDto term,
+ ICdmFormElement formElement, Representation representation, AbstractTermDto term,
Integer textHeight, int style, boolean fill) {
super(formFactory, formElement);
formFactory.addPropertyChangeListener(this);
-
+ if(representation!=null){
+ setSelectedRepresentation(representation);
+ }
element_Label = this.formFactory.createTextWithLabelElement(formElement, "Label", null, style);
element_abbrevLabel = this.formFactory.createTextWithLabelElement(formElement, "abbrev. Label", null, style);
element_plural = this.formFactory.createTextWithLabelElement(formElement, "Plural", null, style);
element_text = this.formFactory.createMultiLineTextWithLabel(formElement, "Description", textHeight, style);
if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
createRepresentationEditingElements(formElement, style);
+
}
setTermDto(term, fill);
if(representation!=null){
setSelectedRepresentation(representation);
}
+
}
removeRepresentation.setToolTipText("Remove representation");
removeRepresentation.addSelectionListener(new DeleteListener(this));
addControl(removeRepresentation);
-
+ boolean addNullValue = false;
+ if (this.selectedRepresentation == null) {
+ addNullValue = true;
+ }
combo_language = formFactory.createDefinedTermComboElement(TermType.Language, formElement,
- "", null, false, style);
+ "", null, addNullValue, style);
}
term.addRepresentation(rep);
}
- if (selectedRepresentation != null) {
- combo_language.setTerms(getLanguages());
-
- } else{
- setEnabledControls(false);
- if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
- removeRepresentation.setEnabled(false);
- }
- }
+// if (selectedRepresentation != null) {
+// combo_language.setTerms(getLanguages());
+//
+// } else{
+// setEnabledControls(false);
+// if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+// removeRepresentation.setEnabled(false);
+// }
+// }
if (update){
updateControls();
}
}
public void setTermDto(
- TermDto term, boolean update) {
+ AbstractTermDto term, boolean update) {
this.termDto = term;
if (term.getRepresentations().isEmpty()){
//if the term has no representation at all, create a default one.
term.addRepresentation(rep);
}
- if (selectedRepresentation != null) {
+ if (selectedRepresentation != null && combo_language != null) {
combo_language.setTerms(getLanguages());
- } else{
- setEnabledControls(false);
- if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
- removeRepresentation.setEnabled(false);
- }
- }
+ }
+// else if (!term.getRepresentations().isEmpty()){
+// setEnabledControls(false);
+// if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+// removeRepresentation.setEnabled(false);
+// }
+// }
if (update){
updateControls();
}
public TermBase getTerm() {
return term;
}
+ public AbstractTermDto getTermDto() {
+ return termDto;
+ }
@Override
public void propertyChange(PropertyChangeEvent event) {
Language selectedLanguage = combo_language.getSelection();
if (selectedLanguage != null) {
- selectedRepresentation = getTerm().getRepresentation(selectedLanguage);
+ if (getTerm() != null){
+ selectedRepresentation = getTerm().getRepresentation(selectedLanguage);
+ }else{
+ selectedRepresentation = getTermDto().getRepresentation(selectedLanguage);
+ }
if (selectedRepresentation == null){
selectedRepresentation = Representation.NewInstance("", "", "", selectedLanguage);
}
setEnabledControls(false);
removeRepresentation.setEnabled(false);
}
- firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
+ //firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
+ firePropertyChangeEvent(event);
}
}
}
public void setSelectedRepresentation(Representation selectedRepresentation) {
- if (selectedRepresentation == null){
- selectedRepresentation = Representation.NewInstance("", "", "", null);
- }
+// if (selectedRepresentation == null){
+// selectedRepresentation = Representation.NewInstance("", "", "", null);
+// }
this.selectedRepresentation = selectedRepresentation;
+
}
private class DeleteListener extends SelectionAdapter {
updateControls();
}
}
+
+ /**
+ * @param isEnabled
+ */
+ public void setLanguageComboEnabled(boolean isEnabled) {
+ this.combo_language.setEnabled(isEnabled);
+ }
}