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;
/**
protected LanguageStringWithLabelElement element_languageString;
private Button button;
+
+// private Button removeRepresentation;
private Map<Language, LanguageString> multilanguageText;
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);
firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
}
}
+
+
}
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 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{
protected TextWithLabelElement element_text;
protected Button button;
- //protected Button deleteButton;
-
+
protected Representation selectedRepresentation;
protected TermBase term;
+ private Button removeRepresentation;
+
// protected final boolean isTranslationWizard;
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<Language> getLanguages() {
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();
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);
+
}
}
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));
}
}
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();
+ }
+ }
}