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.AbstractTermDto;
import eu.etaxonomy.cdm.persistence.dto.TermDto;
import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
import eu.etaxonomy.taxeditor.model.ImageResources;
protected Representation selectedRepresentation;
protected TermBase term;
- protected TermDto termDto;
+ protected AbstractTermDto termDto;
private Button removeRepresentation;
createRepresentationEditingElements(formElement, style);
}
setTerm(term, fill);
- if(representation!=null){
+ //if(representation!=null){
setSelectedRepresentation(representation);
- }
+ //}
}
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);
if(representation!=null){
setSelectedRepresentation(representation);
}
+
}
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.
if (selectedRepresentation != 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);
}
import eu.etaxonomy.cdm.model.term.Representation;
import eu.etaxonomy.cdm.model.term.TermBase;
+import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
import eu.etaxonomy.cdm.persistence.dto.TermDto;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
}
public TranslatableRepresentationElement(CdmFormFactory formFactory, ICdmFormElement formElement,
- Representation representation, TermDto term, Integer textHeight, int style, boolean fill) {
+ Representation representation, AbstractTermDto term, Integer textHeight, int style, boolean fill) {
super(formFactory, formElement, representation, term, textHeight, style, fill);
@Override
public void widgetSelected(SelectionEvent e) {
TermBase term = getTerm();
+ AbstractTermDto termDto = getTermDto();
+
- if (term == null){
+ if (term == null && termDto == null){
MessagingUtils.warningDialog("No term to translate", getClass(), "The term is empty and therefore can not be translated");
}
-
- TermTranslationWizard wizard = new TermTranslationWizard(term);
+ TermTranslationWizard wizard;
+ if (term != null) {
+ wizard = new TermTranslationWizard(term);
+ }else {
+ wizard = new TermTranslationWizard(termDto);
+ }
WizardDialog dialog = new WizardDialog(getLayoutComposite()
.getShell(), wizard);
import org.eclipse.swt.widgets.Label;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.term.Representation;
import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
import eu.etaxonomy.taxeditor.event.EventUtility;
import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
import eu.etaxonomy.taxeditor.model.ColorResources;
import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.RepresentationElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
private CheckboxElement orderRelevant;
private CheckboxElement isFlat;
- private TextWithLabelElement titleCacheText;
+ //private TextWithLabelElement titleCacheText;
+ protected RepresentationElement element_Representation;
public TermTreeDetailElement(CdmFormFactory formFactory,
ICdmFormElement formElement) {
lblStructureText.setText(entity.getTermType().getLabel());
lblStructureText.setForeground(ColorResources.getColor(Resources.BLACK));
- titleCacheText = formFactory.createTextWithLabelElement(
- formElement, "Title Cache", entity.getTitleCache(), style);
-
+// titleCacheText = formFactory.createTextWithLabelElement(
+// formElement, "Title Cache", entity.getTitleCache(), style);
+ element_Representation = formFactory.createTranslatableRepresentationElementDto(formElement, entity.getPreferredRepresentation(CdmStore.getDefaultLanguage()),entity, 100, style, true);
allowDuplicates = formFactory.createCheckbox(formElement, "Allow duplicates", entity.isAllowDuplicate(), style);
if (entity.isContainsDuplicates() && entity.isAllowDuplicate()){
allowDuplicates.setEnabled(false);
@Override
public void handleEvent(Object eventSource) {
- if (eventSource == titleCacheText) {
- getEntity().setTitleCache(titleCacheText.getText());
+ if (eventSource == element_Representation) {
+// getEntity().setTitleCache(titleCacheText.getText());
+ Representation selectedRepresentation = element_Representation.getSelectedRepresentation();
+ if(selectedRepresentation!=null){
+ Language representationLanguage = selectedRepresentation.getLanguage();
+ if(representationLanguage==null){
+ representationLanguage = Language.getDefaultLanguage();
+ }
+// getEntity().setLabel(selectedRepresentation.getLabel(), representationLanguage);
+ Representation rep = getEntity().getRepresentation(representationLanguage);
+ if (rep == null){
+ rep = new Representation(selectedRepresentation.getDescription(), selectedRepresentation.getLabel(), selectedRepresentation.getAbbreviatedLabel(), representationLanguage);
+ getEntity().addRepresentation(rep);
+ }else{
+ getEntity().getRepresentation(representationLanguage).setLabel(selectedRepresentation.getLabel());
+ getEntity().getRepresentation(representationLanguage).setAbbreviatedLabel(selectedRepresentation.getAbbreviatedLabel());
+ getEntity().getRepresentation(representationLanguage).setText(selectedRepresentation.getDescription());
+ }
+ }
+ getEntity().setTitleCache(null);
}
else
if (eventSource == allowDuplicates) {
import org.eclipse.swt.widgets.Label;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.term.Representation;
import eu.etaxonomy.cdm.model.term.TermTree;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.ColorResources;
import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.termtree.e4.ICharacterEditor;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.RepresentationElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
private CheckboxElement orderRelevant;
private CheckboxElement isFlat;
- private TextWithLabelElement titleCacheText;
+// private TextWithLabelElement titleCacheText;
+ protected RepresentationElement element_Representation;
public TermTreeDetailElementForNode(CdmFormFactory formFactory,
ICdmFormElement formElement) {
lblStructureText.setText(entity.getTermType().getLabel());
lblStructureText.setForeground(ColorResources.getColor(Resources.BLACK));
- titleCacheText = formFactory.createTextWithLabelElement(
- formElement, "Title Cache", entity.getTitleCache(), style);
-
+// titleCacheText = formFactory.createTextWithLabelElement(
+// formElement, "Title Cache", entity.getTitleCache(), style);
+ element_Representation = formFactory.createTranslatableRepresentationElement(formElement, entity.getPreferredRepresentation(CdmStore.getDefaultLanguage()),entity, 100, style, true);
allowDuplicates = formFactory.createCheckbox(formElement, "Allow duplicates", entity.isAllowDuplicates(), style);
orderRelevant = formFactory.createCheckbox(formElement, "Order relevant", entity.isOrderRelevant(), style);
isFlat = formFactory.createCheckbox(formElement, "Is flat", entity.isFlat(), style);
if (AbstractUtility.getActivePart() instanceof ICharacterEditor){
- titleCacheText.setEnabled(false);
+ element_Representation.setEnabled(false);
allowDuplicates.setEnabled(false);
orderRelevant.setEnabled(false);
isFlat.setEnabled(false);
@Override
public void handleEvent(Object eventSource) {
- if (eventSource == titleCacheText) {
- getEntity().setTitleCache(titleCacheText.getText());;
+ if (eventSource == element_Representation) {
+ Representation selectedRepresentation = element_Representation.getSelectedRepresentation();
+ if(selectedRepresentation!=null){
+ Language representationLanguage = selectedRepresentation.getLanguage();
+ if(representationLanguage==null){
+ representationLanguage = Language.getDefaultLanguage();
+ }
+ getEntity().setLabel(selectedRepresentation.getLabel(), representationLanguage);
+ getEntity().getRepresentation(representationLanguage).setAbbreviatedLabel(selectedRepresentation.getAbbreviatedLabel());
+ getEntity().getRepresentation(representationLanguage).setText(selectedRepresentation.getDescription());
+ }
+ getEntity().setTitleCache(null);
}
else
if (eventSource == allowDuplicates) {
import eu.etaxonomy.cdm.common.CdmUtils;
import eu.etaxonomy.cdm.model.term.Representation;
import eu.etaxonomy.cdm.model.term.TermBase;
+import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
import eu.etaxonomy.taxeditor.ui.translation.TermTranslationWizardPage;
/**
public class TermTranslationWizard extends Wizard {
private TermTranslationWizardPage page;
- private final TermBase term;
+ private TermBase term;
+ private AbstractTermDto termDto;
public TermTranslationWizard(TermBase term) {
setWindowTitle("Translation Editor");
this.term = term;
setNeedsProgressMonitor(true);
}
+
+ public TermTranslationWizard(AbstractTermDto termDto) {
+ setWindowTitle("Translation Editor");
+ this.termDto = termDto;
+ setNeedsProgressMonitor(true);
+ }
@Override
public void addPages() {
- page = new TermTranslationWizardPage(term);
+ if (term != null) {
+ page = new TermTranslationWizardPage(term);
+ }else {
+ page = new TermTranslationWizardPage(termDto);
+ }
addPage(page);
}
|| CdmUtils.isNotBlank(representation.getLabel())
|| CdmUtils.isNotBlank(representation.getAbbreviatedLabel())
|| CdmUtils.isNotBlank(representation.getPlural())){
- term.addRepresentation(representation);
+ if (term != null) {
+ term.addRepresentation(representation);
+ }else if (termDto != null){
+ termDto.addRepresentation(representation);
+ }
}
return true;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.term.Representation;
import eu.etaxonomy.cdm.model.term.TermBase;
+import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
private static int TEXT_HEIGHT = 200;
- private final TermBase term;
+ private TermBase term;
+ private AbstractTermDto termDto;
private MultilanguageTextElement source;
private final CdmFormFactory formFactory;
formFactory.addPropertyChangeListener(this);
setPageComplete(false);
}
+
+ public TermTranslationWizardPage(AbstractTermDto termDto) {
+ super("TranslationWizardPage");
+ //Assert.isNotNull(multilanguageText, "Multilanguage text may not be null");
+ setTitle("Add or edit translations.");
+ this.termDto = termDto;
+ formFactory = new CdmFormFactory(Display.getCurrent());
+ formFactory.addPropertyChangeListener(this);
+ setPageComplete(false);
+ }
@Override
public void createControl(Composite parent) {
}
private void setSource(Language language) {
- Representation preferredRepresentation =term.getPreferredRepresentation(language);
- if(preferredRepresentation != null){
- text_source.setSelectedRepresentation(preferredRepresentation);
- }
+ Representation preferredRepresentation ;
+ if (term != null) {
+ preferredRepresentation =term.getPreferredRepresentation(language);
+ }else {
+ preferredRepresentation =termDto.getPreferredRepresentation(language);
+ }
+ if(preferredRepresentation != null){
+ text_source.setSelectedRepresentation(preferredRepresentation);
+ }
}
private void createLeftControls(ICdmFormElement element){
- Representation preferredRepresentation= term.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage());
-
- text_source = formFactory.createRepresentationElement(element, preferredRepresentation,term, TEXT_HEIGHT, SWT.NULL, true);
- text_source.setTerm(term, true);
+ Representation preferredRepresentation;
+ if (term != null) {
+ preferredRepresentation = term.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage());
+ text_source = formFactory.createRepresentationElement(element, preferredRepresentation,term, TEXT_HEIGHT, SWT.NULL, true);
+ text_source.setTerm(term, true);
+ }else {
+ preferredRepresentation = termDto.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage());
+ text_source = formFactory.createRepresentationElement(element, preferredRepresentation,termDto, TEXT_HEIGHT, SWT.NULL, true);
+ text_source.setTermDto(termDto, true);
+ }
+
+
}
private void createRightControls(ICdmFormElement element){
- text_target = formFactory.createRepresentationElement(element, null, term, TEXT_HEIGHT, SWT.NULL, false);
+ if (term != null) {
+ text_target = formFactory.createRepresentationElement(element, null, term, TEXT_HEIGHT, SWT.NULL, false);
+ }else {
+ text_target = formFactory.createRepresentationElement(element, null, termDto, TEXT_HEIGHT, SWT.NULL, false);
+ }
}
@Override
if (event.getSource() == text_target){
getWizard().getContainer().updateButtons();
}
+
}
}