コード例 #1
0
ファイル: NumericTextBox.java プロジェクト: Rima-B/opal
 protected void increaseValue(int step) {
   if (step == 0) return;
   String value = getText();
   Number newValue = numberType.increaseValue(value, step);
   if (newValue == null || maxConstrained && newValue.intValue() > max) {
     return;
   }
   setValue(numberType.formatValue(newValue));
 }
コード例 #2
0
ファイル: BoolType.java プロジェクト: jglrxavpok/WeaC
 public boolean equal(WeaCValue a, WeaCValue b) {
   if (a.getValue() instanceof Boolean && b.getValue() instanceof Boolean)
     return a.getValue() == b.getValue();
   if (a.type == this && b.type == this) {
     return a.getValue() == b.getValue();
   } else if (a.type == this) {
     return ((int) NumberType.convert(b.getValue(), WeaCType.intType) != 0)
         == (boolean) a.getValue();
   } else if (b.type == this) {
     return ((int) NumberType.convert(a.getValue(), WeaCType.intType) != 0)
         == (boolean) b.getValue();
   }
   return false;
 }
コード例 #3
0
 private boolean addValueMapEntry(
     @Nullable Number lower, @Nullable Number upper, String newValue) {
   if (!numberType.addValueMapEntry(derivationHelper, lower, upper, newValue)) {
     fireEvent(NotificationEvent.newBuilder().error(translations.rangeOverlap()).build());
     return false;
   }
   return true;
 }
コード例 #4
0
ファイル: ValueType.java プロジェクト: opencolor/qi4j-core
  private static ValueType newValueType(
      Map<Type, ValueType> typeMap, Type type, Class declaringClass, Class compositeType) {
    ValueType valueType = null;
    if (CollectionType.isCollection(type)) {
      if (type instanceof ParameterizedType) {
        ParameterizedType pt = (ParameterizedType) type;
        Type collectionType = pt.getActualTypeArguments()[0];
        if (collectionType instanceof TypeVariable) {
          TypeVariable collectionTypeVariable = (TypeVariable) collectionType;
          collectionType =
              Classes.resolveTypeVariable(collectionTypeVariable, declaringClass, compositeType);
        }
        ValueType collectedType =
            newValueType(typeMap, collectionType, declaringClass, compositeType);
        valueType = new CollectionType(nameOf(type), collectedType);
      } else {
        valueType =
            new CollectionType(
                nameOf(type), newValueType(typeMap, Object.class, declaringClass, compositeType));
      }
    } else if (ValueCompositeType.isValueComposite(type)) {
      if (typeMap != null) {
        valueType = typeMap.get(type);
      }

      if (valueType == null) {
        Class valueTypeClass = Classes.getRawClass(type);

        List<PropertyType> types = new ArrayList<PropertyType>();
        valueType = new ValueCompositeType(nameOf(valueTypeClass), types);
        if (typeMap == null) {
          typeMap = new HashMap<Type, ValueType>();
        }
        typeMap.put(type, valueType);

        addProperties(typeMap, valueTypeClass, compositeType, types);

        Collections.sort(types); // Sort by property name
      }
    } else if (EnumType.isEnum(type)) {
      valueType = new EnumType(nameOf(type));
    } else if (StringType.isString(type)) {
      valueType = new StringType();
    } else if (NumberType.isNumber(type)) {
      valueType = new NumberType(nameOf(type));
    } else if (BooleanType.isBoolean(type)) {
      valueType = new BooleanType();
    } else if (DateType.isDate(type)) {
      valueType = new DateType();
    } else if (EntityReferenceType.isEntityReference(type)) {
      valueType = new EntityReferenceType(nameOf(type));
    } else {
      // TODO: shouldn't we check that the type is a Serializable?
      valueType = new SerializableType(nameOf(type));
    }

    return valueType;
  }
コード例 #5
0
 /**
  * Creates a new RangeSeekBar.
  *
  * @param absoluteMinValue The minimum value of the selectable range.
  * @param absoluteMaxValue The maximum value of the selectable range.
  * @param context
  * @throws IllegalArgumentException Will be thrown if min/max value type is not one of Long,
  *     Double, Integer, Float, Short, Byte or BigDecimal.
  */
 public RangeSeekBar(T absoluteMinValue, T absoluteMaxValue, Context context)
     throws IllegalArgumentException {
   super(context);
   this.absoluteMinValue = absoluteMinValue;
   this.absoluteMaxValue = absoluteMaxValue;
   absoluteMinValuePrim = absoluteMinValue.doubleValue();
   absoluteMaxValuePrim = absoluteMaxValue.doubleValue();
   numberType = NumberType.fromNumber(absoluteMinValue);
 }
コード例 #6
0
 @SuppressWarnings("MethodOnlyUsedFromInnerClass")
 private boolean addValueMapEntry(@Nullable String value, String newValue) {
   if (derivationHelper.hasValueMapEntryWithValue(value)) {
     fireEvent(NotificationEvent.newBuilder().error(translations.valueMapAlreadyAdded()).build());
     return false;
   }
   numberType.addValueMapEntry(derivationHelper, value, newValue);
   return true;
 }
コード例 #7
0
ファイル: NumericTextBox.java プロジェクト: Rima-B/opal
 @Override
 public void setValue(String value, boolean fireEvents) {
   try {
     Number newValue = numberType.parseValue(value);
     if (newValue == null
         || maxConstrained && newValue.intValue() > max
         || minConstrained && newValue.intValue() < min) {
       return;
     }
     String prevText = getValue();
     setText(numberType.formatValue(newValue));
     if (fireEvents) {
       ValueChangeEvent.fireIfNotEqual(this, getValue(), prevText);
     }
   } catch (Exception ex) {
     // Do Nothing
   }
 }
コード例 #8
0
    protected void invokeObject(Object obj, Object value)
        throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {

      if (_type.isEnum()) {
        if (value instanceof Enum) _setter.invoke(obj, new Object[] {value});
        else
          _setter.invoke(
              obj, new Object[] {Enum.valueOf((Class<? extends Enum>) _type, value.toString())});
      } else if (_numberType != null && value instanceof Number) {
        _setter.invoke(obj, new Object[] {_numberType.getActualValue((Number) value)});
      } else if (Character.TYPE.equals(_type) || Character.class.equals(_type)) {
        _setter.invoke(obj, new Object[] {String.valueOf(value).charAt(0)});
      } else if (_componentType != null && value.getClass().isArray()) {
        if (_numberType == null) {
          int len = Array.getLength(value);
          Object array = Array.newInstance(_componentType, len);
          try {
            System.arraycopy(value, 0, array, 0, len);
          } catch (Exception e) {
            // unusual array with multiple types
            LOG.ignore(e);
            _setter.invoke(obj, new Object[] {value});
            return;
          }
          _setter.invoke(obj, new Object[] {array});
        } else {
          Object[] old = (Object[]) value;
          Object array = Array.newInstance(_componentType, old.length);
          try {
            for (int i = 0; i < old.length; i++)
              Array.set(array, i, _numberType.getActualValue((Number) old[i]));
          } catch (Exception e) {
            // unusual array with multiple types
            LOG.ignore(e);
            _setter.invoke(obj, new Object[] {value});
            return;
          }
          _setter.invoke(obj, new Object[] {array});
        }
      } else _setter.invoke(obj, new Object[] {value});
    }
コード例 #9
0
ファイル: RangeSeekBar.java プロジェクト: vikashphusro/mycode
  /**
   * Creates a new RangeSeekBar.
   *
   * @param absoluteMinValue The minimum value of the selectable range.
   * @param absoluteMaxValue The maximum value of the selectable range.
   * @param context
   * @throws IllegalArgumentException Will be thrown if min/max value type is not one of Long,
   *     Double, Integer, Float, Short, Byte or BigDecimal.
   */
  public RangeSeekBar(T absoluteMinValue, T absoluteMaxValue, Context context)
      throws IllegalArgumentException {
    super(context);
    this.absoluteMinValue = absoluteMinValue;
    this.absoluteMaxValue = absoluteMaxValue;
    absoluteMinValuePrim = absoluteMinValue.doubleValue();
    absoluteMaxValuePrim = absoluteMaxValue.doubleValue();
    numberType = NumberType.fromNumber(absoluteMinValue);

    // make RangeSeekBar focusable. This solves focus handling issues in case EditText widgets are
    // being used along with the RangeSeekBar within ScollViews.
    setFocusable(true);
    setFocusableInTouchMode(true);
    init();
  }
コード例 #10
0
  public enum NumberType {
    UNKNOWN(0),
    TEL(1),
    SIP(2),
    IP(2),
    RING(3);

    private final int type;

    NumberType(int t) {
      type = t;
    }

    private static final NumberType[] VALS = NumberType.values();

    public static NumberType fromInteger(int _id) {
      for (NumberType v : VALS) if (v.type == _id) return v;
      return UNKNOWN;
    }
  }
コード例 #11
0
 private void newDerivationHelper() {
   numberType = NumberType.valueOf(getOriginalVariable().getValueType().toUpperCase());
   derivationHelper =
       numberType.newDerivationHelper(getOriginalVariable(), getDerivedVariable());
 }
コード例 #12
0
ファイル: NumericTextBox.java プロジェクト: Rima-B/opal
 public void setNumberType(String type) {
   numberType = NumberType.valueOf(type.toUpperCase());
 }
コード例 #13
0
ファイル: NumericTextBox.java プロジェクト: Rima-B/opal
 @Nullable
 @SuppressWarnings("unchecked")
 public <T extends Number> T getNumberValue() {
   if (getText().isEmpty()) return null;
   return (T) numberType.parseValue(getValue());
 }
コード例 #14
0
 public void setType(int type) {
   this.ntype = NumberType.fromInteger(type);
 }
コード例 #15
0
 private void readFromParcel(Parcel in) {
   ntype = NumberType.fromInteger(in.readInt());
   number = in.readParcelable(SipUri.class.getClassLoader());
   category = in.readInt();
 }
コード例 #16
0
 @Override
 public boolean isValidInstance(QuantityUnit value) {
   return quantityType.isValidInstance(value.quantity) && unitType.isValidInstance(value.unit);
 }
コード例 #17
0
ファイル: RangeSeekBar.java プロジェクト: vikashphusro/mycode
 /**
  * Converts a normalized value to a Number object in the value space between absolute minimum and
  * maximum.
  *
  * @param normalized
  * @return
  */
 @SuppressWarnings("unchecked")
 private T normalizedToValue(double normalized) {
   return (T)
       numberType.toNumber(
           absoluteMinValuePrim + normalized * (absoluteMaxValuePrim - absoluteMinValuePrim));
 }
コード例 #18
0
 /**
  * Converts a normalized value to a Number object in the value space between absolute minimum and
  * maximum.
  */
 @SuppressWarnings("unchecked")
 private T normalizedToValue(double normalized) {
   double v = absoluteMinValuePrim + normalized * (absoluteMaxValuePrim - absoluteMinValuePrim);
   // TODO parameterize this rounding to allow variable decimal points
   return (T) numberType.toNumber(Math.round(v * 100) / 100d);
 }
コード例 #19
0
 private void setValuePrimAndNumberType() {
   absoluteMinValuePrim = absoluteMinValue.doubleValue();
   absoluteMaxValuePrim = absoluteMaxValue.doubleValue();
   numberType = NumberType.fromNumber(absoluteMinValue);
 }