Example usage for org.apache.wicket.util.convert IConverter convertToObject

List of usage examples for org.apache.wicket.util.convert IConverter convertToObject

Introduction

In this page you can find the example usage for org.apache.wicket.util.convert IConverter convertToObject.

Prototype

C convertToObject(String value, Locale locale) throws ConversionException;

Source Link

Document

Converts the given String value

Usage

From source file:au.org.theark.core.web.component.customfield.dataentry.CustomDataEditorDataView.java

License:Open Source License

@Override
protected void populateItem(Item<T> item) {
    ICustomFieldData aCustomData = item.getModelObject();
    CustomField cf = aCustomData.getCustomFieldDisplay().getCustomField();
    CustomFieldDisplay cfd = aCustomData.getCustomFieldDisplay();

    // Determine label of component, also used for error messages
    String labelModel = new String();
    if (cf.getFieldLabel() != null) {
        labelModel = cf.getFieldLabel();
    } else {/*ww  w  .ja  va  2 s.c o m*/
        // Defaults to name if no fieldLabel
        labelModel = cf.getName();
    }
    Label fieldLabelLbl = new Label("fieldLabel", labelModel);

    Panel dataValueEntryPanel;
    String fieldTypeName = cf.getFieldType().getName();
    String encodedValues = cf.getEncodedValues();
    Boolean requiredField = aCustomData.getCustomFieldDisplay().getRequired();
    if (fieldTypeName.equals(au.org.theark.core.web.component.customfield.Constants.DATE_FIELD_TYPE_NAME)) {
        if (cf.getDefaultValue() != null && item.getModelObject().getDateDataValue() == null) {
            try {
                item.getModelObject().setDateDataValue(
                        new SimpleDateFormat(Constants.DD_MM_YYYY).parse(cf.getDefaultValue()));
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        DateDataEntryPanel dateDataEntryPanel = new DateDataEntryPanel("dataValueEntryPanel",
                new PropertyModel<Date>(item.getModel(), "dateDataValue"), new Model<String>(labelModel));
        dateDataEntryPanel.setErrorDataValueModel(new PropertyModel<String>(item.getModel(), "errorDataValue"));
        dateDataEntryPanel.setUnitsLabelModel(
                new PropertyModel<String>(item.getModel(), "customFieldDisplay.customField.unitType.name"));

        if (cf.getMinValue() != null && !cf.getMinValue().isEmpty()) {
            IConverter<Date> dateConverter = dateDataEntryPanel.getDateConverter();
            try {
                Date minDate = (Date) dateConverter.convertToObject(cf.getMinValue(), getLocale());
                dateDataEntryPanel.addValidator(DateValidator.minimum(minDate, Constants.DD_MM_YYYY));
            } catch (ConversionException ce) {
                // This should not occur because it means the data is corrupted on the backend database
                getLog().error("Unexpected error: customfield.minValue is not in the DD/MM/YYYY date format");
                this.error(
                        "An unexpected error occurred loading the field validators from database.  Please contact your System Administrator.");
                getParentContainer().setEnabled(false);
            }
        }
        if (cf.getMaxValue() != null && !cf.getMaxValue().isEmpty()) {
            IConverter<Date> dateConverter = dateDataEntryPanel.getDateConverter();
            try {
                Date maxDate = (Date) dateConverter.convertToObject(cf.getMaxValue(), getLocale());
                dateDataEntryPanel.addValidator(DateValidator.maximum(maxDate, Constants.DD_MM_YYYY));
            } catch (ConversionException ce) {
                // This should not occur because it means the data is corrupted on the backend database
                getLog().error("Unexpected error: customfield.maxValue is not in the DD/MM/YYYY date format");
                this.error(
                        "An unexpected error occurred loading the field validators from database.  Please contact your System Administrator.");
                getParentContainer().setEnabled(false);
            }
        }
        if (requiredField != null && requiredField == true) {
            dateDataEntryPanel.setRequired(true);
        }
        dataValueEntryPanel = dateDataEntryPanel;
    } else {//ie if its not a date...
        if (encodedValues != null && !encodedValues.isEmpty()) {
            // The presence of encodedValues means it should be a DropDownChoice
            List<String> encodeKeyValueList = Arrays.asList(encodedValues.split(";"));
            ArrayList<EncodedValueVO> choiceList = new ArrayList<EncodedValueVO>();
            for (String keyValue : encodeKeyValueList) {
                // Only split for the first instance of the '=' (allows the '=' character in the actual value)
                String[] keyValueArray = keyValue.split("=", 2);
                EncodedValueVO encodedValueVo = new EncodedValueVO();
                encodedValueVo.setKey(keyValueArray[0]);
                encodedValueVo.setValue(keyValueArray[1]);
                choiceList.add(encodedValueVo);
            }

            ChoiceRenderer<EncodedValueVO> choiceRenderer = new ChoiceRenderer<EncodedValueVO>("value", "key");

            if (cfd.getAllowMultiselect()) {

                CheckGroupDataEntryPanel cgdePanel = new CheckGroupDataEntryPanel("dataValueEntryPanel",
                        new PropertyModel<String>(item.getModel(), "textDataValue"),
                        new Model<String>(labelModel), choiceList, choiceRenderer);

                cgdePanel.setErrorDataValueModel(new PropertyModel<String>(item.getModel(), "errorDataValue"));
                cgdePanel.setUnitsLabelModel(new PropertyModel<String>(item.getModel(),
                        "customFieldDisplay.customField.unitType.name"));

                if (cf.getMissingValue() != null && !cf.getMissingValue().isEmpty()) {
                    cgdePanel.setMissingValue(cf.getMissingValue());
                }
                if (requiredField != null && requiredField == true) {
                    cgdePanel.setRequired(true);
                }

                dataValueEntryPanel = cgdePanel;

            } else {
                if (cf.getDefaultValue() != null && item.getModelObject().getTextDataValue() == null) {
                    item.getModelObject().setTextDataValue(cf.getDefaultValue());
                }
                DropDownChoiceDataEntryPanel ddcPanel = new DropDownChoiceDataEntryPanel("dataValueEntryPanel",
                        new PropertyModel<String>(item.getModel(), "textDataValue"),
                        new Model<String>(labelModel), choiceList, choiceRenderer);
                ddcPanel.setErrorDataValueModel(new PropertyModel<String>(item.getModel(), "errorDataValue"));
                ddcPanel.setUnitsLabelModel(new PropertyModel<String>(item.getModel(),
                        "customFieldDisplay.customField.unitType.name"));

                if (cf.getMissingValue() != null && !cf.getMissingValue().isEmpty()) {
                    ddcPanel.setMissingValue(cf.getMissingValue());
                }
                if (requiredField != null && requiredField == true) {
                    ddcPanel.setRequired(true);
                }
                dataValueEntryPanel = ddcPanel;
            }
        } else {
            if (fieldTypeName
                    .equals(au.org.theark.core.web.component.customfield.Constants.CHARACTER_FIELD_TYPE_NAME)) {
                // Text data
                if (cf.getDefaultValue() != null && item.getModelObject().getTextDataValue() == null) {
                    item.getModelObject().setTextDataValue(cf.getDefaultValue());
                }
                TextDataEntryPanel textDataEntryPanel = new TextDataEntryPanel("dataValueEntryPanel",
                        new PropertyModel<String>(item.getModel(), "textDataValue"),
                        new Model<String>(labelModel));
                textDataEntryPanel
                        .setErrorDataValueModel(new PropertyModel<String>(item.getModel(), "errorDataValue"));
                textDataEntryPanel.setUnitsLabelModel(new PropertyModel<String>(item.getModel(),
                        "customFieldDisplay.customField.unitType.name"));
                textDataEntryPanel.setTextFieldSize(60);

                if (requiredField != null && requiredField == true) {
                    textDataEntryPanel.setRequired(true);
                }
                dataValueEntryPanel = textDataEntryPanel;
            } else if (fieldTypeName
                    .equals(au.org.theark.core.web.component.customfield.Constants.NUMBER_FIELD_TYPE_NAME)) {
                // Number data
                if (cf.getDefaultValue() != null && item.getModelObject().getNumberDataValue() == null) {
                    item.getModelObject().setNumberDataValue(Double.parseDouble(cf.getDefaultValue()));
                    ;
                }
                NumberDataEntryPanel numberDataEntryPanel = new NumberDataEntryPanel("dataValueEntryPanel",
                        new PropertyModel<Double>(item.getModel(), "numberDataValue"),
                        new Model<String>(labelModel));
                numberDataEntryPanel
                        .setErrorDataValueModel(new PropertyModel<String>(item.getModel(), "errorDataValue"));
                numberDataEntryPanel.setUnitsLabelModel(new PropertyModel<String>(item.getModel(),
                        "customFieldDisplay.customField.unitType.name"));

                if (cf.getMinValue() != null && !cf.getMinValue().isEmpty()) {
                    IConverter<Double> doubleConverter = numberDataEntryPanel.getNumberConverter();
                    try {
                        Double minNumber = (Double) doubleConverter.convertToObject(cf.getMinValue(),
                                getLocale());
                        numberDataEntryPanel.addValidator(new MinimumValidator<Double>(minNumber));
                    } catch (ConversionException ce) {
                        // This should not occur because it means the data is corrupted on the backend database
                        getLog().error(
                                "Unexpected error: customfield.maxValue is not in a valid number format");
                        this.error(
                                "An unexpected error occurred loading the field validators from database. Please contact your System Administrator.");
                        getParentContainer().setEnabled(false);
                    }
                }
                if (cf.getMaxValue() != null && !cf.getMaxValue().isEmpty()) {
                    IConverter<Double> doubleConverter = numberDataEntryPanel.getNumberConverter();
                    try {
                        Double maxNumber = (Double) doubleConverter.convertToObject(cf.getMaxValue(),
                                getLocale());
                        numberDataEntryPanel.addValidator(new MaximumValidator<Double>(maxNumber));
                    } catch (ConversionException ce) {
                        // This should not occur because it means the data is corrupted on the backend database
                        getLog().error(
                                "Unexpected error: customfield.maxValue is not in a valid number format");
                        this.error(
                                "An unexpected error occurred loading the field validators from database. Please contact your System Administrator.");
                        getParentContainer().setEnabled(false);
                    }
                }
                if (requiredField != null && requiredField == true) {
                    numberDataEntryPanel.setRequired(true);
                }
                dataValueEntryPanel = numberDataEntryPanel;
            } else {
                // TODO: Unknown type should display an UnsupportedValueEntryPanel
                dataValueEntryPanel = new EmptyPanel("dataValueEntryPanel");
            }
        }
    }

    item.add(fieldLabelLbl);
    item.add(dataValueEntryPanel);
}

From source file:au.org.theark.phenotypic.web.component.phenodataentry.PhenoDataSetDataEditorDataView.java

License:Open Source License

@Override
protected void populateItem(Item<T> item) {
    IPhenoDataSetFieldData aCustomData = item.getModelObject();
    PhenoDataSetField pf = aCustomData.getPhenoDataSetFieldDisplay().getPhenoDataSetField();
    PhenoDataSetFieldDisplay pfd = aCustomData.getPhenoDataSetFieldDisplay();

    // Determine label of component, also used for error messages
    String labelModel = new String();
    if (pf.getFieldLabel() != null) {
        labelModel = pf.getFieldLabel();
    } else {//from  w  ww .j a  v a 2s.co  m
        // Defaults to name if no fieldLabel
        labelModel = pf.getName();
    }
    Label fieldLabelLbl = new Label("fieldLabel", labelModel);

    Panel dataValueEntryPanel;
    String fieldTypeName = pf.getFieldType().getName();
    String encodedValues = pf.getEncodedValues();
    Boolean requiredField = aCustomData.getPhenoDataSetFieldDisplay().getRequired();
    if (fieldTypeName.equals(au.org.theark.core.web.component.customfield.Constants.DATE_FIELD_TYPE_NAME)) {
        if (pf.getDefaultValue() != null && item.getModelObject().getDateDataValue() == null) {
            try {
                item.getModelObject().setDateDataValue(
                        new SimpleDateFormat(Constants.DD_MM_YYYY).parse(pf.getDefaultValue()));
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        DateDataEntryPanel dateDataEntryPanel = new DateDataEntryPanel("dataValueEntryPanel",
                new PropertyModel<Date>(item.getModel(), "dateDataValue"), new Model<String>(labelModel));
        dateDataEntryPanel.setErrorDataValueModel(new PropertyModel<String>(item.getModel(), "errorDataValue"));
        dateDataEntryPanel.setUnitsLabelModel(new PropertyModel<String>(item.getModel(),
                "phenoDataSetFieldDisplay.phenoDataSetField.unitType.name"));

        if (pf.getMinValue() != null && !pf.getMinValue().isEmpty()) {
            IConverter<Date> dateConverter = dateDataEntryPanel.getDateConverter();
            try {
                Date minDate = (Date) dateConverter.convertToObject(pf.getMinValue(), getLocale());
                dateDataEntryPanel.addValidator(DateValidator.minimum(minDate, Constants.DD_MM_YYYY));
            } catch (ConversionException ce) {
                // This should not occur because it means the data is corrupted on the backend database
                getLog().error(
                        "Unexpected error: phenoDataSetField.minValue is not in the DD/MM/YYYY date format");
                this.error(
                        "An unexpected error occurred loading the field validators from database.  Please contact your System Administrator.");
                getParentContainer().setEnabled(false);
            }
        }
        if (pf.getMaxValue() != null && !pf.getMaxValue().isEmpty()) {
            IConverter<Date> dateConverter = dateDataEntryPanel.getDateConverter();
            try {
                Date maxDate = (Date) dateConverter.convertToObject(pf.getMaxValue(), getLocale());
                dateDataEntryPanel.addValidator(DateValidator.maximum(maxDate, Constants.DD_MM_YYYY));
            } catch (ConversionException ce) {
                // This should not occur because it means the data is corrupted on the backend database
                getLog().error(
                        "Unexpected error: phenoDataSetField.maxValue is not in the DD/MM/YYYY date format");
                this.error(
                        "An unexpected error occurred loading the field validators from database.  Please contact your System Administrator.");
                getParentContainer().setEnabled(false);
            }
        }
        if (requiredField != null && requiredField == true) {
            dateDataEntryPanel.setRequired(true);
        }
        dataValueEntryPanel = dateDataEntryPanel;
    } else {//ie if its not a date...
        if (encodedValues != null && !encodedValues.isEmpty()) {
            // The presence of encodedValues means it should be a DropDownChoice
            List<String> encodeKeyValueList = Arrays.asList(encodedValues.split(";"));
            ArrayList<EncodedValueVO> choiceList = new ArrayList<EncodedValueVO>();
            for (String keyValue : encodeKeyValueList) {
                // Only split for the first instance of the '=' (allows the '=' character in the actual value)
                String[] keyValueArray = keyValue.split("=", 2);
                EncodedValueVO encodedValueVo = new EncodedValueVO();
                encodedValueVo.setKey(keyValueArray[0]);
                encodedValueVo.setValue(keyValueArray[1]);
                choiceList.add(encodedValueVo);
            }

            ChoiceRenderer<EncodedValueVO> choiceRenderer = new ChoiceRenderer<EncodedValueVO>("value", "key");

            if (pfd.getAllowMultiselect()) {

                CheckGroupDataEntryPanel cgdePanel = new CheckGroupDataEntryPanel("dataValueEntryPanel",
                        new PropertyModel<String>(item.getModel(), "textDataValue"),
                        new Model<String>(labelModel), choiceList, choiceRenderer);

                cgdePanel.setErrorDataValueModel(new PropertyModel<String>(item.getModel(), "errorDataValue"));
                cgdePanel.setUnitsLabelModel(new PropertyModel<String>(item.getModel(),
                        "phenoDataSetFieldDisplay.phenoDataSetField.unitType.name"));

                if (pf.getMissingValue() != null && !pf.getMissingValue().isEmpty()) {
                    cgdePanel.setMissingValue(pf.getMissingValue());
                }
                if (requiredField != null && requiredField == true) {
                    cgdePanel.setRequired(true);
                }

                dataValueEntryPanel = cgdePanel;

            } else {
                if (pf.getDefaultValue() != null && item.getModelObject().getTextDataValue() == null) {
                    item.getModelObject().setTextDataValue(pf.getDefaultValue());
                }
                DropDownChoiceDataEntryPanel ddcPanel = new DropDownChoiceDataEntryPanel("dataValueEntryPanel",
                        new PropertyModel<String>(item.getModel(), "textDataValue"),
                        new Model<String>(labelModel), choiceList, choiceRenderer);
                ddcPanel.setErrorDataValueModel(new PropertyModel<String>(item.getModel(), "errorDataValue"));
                ddcPanel.setUnitsLabelModel(new PropertyModel<String>(item.getModel(),
                        "phenoDataSetFieldDisplay.phenoDataSetField.unitType.name"));

                if (pf.getMissingValue() != null && !pf.getMissingValue().isEmpty()) {
                    ddcPanel.setMissingValue(pf.getMissingValue());
                }
                if (requiredField != null && requiredField == true) {
                    ddcPanel.setRequired(true);
                }
                dataValueEntryPanel = ddcPanel;
            }
        } else {
            if (fieldTypeName
                    .equals(au.org.theark.core.web.component.customfield.Constants.CHARACTER_FIELD_TYPE_NAME)) {
                // Text data
                if (pf.getDefaultValue() != null && item.getModelObject().getTextDataValue() == null) {
                    item.getModelObject().setTextDataValue(pf.getDefaultValue());
                }
                TextDataEntryPanel textDataEntryPanel = new TextDataEntryPanel("dataValueEntryPanel",
                        new PropertyModel<String>(item.getModel(), "textDataValue"),
                        new Model<String>(labelModel));
                textDataEntryPanel
                        .setErrorDataValueModel(new PropertyModel<String>(item.getModel(), "errorDataValue"));
                textDataEntryPanel.setUnitsLabelModel(new PropertyModel<String>(item.getModel(),
                        "phenoDataSetFieldDisplay.phenoDataSetField.unitType.name"));
                textDataEntryPanel.setTextFieldSize(60);

                if (requiredField != null && requiredField == true) {
                    textDataEntryPanel.setRequired(true);
                }
                dataValueEntryPanel = textDataEntryPanel;
            } else if (fieldTypeName
                    .equals(au.org.theark.core.web.component.customfield.Constants.NUMBER_FIELD_TYPE_NAME)) {
                // Number data
                if (pf.getDefaultValue() != null && item.getModelObject().getNumberDataValue() == null) {
                    item.getModelObject().setNumberDataValue(Double.parseDouble(pf.getDefaultValue()));
                    ;
                }
                NumberDataEntryPanel numberDataEntryPanel = new NumberDataEntryPanel("dataValueEntryPanel",
                        new PropertyModel<Double>(item.getModel(), "numberDataValue"),
                        new Model<String>(labelModel));
                numberDataEntryPanel
                        .setErrorDataValueModel(new PropertyModel<String>(item.getModel(), "errorDataValue"));
                numberDataEntryPanel.setUnitsLabelModel(new PropertyModel<String>(item.getModel(),
                        "phenoDataSetFieldDisplay.phenoDataSetField.unitType.name"));

                if (pf.getMinValue() != null && !pf.getMinValue().isEmpty()) {
                    IConverter<Double> doubleConverter = numberDataEntryPanel.getNumberConverter();
                    try {
                        Double minNumber = (Double) doubleConverter.convertToObject(pf.getMinValue(),
                                getLocale());
                        numberDataEntryPanel.addValidator(new MinimumValidator<Double>(minNumber));
                    } catch (ConversionException ce) {
                        // This should not occur because it means the data is corrupted on the backend database
                        getLog().error(
                                "Unexpected error: phenoDataSetField.maxValue is not in a valid number format");
                        this.error(
                                "An unexpected error occurred loading the field validators from database. Please contact your System Administrator.");
                        getParentContainer().setEnabled(false);
                    }
                }
                if (pf.getMaxValue() != null && !pf.getMaxValue().isEmpty()) {
                    IConverter<Double> doubleConverter = numberDataEntryPanel.getNumberConverter();
                    try {
                        Double maxNumber = (Double) doubleConverter.convertToObject(pf.getMaxValue(),
                                getLocale());
                        numberDataEntryPanel.addValidator(new MaximumValidator<Double>(maxNumber));
                    } catch (ConversionException ce) {
                        // This should not occur because it means the data is corrupted on the backend database
                        getLog().error(
                                "Unexpected error: phenoDataSetField.maxValue is not in a valid number format");
                        this.error(
                                "An unexpected error occurred loading the field validators from database. Please contact your System Administrator.");
                        getParentContainer().setEnabled(false);
                    }
                }
                if (requiredField != null && requiredField == true) {
                    numberDataEntryPanel.setRequired(true);
                }
                dataValueEntryPanel = numberDataEntryPanel;
            } else {
                // TODO: Unknown type should display an UnsupportedValueEntryPanel
                dataValueEntryPanel = new EmptyPanel("dataValueEntryPanel");
            }
        }
    }

    item.add(fieldLabelLbl);
    item.add(dataValueEntryPanel);
}

From source file:com.googlecode.wicket.jquery.ui.form.spinner.AjaxSpinner.java

License:Apache License

/**
 * Converts the supplied value using the type converter
 * // w ww .  ja v  a  2s .co  m
 * @param value
 */
public T convertValue(String value) {
    final IConverter<T> converter = this.getConverter(this.getType());

    try {
        return converter.convertToObject(value, this.getLocale());
    } catch (ConversionException e) {
        this.error(this.newValidationError(e));
    }

    return null;
}

From source file:com.googlecode.wicket.jquery.ui.kendo.datetime.DateTimePicker.java

License:Apache License

@Override
protected void convertInput() {
    final IConverter<Date> converter = this.getConverter(Date.class);

    String dateInput = this.datePicker.getInput();
    String timeInput = this.timePicker.getInput();

    try {//ww  w  .j  a  va2  s .com
        Date date = converter.convertToObject(this.formatInput(dateInput, timeInput), this.getLocale());
        this.setConvertedInput(date);
    } catch (ConversionException e) {
        ValidationError error = new ValidationError();
        error.addKey("DateTimePicker.ConversionError"); //wicket6
        error.setVariable("date", dateInput);
        error.setVariable("time", timeInput);

        this.error(error);
    }
}

From source file:com.googlecode.wicket.kendo.ui.form.datetime.AjaxDateTimePicker.java

License:Apache License

@Override
public void convertInput() {
    final IConverter<Date> converter = this.getConverter(Date.class);

    String dateInput = this.datePicker.getInput();
    String timeInput = this.timePicker.getInput();

    try {/*  w  w w. ja  va  2  s  . c om*/
        String value = this.formatInput(dateInput, timeInput);
        this.setConvertedInput(converter.convertToObject(value, this.getLocale()));
    } catch (ConversionException e) {
        if (LOG.isDebugEnabled()) {
            LOG.debug(e.getMessage(), e);
        }

        ValidationError error = new ValidationError();
        error.addKey("AjaxDateTimePicker.ConversionError"); // wicket6
        error.setVariable("date", dateInput);
        error.setVariable("time", timeInput);

        this.error(error);
    }
}

From source file:com.googlecode.wicket.kendo.ui.form.datetime.local.AjaxDateTimePicker.java

License:Apache License

@Override
public void convertInput() {
    final IConverter<LocalDateTime> converter = this.getConverter(LocalDateTime.class);

    String dateInput = this.datePicker.getInput();
    String timeInput = this.timePicker.getInput();

    try {// w w w.  j  av a 2 s.  c o  m
        String value = this.formatInput(dateInput, timeInput);
        this.setConvertedInput(converter.convertToObject(value, this.getLocale()));
    } catch (ConversionException e) {
        if (LOG.isDebugEnabled()) {
            LOG.debug(e.getMessage(), e);
        }

        ValidationError error = new ValidationError();
        error.addKey("AjaxDateTimePicker.ConversionError"); // wicket6
        error.setVariable("date", dateInput);
        error.setVariable("time", timeInput);

        this.error(error);
    }
}

From source file:com.googlecode.wicketwebbeans.model.BeanPropertyModel.java

License:Apache License

/**
 * {@inheritDoc}/*from   w w w  .  jav  a 2 s . c  o m*/
 * Only sets the object if it is different from what getObject() returns. 
 * 
 * @param object 
 * @see org.apache.wicket.model.AbstractPropertyModel#onSetObject(wicket.Component, java.lang.Object)
 */
@Override
public void setObject(T object) {
    attach();
    Object newValue = object;
    // This, unfortunately, comes in as a String in most cases, so convert it.
    if (newValue instanceof String) {
        final String string = (String) newValue;
        if (!Strings.isEmpty(string)) {
            // and there is a non-null property type for the component
            if (getObjectClass() != null) {
                // convert the String to the right type
                IConverter converter = component.getConverter(getObjectClass());
                if (converter != null) {
                    newValue = converter.convertToObject(string, null);
                }
            }
        }
    }

    // Below in parens is an equality expression that is inverted to say "not (equal)".
    if (!(getObjectCalled // If lastValueGot is valid.
            && lastValueGot == newValue // If they're the same object, or both null
            && (lastValueGot == null || lastValueGot.equals(newValue)))) {
        super.setObject(object);
    }

    getObjectCalled = false;
}

From source file:com.servoy.j2db.server.headlessclient.dataui.WebDataComboBox.java

License:Open Source License

@Override
public void updateModel() {
    Object input = getConvertedInput();
    if (input instanceof Date) {
        IConverter c = getConverter(Date.class);
        setModelObject(c.convertToObject(c.convertToString(input, getLocale()), getLocale()));
    } else {/*from w w  w .  j a  v  a 2 s  .com*/
        setModelObject(input);
    }
}

From source file:jp.go.nict.langrid.management.web.view.component.text.RequiredDateTextField.java

License:Open Source License

@Override
protected void convertInput() {
    IConverter converter = getConverter(getType());
    try {//from w  w w. j a  v  a  2 s . c  o  m
        converter.convertToObject(getInput(), getLocale());
    } catch (Exception e) {
        Map<String, String> map = new HashMap<String, String>();
        map.put("label", getInput());
        raisedErrorMessage = MessageManager.getMessage(invalidErrorMessage, map);
        error((IValidationError) new ValidationError().setMessage(raisedErrorMessage));
        return;
    }
    super.convertInput();
}

From source file:org.efaps.ui.wicket.components.values.NumberField.java

License:Apache License

@Override
public void convertInput() {
    this.converted = true;
    int i = 0;//from w w w . j  a v a 2  s .  c  om
    if (getUIField() instanceof UIFieldSetValue) {
        final UIFieldSet cellset = ((UIFieldSetValue) getUIField()).getCellSet();
        i = cellset.getIndex(getInputName());
    }
    final String[] value = getInputAsArray();
    try {
        if (value != null && value.length > 0 && value[i] != null) {
            IConverter<? extends Number> converter = LongConverter.INSTANCE;
            if (getUIField().getValue().getAttribute() != null) {
                final IAttributeType attrType = getUIField().getValue().getAttribute().getAttributeType()
                        .getDbAttrType();
                if (attrType instanceof LongType) {
                    converter = LongConverter.INSTANCE;
                } else if (attrType instanceof IntegerType) {
                    converter = IntegerConverter.INSTANCE;
                } else if (attrType instanceof RealType) {
                    converter = DoubleConverter.INSTANCE;
                } else if (attrType instanceof DecimalType) {
                    converter = new BigDecimalConverter();
                }
            } else if (getFieldConfig().getField().getUIProvider() != null) {
                final IUIProvider uiprovider = getFieldConfig().getField().getUIProvider();
                if (uiprovider instanceof DecimalUI) {
                    converter = new BigDecimalConverter();
                }
            }
            setConvertedInput(converter.convertToObject(value[i], Context.getThreadContext().getLocale()));
        }
    } catch (final ConversionException e) {
        error(newValidationError(e).getErrorMessage(new ErrorMessageResource()));
    } catch (final CacheReloadException e) {
        NumberField.LOG.error("Catched error on convertInput", e);
    } catch (final EFapsException e) {
        NumberField.LOG.error("Catched error on convertInput", e);
    }
}