From: Katja Luther Date: Wed, 24 Aug 2016 08:13:35 +0000 (+0200) Subject: fix #5927 first implementation for deletion of representations X-Git-Tag: 4.3.0^2~64 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/cec14c0169ef463d763a99b89e21acdd1f95fa90 fix #5927 first implementation for deletion of representations --- diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MultilanguageTextElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MultilanguageTextElement.java index e490d4cd7..11a1e21d5 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MultilanguageTextElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MultilanguageTextElement.java @@ -30,10 +30,12 @@ import eu.etaxonomy.cdm.model.common.LanguageString; import eu.etaxonomy.cdm.model.common.MultilanguageTextHelper; import eu.etaxonomy.cdm.model.common.TermType; import eu.etaxonomy.taxeditor.model.DefaultTermComparator; +import eu.etaxonomy.taxeditor.model.ImageResources; import eu.etaxonomy.taxeditor.model.MessagingUtils; import eu.etaxonomy.taxeditor.preference.PreferencesUtil; import eu.etaxonomy.taxeditor.store.CdmStore; import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; +import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement; import eu.etaxonomy.taxeditor.ui.translation.TranslationWizard; /** @@ -87,6 +89,8 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements protected LanguageStringWithLabelElement element_languageString; private Button button; + +// private Button removeRepresentation; private Map multilanguageText; @@ -135,6 +139,13 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements combo_language = formFactory.createDefinedTermComboElement(TermType.Language, formElement, "", null, style); combo_language.addSelectionListener(this); +// removeRepresentation = formFactory.createButton(getLayoutComposite(), null, +// SWT.PUSH); +// removeRepresentation.setImage(ImageResources +// .getImage(ImageResources.TRASH_ICON)); +// removeRepresentation.setToolTipText("Remove representation"); +// addControl(removeRepresentation); +// removeRepresentation.addSelectionListener(new DeleteListener(this)); addControl(formFactory.createLabel(getLayoutComposite(), "")); button = formFactory.createButton(getLayoutComposite(), "Open In Translation Editor", SWT.PUSH); @@ -254,4 +265,6 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event)); } } + + } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RepresentationElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RepresentationElement.java index f17cd55cd..0f3627c04 100755 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RepresentationElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RepresentationElement.java @@ -21,6 +21,8 @@ import java.util.Collections; import java.util.List; import org.eclipse.jface.util.PropertyChangeEvent; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.widgets.Button; @@ -30,10 +32,12 @@ import eu.etaxonomy.cdm.model.common.Representation; import eu.etaxonomy.cdm.model.common.TermBase; import eu.etaxonomy.cdm.model.common.TermType; import eu.etaxonomy.taxeditor.model.DefaultTermComparator; +import eu.etaxonomy.taxeditor.model.ImageResources; import eu.etaxonomy.taxeditor.preference.PreferencesUtil; import eu.etaxonomy.taxeditor.store.CdmStore; import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; + public class RepresentationElement extends AbstractCdmFormElement implements SelectionListener{ @@ -44,11 +48,12 @@ SelectionListener{ protected TextWithLabelElement element_text; protected Button button; - //protected Button deleteButton; - + protected Representation selectedRepresentation; protected TermBase term; + private Button removeRepresentation; + // protected final boolean isTranslationWizard; @@ -133,13 +138,20 @@ SelectionListener{ protected void createRepresentationEditingElements( ICdmFormElement formElement, int style) { - + removeRepresentation = formFactory.createButton(getLayoutComposite(), null, + SWT.PUSH); + removeRepresentation.setImage(ImageResources + .getImage(ImageResources.TRASH_ICON)); + removeRepresentation.setToolTipText("Remove representation"); + removeRepresentation.addSelectionListener(new DeleteListener(this)); + addControl(removeRepresentation); + combo_language = formFactory.createDefinedTermComboElement(TermType.Language, formElement, "", null, false, style); combo_language.addSelectionListener(this); - - addControl(formFactory.createLabel(getLayoutComposite(), "")); + + //addControl(formFactory.createLabel(getLayoutComposite(), "")); } public List getLanguages() { @@ -215,10 +227,12 @@ SelectionListener{ if (selectedRepresentation != null) { combo_language.setTerms(getLanguages()); + } else{ element_Label.setEnabled(false); element_abbrevLabel.setEnabled(false); element_text.setEnabled(false); + removeRepresentation.setEnabled(false); } if (update){ updateControls(); @@ -238,6 +252,9 @@ SelectionListener{ selectedRepresentation = preferredRepresentation; if (PreferencesUtil.isMultilanguageTextEditingCapability()) { combo_language.setSelection(preferredRepresentation == null?CdmStore.getDefaultLanguage():preferredRepresentation.getLanguage()); + boolean removePossible = term.getRepresentations().size() > 1 && !combo_language.getSelection().equals(CdmStore.getDefaultLanguage()); + removeRepresentation.setEnabled(removePossible); + } } @@ -289,10 +306,13 @@ SelectionListener{ element_Label.setEnabled(true); element_abbrevLabel.setEnabled(true); element_text.setEnabled(true); + boolean removePossible = term.getRepresentations().size() > 1 && !combo_language.getSelection().equals(CdmStore.getDefaultLanguage()); + removeRepresentation.setEnabled(removePossible); } else{ element_Label.setEnabled(false); element_abbrevLabel.setEnabled(false); element_text.setEnabled(false); + removeRepresentation.setEnabled(false); } firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event)); } @@ -314,6 +334,23 @@ SelectionListener{ } this.selectedRepresentation = selectedRepresentation; } + + private class DeleteListener extends SelectionAdapter { + + private final RepresentationElement element; + + public DeleteListener(RepresentationElement element) { + this.element = element; + } + + @Override + public void widgetSelected(SelectionEvent e) { + term.removeRepresentation(selectedRepresentation); + firePropertyChangeEvent(new CdmPropertyChangeEvent( + this, e)); + updateControls(); + } + } }