-// $Id$
-/**
-* Copyright (C) 2014 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.mvc;
-
-import java.util.List;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-
-/**
- * @author pplitzner
- * @date 23.06.2014
- *
- */
-public class OriginalLabelDataField extends Composite {
-
- private DataBindingContext m_bindingContext;
- private DerivedUnit derivedUnit = null;
- private final Text originalLabelInfoText;
- private CdmFormFactory formFactory;
-
- public OriginalLabelDataField(Composite parent, int style, DerivedUnit newDerivedUnit, CdmFormFactory formFactory) {
- this(parent, style);
- setDerivedUnit(newDerivedUnit);
- this.formFactory = formFactory;
- }
-
- public OriginalLabelDataField(Composite parent, int style) {
- super(parent, style);
- setLayout(new GridLayout(2, false));
-
- new Label(this, SWT.NONE).setText("Original Label Data");
-
- originalLabelInfoText = new Text(this, SWT.BORDER | SWT.WRAP | SWT.MULTI);
- originalLabelInfoText.addModifyListener(new ModifyListener() {
- @Override
- public void modifyText(ModifyEvent e) {
- if(formFactory!=null){
- List<IPropertyChangeListener> propertyChangeListeners = formFactory.getPropertyChangeListeners();
- for (IPropertyChangeListener iPropertyChangeListener : propertyChangeListeners) {
- iPropertyChangeListener.propertyChange(new CdmPropertyChangeEvent(OriginalLabelDataField.this, e));
- }
- }
- }
- });
- originalLabelInfoText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
- if (derivedUnit != null) {
- m_bindingContext = initDataBindings();
- }
- }
-
- @Override
- protected void checkSubclass() {
- // Disable the check that prevents subclassing of SWT components
- }
-
- private DataBindingContext initDataBindings() {
- IObservableValue originalLabelInfoObserveWidget = SWTObservables.observeText(originalLabelInfoText, SWT.Modify);
- IObservableValue originalLabelInfoObserveValue = BeansObservables
- .observeValue(derivedUnit, "originalLabelInfo");
- //
- DataBindingContext bindingContext = new DataBindingContext();
- //
- bindingContext.bindValue(originalLabelInfoObserveWidget, originalLabelInfoObserveValue, null, null);
- //
- return bindingContext;
- }
-
- public DerivedUnit getDerivedUnit() {
- return derivedUnit;
- }
-
- public void setDerivedUnit(DerivedUnit newDerivedUnit) {
- setDerivedUnit(newDerivedUnit, true);
- }
-
- public void setDerivedUnit(DerivedUnit newDerivedUnit, boolean update) {
- derivedUnit = newDerivedUnit;
- if (update) {
- if (m_bindingContext != null) {
- m_bindingContext.dispose();
- m_bindingContext = null;
- }
- if (derivedUnit != null) {
- m_bindingContext = initDataBindings();
- }
- }
- }
-
-}