Package org.eclipse.core.databinding.conversion

Examples of org.eclipse.core.databinding.conversion.IConverter


      IMetaclass metaclass = XWT.getMetaclass(dataObject);
      IProperty prop = metaclass.findProperty(propertyName);
      if (prop != null && value != null) {
        cacheData.property = prop;
        Class<?> valueType = value.getClass();
        IConverter converter = XWT.findConvertor(valueType, prop
            .getType());
        Object trueValue = value;
        if (converter != null) {
          trueValue = converter.convert(trueValue);
        }
        cacheData.value = trueValue;
        try {
          Object existingValue = prop.getValue(dataObject);
          return Operator.compare(existingValue, operator, trueValue);
        } catch (Exception e) {
          LoggerManager.log(e);
        }
      }
    } else if (binding != null) {
      Object existingValue = binding.getValue(null);
      if (existingValue == null) {
        return false;
      }
      while (existingValue instanceof IObservableValue) {
        existingValue = ((IObservableValue) existingValue).getValue();
      }
      Class<?> existingValueType = existingValue.getClass();
      Class<?> valueType = value.getClass();
      Object normalizedValue = value;
      if (!existingValueType.isAssignableFrom(valueType) && !valueType.isAssignableFrom(existingValueType)) {
        IConverter converter = XWT.findConvertor(valueType, existingValueType);
        if (converter != null) {
          normalizedValue = converter.convert(normalizedValue);
        }
        else if (value.toString().trim().length() > 0){
          boolean found = false;
          // in case where the value is a boolean
          converter = XWT.findConvertor(valueType, Boolean.class);
          if (converter != null) {
            try {
              Object booleanValue = converter.convert(value);
              if (booleanValue != null) {
                converter = XWT.findConvertor(existingValueType, Boolean.class);
                if (converter != null) {
                  existingValue = converter.convert(existingValue);
                  normalizedValue = booleanValue;
                  found = true;
                }
              }
            } catch (RuntimeException e) {
            }
          }
          if (!found) {
            converter = XWT.findConvertor(valueType, int.class);
            if (converter != null) {
              try {
                Object booleanValue = converter.convert(value);
                if (booleanValue != null) {
                  converter = XWT.findConvertor(existingValueType, int.class);
                  if (converter != null) {
                    existingValue = converter.convert(existingValue);
                    normalizedValue = booleanValue;
                    found = true;
                  }
                }
              } catch (Exception e) {
              }
            }           
          }
          if (!found) {
            converter = XWT.findConvertor(valueType, double.class);
            if (converter != null) {
              try {
                Object booleanValue = converter.convert(value);
                if (booleanValue != null) {
                  converter = XWT.findConvertor(existingValueType, double.class);
                  if (converter != null) {
                    existingValue = converter.convert(existingValue);
                    normalizedValue = booleanValue;
                    found = true;
                  }
                }
              } catch (Exception e) {
              }
            }           
          }
          if (!found) {
            converter = XWT.findConvertor(valueType, String.class);
            if (converter != null) {
              try {
                Object booleanValue = converter.convert(value);
                if (booleanValue != null) {
                  converter = XWT.findConvertor(existingValueType, String.class);
                  if (converter != null) {
                    existingValue = converter.convert(existingValue);
                    normalizedValue = booleanValue;
                    found = true;
                  }
                }
              } catch (Exception e) {
View Full Code Here


          //
          // test value ==
          //
          Object realValue = value;
          if (value != null) {
            IConverter converter = XWT.findConvertor(value.getClass(), valueType);
            if (converter != null) {
              realValue = converter.convert(value);           
            }
          }
          Object newValue = event.getSource();
          if (newValue instanceof IObservableValue) {
            IObservableValue observableValue = (IObservableValue) newValue;
            newValue = observableValue.getValue();
          }
          if (newValue != null) {
            IConverter newConverter = XWT.findConvertor(newValue.getClass(), valueType);
            if (newConverter != null) {
              newValue = newConverter.convert(newValue);           
            }
          }

          if (!Operator.compare(newValue, operator, realValue)) {
            restoreValues();
View Full Code Here

  protected Object convert(Class type, Object value) {
    if (value != null) {
      if (type != null && type.isEnum() && value instanceof String) {
        return Enum.valueOf(type, (String) value);
      }
      IConverter c = XWT.findConvertor(value.getClass(), (Class<?>) getValueType());
      if (c != null) {
        return c.convert(value);
      }
    }
    return value;
  }
View Full Code Here

          return null;
        }
      } else {
        Class<?>[] interfacees = source.getInterfaces();
        for (Class<?> class1 : interfacees) {
          IConverter converter = findConverter(class1, target);
          if (converter != null) {
            return converter;
          }
        }
        Class<?> superclass = source.getSuperclass();
        if (superclass != null) {
          IConverter converter = findConverter(superclass, target);
          if (converter != null) {
            return converter;
          }
        }
        return null;
View Full Code Here

    }
    return findConverter(convertors, target);
  }

  private IConverter findConverter(HashMap<Class<?>, IConverter> convertors, Class<?> current) {
    IConverter converter = convertors.get(current);
    if (converter == null) {
      if (current.isEnum()) {
        converter = convertors.get(Enum.class);
      }
    }
View Full Code Here

                writeMethod.invoke(target, new Object[] { Enum.valueOf(targetType, (String) value) });
                return;
              } catch (Exception e) {
              }
            }
            IConverter c = XWT.findConvertor(value.getClass(), targetType);
            if (c != null) {
              value = c.convert(value);
            }
          }
          writeMethod.invoke(target, new Object[] { value });
          return;
        }
      }
      Field[] fields = type.getDeclaredFields();
      for (Field field : fields) {
        if (propertyName.equals(field.getName())) {
          if (!field.isAccessible()) {
            field.setAccessible(true);
          }
          Class fieldType = field.getType();
          if (fieldType.isEnum() && value instanceof String) {
            try {
              field.set(target, Enum.valueOf(fieldType, (String) value));
              return;
            } catch (Exception e) {
            }
          }
          IConverter c = XWT.findConvertor(value.getClass(), fieldType);
          if (c != null) {
            value = c.convert(value);
          }
          field.set(target, value);
          return;
        }
      }
View Full Code Here

        Class<?> propertyType = property.getType();
        if (!propertyType.isAssignableFrom(value.getClass())
            || (value instanceof IBinding && !(IBinding.class
                .isAssignableFrom(propertyType)))) {
          Object orginalValue = value;
          IConverter converter = loader.findConvertor(value
              .getClass(), propertyType);
          if (converter != null) {
            value = converter.convert(value);
            if (value != null
                && orginalValue instanceof IBinding
                && !propertyType.isAssignableFrom(value
                    .getClass())) {
              converter = loader.findConvertor(value.getClass(),
                  propertyType);
              if (converter != null) {
                value = converter.convert(value);
              } else {
                LoggerManager.log(new XWTException("Convertor "
                    + value.getClass().getSimpleName()
                    + "->" + propertyType.getSimpleName()
                    + " is not found"));
View Full Code Here

   

    UpdateValueStrategy targetToModel = new UpdateValueStrategy(false,  UpdateValueStrategy.POLICY_UPDATE);
    targetToModel.setAfterGetValidator(optionalNumbersOnlyValidator);
    targetToModel.setBeforeSetValidator(instancesValidator);
    targetToModel.setConverter(new IConverter() {
      @Override
      public Object getToType() {
        return new BigInteger("-1");
      }
     
View Full Code Here

TOP

Related Classes of org.eclipse.core.databinding.conversion.IConverter

Copyright © 2018 www.massapicom. 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.