// $Id$
/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
package eu.etaxonomy.taxeditor.ui.forms;
+import org.eclipse.jface.util.PropertyChangeEvent;
+
import eu.etaxonomy.cdm.model.description.KeyStatement;
/**
* @param formElement
*/
public KeyStatementElement(CdmFormFactory formFactory,
- ICdmFormElement formElement, String labelString, KeyStatement keyStatement, int textHeight, int style) {
+ ICdmFormElement formElement, String labelString,
+ KeyStatement keyStatement, int textHeight, int style) {
super(formFactory, formElement, labelString, null, textHeight, style);
- this.keyStatement = keyStatement;
-
- if(keyStatement != null){
- setMultilanguageText(keyStatement.getLabel());
- }
+ setKeyStatement(keyStatement);
}
/**
- * @param keyStatement the keyStatement to set
+ * @param keyStatement
+ * the keyStatement to set
*/
public void setKeyStatement(KeyStatement keyStatement) {
this.keyStatement = keyStatement;
+ if (keyStatement != null) {
+ setMultilanguageText(keyStatement.getLabel());
+ }
}
/**
return keyStatement;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * eu.etaxonomy.taxeditor.ui.forms.MultilanguageTextElement#propertyChange
+ * (org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ if (event == null) {
+ return;
+ }
+ if (keyStatement == null) {
+ Object eventSource = event.getSource();
+ if (eventSource == element_languageString) {
+ setKeyStatement(KeyStatement.NewInstance());
+ }
+ }
+ super.propertyChange(event);
+ }
+
}
// $Id$
/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
package eu.etaxonomy.taxeditor.ui.forms;
import eu.etaxonomy.taxeditor.ui.translation.TranslationWizard;
/**
- * <p>MultilanguageTextElement class.</p>
- *
+ * <p>
+ * MultilanguageTextElement class.
+ * </p>
+ *
* @author n.hoffmann
* @created Sep 29, 2010
* @version 1.0
*/
-public class MultilanguageTextElement extends AbstractCdmFormElement implements SelectionListener{
+public class MultilanguageTextElement extends AbstractCdmFormElement implements
+ SelectionListener {
private class OpenTranslationWizard extends SelectionAdapter {
- private Map<Language, LanguageString> multilanguageText;
+ private final Map<Language, LanguageString> multilanguageText;
- public OpenTranslationWizard(Map<Language, LanguageString> multilanguageText){
+ public OpenTranslationWizard(
+ Map<Language, LanguageString> multilanguageText) {
super();
this.multilanguageText = multilanguageText;
}
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse
+ * .swt.events.SelectionEvent)
*/
@Override
public void widgetSelected(SelectionEvent e) {
TranslationWizard wizard = new TranslationWizard(multilanguageText);
- WizardDialog dialog = new WizardDialog(getLayoutComposite().getShell(), wizard);
-
- if (dialog.open() == IStatus.OK){
+ WizardDialog dialog = new WizardDialog(getLayoutComposite()
+ .getShell(), wizard);
+
+ if (dialog.open() == IStatus.OK) {
combo_language.setTerms(getLanguages());
updateControls();
}
-
+
}
}
-
-
- private EmptyComboElement<Language> combo_language;
-
- private LanguageStringWithLabelElement element_languageString;
- private Button button;
+ private EmptyComboElement<Language> combo_language;
+ protected LanguageStringWithLabelElement element_languageString;
+ private Button button;
private Map<Language, LanguageString> multilanguageText;
-
+
/**
- * <p>Constructor for MultilanguageTextElement.</p>
- *
- * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory} object.
- * @param formElement a {@link eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement} object.
- * @param labelString a {@link java.lang.String} object.
- * @param multilanguageText a {@link java.util.Map} object.
- * @param textHeight a {@link java.lang.Integer} object.
- * @param style a int.
+ * <p>
+ * Constructor for MultilanguageTextElement.
+ * </p>
+ *
+ * @param formFactory
+ * a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory}
+ * object.
+ * @param formElement
+ * a {@link eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement}
+ * object.
+ * @param labelString
+ * a {@link java.lang.String} object.
+ * @param multilanguageText
+ * a {@link java.util.Map} object.
+ * @param textHeight
+ * a {@link java.lang.Integer} object.
+ * @param style
+ * a int.
*/
public MultilanguageTextElement(CdmFormFactory formFactory,
- ICdmFormElement formElement, String labelString, Map<Language, LanguageString> multilanguageText, Integer textHeight, int style) {
+ ICdmFormElement formElement, String labelString,
+ Map<Language, LanguageString> multilanguageText,
+ Integer textHeight, int style) {
super(formFactory, formElement);
-
+
formFactory.addPropertyChangeListener(this);
-
- element_languageString = formFactory.createLanguageStringWithLabelElement(formElement, labelString, null, textHeight, style);
-
+
+ element_languageString = formFactory
+ .createLanguageStringWithLabelElement(formElement, labelString,
+ null, textHeight, style);
+
if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
combo_language = (EmptyComboElement<Language>) formFactory
.createTermComboElement(TermComboType.EMPTY, formElement,
}
setMultilanguageText(multilanguageText);
}
-
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see eu.etaxonomy.taxeditor.forms.ISelectable#setSelected(boolean)
*/
/** {@inheritDoc} */
@Override
public void setSelected(boolean selected) {
- //
+ //
}
-
- private List<Language> getLanguages(){
-
- ArrayList<Language> languageList = new ArrayList<Language>(getMultilanguageText().keySet());
-
+
+ private List<Language> getLanguages() {
+
+ ArrayList<Language> languageList = new ArrayList<Language>(
+ getMultilanguageText().keySet());
+
// TODO sort
-
+
return languageList;
}
- /* (non-Javadoc)
- * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt
+ * .events.SelectionEvent)
*/
/** {@inheritDoc} */
@Override
public void widgetSelected(SelectionEvent e) {
Language selectedLanguage = combo_language.getSelection();
- if(selectedLanguage != null){
- LanguageString selectedLanguageString = getMultilanguageText().get(selectedLanguage);
-
+ if (selectedLanguage != null) {
+ LanguageString selectedLanguageString = getMultilanguageText().get(
+ selectedLanguage);
+
element_languageString.setLanguageString(selectedLanguageString);
}
}
- /* (non-Javadoc)
- * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse
+ * .swt.events.SelectionEvent)
*/
/** {@inheritDoc} */
@Override
- public void widgetDefaultSelected(SelectionEvent e) {}
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
/**
- * <p>Setter for the field <code>multilanguageText</code>.</p>
- *
- * @param multilanguageText the multilanguageText to set
+ * <p>
+ * Setter for the field <code>multilanguageText</code>.
+ * </p>
+ *
+ * @param multilanguageText
+ * the multilanguageText to set
*/
- public void setMultilanguageText(Map<Language, LanguageString> multilanguageText) {
+ public void setMultilanguageText(
+ Map<Language, LanguageString> multilanguageText) {
this.multilanguageText = multilanguageText;
-
- if(multilanguageText != null){
- if(multilanguageText.isEmpty()){
- multilanguageText.put(CdmStore.getDefaultLanguage(), LanguageString.NewInstance("", CdmStore.getDefaultLanguage()));
+
+ if (multilanguageText != null) {
+ if (multilanguageText.isEmpty()) {
+ multilanguageText.put(
+ CdmStore.getDefaultLanguage(),
+ LanguageString.NewInstance("",
+ CdmStore.getDefaultLanguage()));
}
if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
combo_language.setTerms(getLanguages());
}
updateControls();
- }
+ }
}
/**
*
*/
private void updateControls() {
- LanguageString preferredLanguageString = MultilanguageTextHelper.getPreferredLanguageString(getMultilanguageText(), Arrays.asList(new Language[]{CdmStore.getDefaultLanguage()}));
-
+ LanguageString preferredLanguageString = MultilanguageTextHelper
+ .getPreferredLanguageString(getMultilanguageText(),
+ Arrays.asList(new Language[] { CdmStore
+ .getDefaultLanguage() }));
+
element_languageString.setLanguageString(preferredLanguageString);
if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
combo_language.setSelection(preferredLanguageString.getLanguage());
}
/**
- * <p>Getter for the field <code>multilanguageText</code>.</p>
- *
+ * <p>
+ * Getter for the field <code>multilanguageText</code>.
+ * </p>
+ *
* @return the multilanguageText
*/
public Map<Language, LanguageString> getMultilanguageText() {
return multilanguageText;
}
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#propertyChange(org
+ * .eclipse.jface.util.PropertyChangeEvent)
*/
/** {@inheritDoc} */
@Override
public void propertyChange(PropertyChangeEvent event) {
- if(event == null){
+ if (event == null) {
return;
}
Object eventSource = event.getSource();
- if(eventSource == element_languageString){
- LanguageString languageString = ((LanguageStringWithLabelElement) eventSource).getLanguageString();
+ if (eventSource == element_languageString) {
+ LanguageString languageString = ((LanguageStringWithLabelElement) eventSource)
+ .getLanguageString();
multilanguageText.put(languageString.getLanguage(), languageString);
+ firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
}
}
}