Package org.eclipse.e4.xwt.databinding

Source Code of org.eclipse.e4.xwt.databinding.BindingContext

/*******************************************************************************
* Copyright (c) 2006, 2008 Soyatec (http://www.soyatec.com) and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     Soyatec & hceylan - initial API and implementation
*******************************************************************************/
package org.eclipse.e4.xwt.databinding;

import org.eclipse.core.databinding.AggregateValidationStatus;
import org.eclipse.core.databinding.Binding;
import org.eclipse.core.databinding.UpdateListStrategy;
import org.eclipse.core.databinding.UpdateSetStrategy;
import org.eclipse.core.databinding.UpdateValueStrategy;
import org.eclipse.core.databinding.ValidationStatusProvider;
import org.eclipse.core.databinding.observable.Realm;
import org.eclipse.core.databinding.observable.list.IObservableList;
import org.eclipse.core.databinding.observable.map.IObservableMap;
import org.eclipse.core.databinding.observable.set.IObservableSet;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.e4.xwt.XWT;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.widgets.Widget;

/**
* @author hceylan
*/
public class BindingContext implements IBindingContext {

  private org.eclipse.core.databinding.DataBindingContext context;

  private Realm realm;

  private AggregateValidationStatus status;

  private int statusType = MAX_SEVERITY;

  private final Widget parent;

  public BindingContext(Widget parent) {
    super();
    this.parent = parent;
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#getContext()
   */
  public org.eclipse.core.databinding.DataBindingContext getContext() {
    if (this.context == null) {
      if (this.realm != null) {
        this.context = new org.eclipse.core.databinding.DataBindingContext(
            this.realm);
      } else {
        this.context = new org.eclipse.core.databinding.DataBindingContext(
            XWT.getRealm());
      }

      if (this.parent != null) {
        this.parent.addDisposeListener(new DisposeListener() {
          public void widgetDisposed(DisposeEvent e) {
            context.dispose();
          }
        });
      }
    }
    return this.context;
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#getRealm()
   */
  public Realm getRealm() {
    return this.realm;
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#getStatus()
   */
  public AggregateValidationStatus getStatus() {
    if (this.status == null) {
      this.status = new AggregateValidationStatus(getContext(),
          this.statusType);
      if (this.parent != null) {
        this.parent.addDisposeListener(new DisposeListener() {
          public void widgetDisposed(DisposeEvent e) {
            status.dispose();
          }
        });
      }
    }
    return this.status;
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#getStatusType()
   */
  public int getStatusType() {
    return statusType;
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#bindValue(org.eclipse.core.databinding.observable.value.IObservableValue, org.eclipse.core.databinding.observable.value.IObservableValue)
   */
  public final Binding bindValue(IObservableValue targetObservableValue,
      IObservableValue modelObservableValue) {
    return getContext().bindValue(targetObservableValue,
        modelObservableValue);
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#equals(java.lang.Object)
   */
  public boolean equals(Object obj) {
    if (!(obj instanceof BindingContext)) {
      return false;     
    }
    org.eclipse.core.databinding.DataBindingContext context = getContext();
    if (context != null) {
      return context.equals(((BindingContext)obj).getContext());             
    }
    if (((BindingContext)obj).getContext() != null) {
      return false;
    }
    return super.equals(obj);
  }
 
  @Override
  public int hashCode() {
    return getContext().hashCode();
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#bindValue(org.eclipse.core.databinding.observable.value.IObservableValue, org.eclipse.core.databinding.observable.value.IObservableValue, org.eclipse.core.databinding.UpdateValueStrategy, org.eclipse.core.databinding.UpdateValueStrategy)
   */
  public final Binding bindValue(IObservableValue targetObservableValue,
      IObservableValue modelObservableValue,
      UpdateValueStrategy targetToModel, UpdateValueStrategy modelToTarget) {
    return getContext().bindValue(targetObservableValue,
        modelObservableValue, targetToModel, modelToTarget);
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#bindList(org.eclipse.core.databinding.observable.list.IObservableList, org.eclipse.core.databinding.observable.list.IObservableList)
   */
  public final Binding bindList(IObservableList targetObservableList,
      IObservableList modelObservableList) {
    return getContext()
        .bindList(targetObservableList, modelObservableList);
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#bindList(org.eclipse.core.databinding.observable.list.IObservableList, org.eclipse.core.databinding.observable.list.IObservableList, org.eclipse.core.databinding.UpdateListStrategy, org.eclipse.core.databinding.UpdateListStrategy)
   */
  public final Binding bindList(IObservableList targetObservableList,
      IObservableList modelObservableList,
      UpdateListStrategy targetToModel, UpdateListStrategy modelToTarget) {
    return getContext().bindList(targetObservableList,
        modelObservableList, targetToModel, modelToTarget);
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#bindSet(org.eclipse.core.databinding.observable.set.IObservableSet, org.eclipse.core.databinding.observable.set.IObservableSet)
   */
  public final Binding bindSet(IObservableSet targetObservableSet,
      IObservableSet modelObservableSet) {
    return getContext().bindSet(targetObservableSet, modelObservableSet);
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#bindSet(org.eclipse.core.databinding.observable.set.IObservableSet, org.eclipse.core.databinding.observable.set.IObservableSet, org.eclipse.core.databinding.UpdateSetStrategy, org.eclipse.core.databinding.UpdateSetStrategy)
   */
  public final Binding bindSet(IObservableSet targetObservableSet,
      IObservableSet modelObservableSet, UpdateSetStrategy targetToModel,
      UpdateSetStrategy modelToTarget) {
    return getContext().bindSet(targetObservableSet, modelObservableSet,
        targetToModel, modelToTarget);
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#dispose()
   */
  public final void dispose() {
    getContext().dispose();
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#getBindings()
   */
  public final IObservableList getBindings() {
    return getContext().getBindings();
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#getValidationStatusProviders()
   */
  public final IObservableList getValidationStatusProviders() {
    return getContext().getValidationStatusProviders();
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#getValidationStatusMap()
   */
  public final IObservableMap getValidationStatusMap() {
    return getContext().getValidationStatusMap();
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#addBinding(org.eclipse.core.databinding.Binding)
   */
  public void addBinding(Binding binding) {
    getContext().addBinding(binding);
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#addValidationStatusProvider(org.eclipse.core.databinding.ValidationStatusProvider)
   */
  public void addValidationStatusProvider(
      ValidationStatusProvider validationStatusProvider) {
    getContext().addValidationStatusProvider(validationStatusProvider);
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#updateModels()
   */
  public final void updateModels() {
    getContext().updateModels();
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#updateTargets()
   */
  public final void updateTargets() {
    getContext().updateTargets();
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#removeBinding(org.eclipse.core.databinding.Binding)
   */
  public boolean removeBinding(Binding binding) {
    return getContext().removeBinding(binding);
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#removeValidationStatusProvider(org.eclipse.core.databinding.ValidationStatusProvider)
   */
  public boolean removeValidationStatusProvider(
      ValidationStatusProvider validationStatusProvider) {
    return getContext().removeValidationStatusProvider(
        validationStatusProvider);
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#getValidationRealm()
   */
  public final Realm getValidationRealm() {
    return getContext().getValidationRealm();
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#setRealm(org.eclipse.core.databinding.observable.Realm)
   */
  public void setRealm(Realm realm) {
    this.realm = realm;
  }

  /* (non-Javadoc)
   * @see org.eclipse.e4.xwt.databinding.IDataBindingContext#setStatusType(int)
   */
  public void setStatusType(int statusType) {
    this.statusType = statusType;
  }

}
TOP

Related Classes of org.eclipse.e4.xwt.databinding.BindingContext

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.