All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.devocative.wickomp.form.range.WBaseRangeInput Maven / Gradle / Ivy

There is a newer version: 2.11
Show newest version
package org.devocative.wickomp.form.range;

import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.devocative.adroit.vo.IRange;
import org.devocative.adroit.vo.RangeVO;
import org.devocative.wickomp.WLabeledFormInputPanel;

import java.io.Serializable;

public abstract class WBaseRangeInput extends WLabeledFormInputPanel> {
	private static final long serialVersionUID = 8954208501398056478L;

	protected FormComponent lower, upper;

	// ------------------------------

	protected WBaseRangeInput(String id, IModel> model) {
		super(id, model);
	}

	// ------------------------------

	protected abstract FormComponent createFormComponent(String id, IModel model);

	// ------------------------------

	@Override
	protected void onInitialize() {
		super.onInitialize();

		lower = createFormComponent("lower", new Model());
		upper = createFormComponent("upper", new Model());

		add(lower);
		add(upper);
	}

	@Override
	protected void onBeforeRender() {
		IRange rangeVO = getModelObject();

		if (rangeVO != null) {
			lower.setModelObject(rangeVO.getLower());
			upper.setModelObject(rangeVO.getUpper());
		} else {
			lower.setModelObject(null);
			upper.setModelObject(null);
		}

		super.onBeforeRender();
	}

	protected IRange createRangeObject() {
		return new RangeVO<>();
	}

	// ------------------------------

	@Override
	public void convertInput() {
		T lowerValue = lower.getConvertedInput();
		T upperValue = upper.getConvertedInput();

		if (lowerValue != null || upperValue != null) {
			IRange rangeObject = createRangeObject();
			rangeObject
				.setLower(lowerValue)
				.setUpper(upperValue);
			setConvertedInput(rangeObject);
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy