コード例 #1
0
 @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;
 }
コード例 #2
0
 protected static ParameterDefinition[] buildParameters(BindingDefinition bd) {
   ParameterDefinition[] returned = new ParameterDefinition[3];
   returned[0] = new TextFieldParameter("variableName", "variable_name", "");
   returned[1] =
       new DMEntityParameter("variableType", "variable_type", bd.getType().getBaseEntity());
   returned[2] =
       new ChoiceListParameter<DMPropertyImplementationType>(
           "implementationType", "implementation_type", DMPropertyImplementationType.PUBLIC_FIELD);
   returned[2].addParameter("format", "localizedName");
   return returned;
 }