Package org.openfaces.renderkit.filter.param

Source Code of org.openfaces.renderkit.filter.param.TwoDateChooserParametersEditor

/*
* OpenFaces - JSF Component Library 2.0
* Copyright (C) 2007-2012, TeamDev Ltd.
* licensing@openfaces.org
* Unless agreed in writing the contents of this file are subject to
* the GNU Lesser General Public License Version 2.1 (the "LGPL" License).
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* Please visit http://openfaces.org/licensing/ for more details.
*/

package org.openfaces.renderkit.filter.param;

import org.openfaces.component.filter.CompositeFilter;
import org.openfaces.component.filter.FilterCondition;
import org.openfaces.component.filter.FilterProperty;
import org.openfaces.component.input.DateChooser;
import org.openfaces.renderkit.filter.FilterRow;
import org.openfaces.util.Components;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import java.io.Serializable;

public class TwoDateChooserParametersEditor extends ParametersEditor implements Serializable {

    private static final String DATE_CHOOSER_BEFORE_ID_SUFFIX = "dateChooserBefore";
    private static final String DATE_CHOOSER_AFTER_ID_SUFFIX = "dateChooserAfter";

    public TwoDateChooserParametersEditor() {
    }

    public TwoDateChooserParametersEditor(FilterProperty filterProperty, FilterCondition operation) {
        super(filterProperty, operation);
    }

    private DateChooser getDateChooserBefore(UIComponent container) {
        return (DateChooser) Components.getChildBySuffix(container, DATE_CHOOSER_BEFORE_ID_SUFFIX);
    }

    private DateChooser createDateChooserBefore(FacesContext context, UIComponent container) {
        clearContainer(container);
        DateChooser dateChooser = (DateChooser) Components.createChildComponent(context, container, DateChooser.COMPONENT_TYPE, DATE_CHOOSER_BEFORE_ID_SUFFIX);
        dateChooser.setStyleClass(FilterRow.DEFAULT_PARAMETER_CLASS);
        dateChooser.setStyle("width: 90px !important;");
        return dateChooser;
    }

    private void initDateChooserBefore(DateChooser dateChooser) {
        dateChooser.setValue(criterion.getArg1());
    }

    private DateChooser getDateChooserAfter(UIComponent container) {
        return (DateChooser) Components.getChildBySuffix(container, DATE_CHOOSER_AFTER_ID_SUFFIX);
    }

    private DateChooser createDateChooserAfter(FacesContext context, UIComponent container) {
        DateChooser dateChooser = (DateChooser) Components.createChildComponent(context, container, DateChooser.COMPONENT_TYPE, DATE_CHOOSER_AFTER_ID_SUFFIX);
        dateChooser.setStyleClass(FilterRow.DEFAULT_PARAMETER_CLASS);
        dateChooser.setStyle("width: 90px !important;");
        return dateChooser;
    }

    private void initDateChooserAfter(DateChooser dateChooser) {
        dateChooser.setValue(criterion.getArg2());
    }

    public void prepare(FacesContext context, CompositeFilter compositeFilter, FilterRow filterRow, UIComponent container) {
        super.prepare(context, compositeFilter, filterRow, container);
        DateChooser dateChooserBefore = getDateChooserBefore(container);
        if (dateChooserBefore == null) {
            dateChooserBefore = createDateChooserBefore(context, container);
        }
        initDateChooserBefore(dateChooserBefore);

        DateChooser dateChooserAfter = getDateChooserAfter(container);
        if (dateChooserAfter == null) {
            dateChooserAfter = createDateChooserAfter(context, container);
        }
        initDateChooserAfter(dateChooserAfter);
    }

    public void update(FacesContext context, CompositeFilter compositeFilter, FilterRow filterRow, UIComponent container) {
        DateChooser dateChooserBefore = getDateChooserBefore(container);
        if (dateChooserBefore == null) {
            return;
        }
        criterion.setArg1(dateChooserBefore.getValue());
        DateChooser dateChooserAfter = getDateChooserAfter(container);
        if (dateChooserAfter == null) {
            return;
        }
        criterion.setArg2(dateChooserAfter.getValue());
        criterion.getParameters().put("timeZone", filterProperty.getTimeZone());
    }

}
TOP

Related Classes of org.openfaces.renderkit.filter.param.TwoDateChooserParametersEditor

TOP
Copyright © 2018 www.massapi.com. 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.