@Override
 public ValidationIssue<RequiredBindingValidationRule<T>, T> applyValidation(final T object) {
   final FlexoModelObject validatedObject = object;
   BindingDefinition bd = (BindingDefinition) validatedObject.objectForKey(bindingDefinition);
   AbstractBinding bv = (AbstractBinding) validatedObject.objectForKey(bindingName);
   if (bd == null) {
     logger.warning(
         "Object of type "
             + object.getClass().getName()
             + " does not define any '"
             + bindingDefinition
             + "' binding definition");
     return null;
   } else if (bd.getIsMandatory()) {
     if ((bv == null) || (!bv.isBindingValid())) {
       ValidationError<RequiredBindingValidationRule<T>, T> error;
       if (bv == null) {
         error =
             new ValidationError<RequiredBindingValidationRule<T>, T>(this, object, null) {
               @Override
               public String getLocalizedMessage() {
                 return getLocalizedErrorMessageForUndefinedValue();
               }
             };
       } else { // !bv.isBindingValid()
         error =
             new ValidationError<RequiredBindingValidationRule<T>, T>(this, object, null) {
               @Override
               public String getLocalizedMessage() {
                 return getLocalizedErrorMessageForInvalidValue();
               }
             };
       }
       if (object instanceof IEWidget) {
         error.addToFixProposals(new AddEntryToComponentAndSetBinding(bindingName, bd));
       }
       Vector allAvailableBV = bd.searchMatchingBindingValue((Bindable) validatedObject, 2);
       for (int i = 0; i < allAvailableBV.size(); i++) {
         BindingValue proposal = (BindingValue) allAvailableBV.elementAt(i);
         error.addToFixProposals(new SetBinding(proposal));
       }
       return error;
     }
     return null;
   }
   return null;
 }
Ejemplo n.º 2
0
  /** {@inheritDoc} */
  public void allBindingsChanged(BindingProvider provider) {
    super.allBindingsChanged(provider);

    if (bindingsExist()) {
      activeService.activate();
    } else {
      activeService.deactivate();
    }
  }
Ejemplo n.º 3
0
  /** {@inheritDoc} */
  public void bindingChanged(BindingProvider provider, String itemName) {
    super.bindingChanged(provider, itemName);

    if (bindingsExist()) {
      activeService.activate();
    } else {
      activeService.deactivate();
    }
  }
Ejemplo n.º 4
0
  /**
   * Removes <code>provider</code> from the list of providers. If there is no provider left the
   * refresh thread is getting interrupted.
   *
   * @param provider the {@link BindingProvider} to remove
   */
  public void removeBindingProvider(P provider) {
    super.removeBindingProvider(provider);

    // if there are no binding providers there is no need to run this
    // refresh thread any longer ...
    if (this.providers.size() == 0) {
      activeService.deactivate();
    }
  }
Ejemplo n.º 5
0
 /**
  * Adds <code>provider</code> to the list of {@link BindingProvider}s and adds <code>this</code>
  * as {@link BindingChangeListener}. If <code>provider</code> contains any binding an the
  * refresh-Thread is stopped it will be started.
  *
  * @param provider the new {@link BindingProvider} to add
  */
 public void addBindingProvider(P provider) {
   super.addBindingProvider(provider);
   activeService.activate();
 }
Ejemplo n.º 6
0
 /** {@inheritDoc} */
 public void bindingChanged(BindingProvider provider, String itemName) {
   super.bindingChanged(provider, itemName);
 }