fix #5927 first implementation for deletion of representations
authorKatja Luther <k.luther@bgbm.org>
Wed, 24 Aug 2016 08:13:35 +0000 (10:13 +0200)
committerKatja Luther <k.luther@bgbm.org>
Wed, 24 Aug 2016 08:13:35 +0000 (10:13 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MultilanguageTextElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RepresentationElement.java

index e490d4cd7da55d4e7285afa82304d70f8d35c56b..11a1e21d5a1baa0c85ba535b5a69420ee89d3633 100644 (file)
@@ -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.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.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;
 
 /**
 import eu.etaxonomy.taxeditor.ui.translation.TranslationWizard;
 
 /**
@@ -87,6 +89,8 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
        protected LanguageStringWithLabelElement element_languageString;
 
        private Button button;
        protected LanguageStringWithLabelElement element_languageString;
 
        private Button button;
+       
+//     private Button removeRepresentation;
 
        private Map<Language, LanguageString> multilanguageText;
 
 
        private Map<Language, LanguageString> multilanguageText;
 
@@ -135,6 +139,13 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                combo_language = formFactory.createDefinedTermComboElement(TermType.Language, formElement,
                                                "", null, style);
                combo_language.addSelectionListener(this);
                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);
                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));
                }
        }
                        firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
                }
        }
+       
+       
 }
 }
index f17cd55cdddb45cb4d63bea7d26256c71c765bc9..0f3627c041d7385ae113b7f4e3abf74eea90a439 100755 (executable)
@@ -21,6 +21,8 @@ import java.util.Collections;
 import java.util.List;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
 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;
 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.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;
 
 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{
 
 public class RepresentationElement  extends AbstractCdmFormElement implements
 SelectionListener{
 
@@ -44,11 +48,12 @@ SelectionListener{
         protected TextWithLabelElement element_text;
 
         protected Button button;
         protected TextWithLabelElement element_text;
 
         protected Button button;
-        //protected Button deleteButton;
-
+       
         protected Representation selectedRepresentation;
         protected TermBase term;
 
         protected Representation selectedRepresentation;
         protected TermBase term;
 
+               private Button removeRepresentation;
+
        // protected final boolean isTranslationWizard;
 
 
        // protected final boolean isTranslationWizard;
 
 
@@ -133,13 +138,20 @@ SelectionListener{
 
         protected void createRepresentationEditingElements(
                 ICdmFormElement formElement, int style) {
 
         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);
             combo_language = formFactory.createDefinedTermComboElement(TermType.Language, formElement,
                             "", null, false, style);
 
             combo_language.addSelectionListener(this);
-
-            addControl(formFactory.createLabel(getLayoutComposite(), ""));
+            
+            //addControl(formFactory.createLabel(getLayoutComposite(), ""));
        }
 
         public List<Language> getLanguages() {
        }
 
         public List<Language> getLanguages() {
@@ -215,10 +227,12 @@ SelectionListener{
 
             if (selectedRepresentation != null) {
                combo_language.setTerms(getLanguages());
 
             if (selectedRepresentation != null) {
                combo_language.setTerms(getLanguages());
+               
             } else{
                 element_Label.setEnabled(false);
                  element_abbrevLabel.setEnabled(false);
                  element_text.setEnabled(false);
             } else{
                 element_Label.setEnabled(false);
                  element_abbrevLabel.setEnabled(false);
                  element_text.setEnabled(false);
+                 removeRepresentation.setEnabled(false);
             }
             if (update){
                updateControls();
             }
             if (update){
                updateControls();
@@ -238,6 +252,9 @@ SelectionListener{
             selectedRepresentation = preferredRepresentation;
             if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
                 combo_language.setSelection(preferredRepresentation == null?CdmStore.getDefaultLanguage():preferredRepresentation.getLanguage());
             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);
                        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);
                } else{
                         element_Label.setEnabled(false);
                      element_abbrevLabel.setEnabled(false);
                      element_text.setEnabled(false);
+                     removeRepresentation.setEnabled(false);
                }
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
             }
                }
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
             }
@@ -314,6 +334,23 @@ SelectionListener{
             }
             this.selectedRepresentation = selectedRepresentation;
         }
             }
             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();
+               }
+       }
     }
 
 
     }