Package org.apache.beehive.netui.databinding.datagrid.runtime.util

Source Code of org.apache.beehive.netui.databinding.datagrid.runtime.util.JspFunctions

/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* $Header:$
*/
package org.apache.beehive.netui.databinding.datagrid.runtime.util;

import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import javax.servlet.jsp.JspContext;

import org.apache.beehive.netui.databinding.datagrid.api.DataGridConfigFactory;
import org.apache.beehive.netui.databinding.datagrid.api.DataGridURLBuilder;
import org.apache.beehive.netui.databinding.datagrid.api.filter.Filter;
import org.apache.beehive.netui.databinding.datagrid.api.sort.SortModel;
import org.apache.beehive.netui.databinding.datagrid.api.sort.Sort;
import org.apache.beehive.netui.databinding.datagrid.api.sort.SortDirection;

/**
* <p>
* This class contains utility methods that are callable as JSP functions by page authors.  These are used
* to provide utility methods that can be accessed via JSP EL for invoking methods on various data grid
* state objects.
* </p>
* @netui:jspfunctions
*/
public final class JspFunctions {

    private JspFunctions() {}

    /**
     * Given a sort expression, check to see if the sort expression is sorted ascending in a data grid's
     * {@link SortModel}.
     * @param sortModel a grid's sort model
     * @param sortExpression the sort expression
     * @return return <code>true</code> if a {@link Sort} is found whose sort expression
     * matches the sort expression given here and whose direction is {@link SortDirection#ASCENDING}.
     * @netui:jspfunction name="isSortedAscending"
     * signature="boolean isSortedAscending(org.apache.beehive.netui.databinding.datagrid.api.sort.SortModel,java.lang.String)"
     */
    public static boolean isSortedAscending(SortModel sortModel, String sortExpression) {
        if(sortModel == null || sortExpression == null)
            return false;

        Sort sort = sortModel.lookupSort(sortExpression);
        if(sort != null && sort.getDirection() == SortDirection.ASCENDING)
            return true;
        else return false;
    }

    /**
     * Given a sort expression, check to see if the sort expression is sorted descending in a data grid's
     * {@link SortModel}.
     * @param sortModel a grid's sort model
     * @param sortExpression the sort expression
     * @return return <code>true</code> if a {@link Sort} is found whose sort expression
     * matches the sort expression given here and whose direction is {@link SortDirection#DESCENDING}.
     * @netui:jspfunction name="isSortedDescending"
     * signature="boolean isSortedDescending(org.apache.beehive.netui.databinding.datagrid.api.sort.SortModel,java.lang.String)"
     */
    public static boolean isSortedDescending(SortModel sortModel, String sortExpression) {
        if(sortModel == null || sortExpression == null)
            return false;

        Sort sort = sortModel.lookupSort(sortExpression);
        if(sort != null && sort.getDirection() == SortDirection.DESCENDING)
            return true;
        else return false;
    }

    /**
     * <p>
     * Utility method used to build a query parameter map which includes the list of parameters needed to change the
     * direction of a sort related to the given sort expression.  This method uses a {@link DataGridURLBuilder}
     * instance to call its {@link DataGridURLBuilder#buildSortQueryParamsMap(String)} method from JSP EL.
     * </p>
     * @param urlBuilder the data grid URL builder associated with a
     * {@link org.apache.beehive.netui.databinding.datagrid.api.DataGridState} object that is used to
     * build lists of query parameters
     * @param sortExpression the sort expression whose direction to change
     * @return a {@link Map} of key / value pairs for query parameters
     * @netui:jspfunction name="buildQueryParamsMapForSortExpression"
     * signature="java.util.Map buildQueryParamsMapForSortExpression(org.apache.beehive.netui.databinding.datagrid.api.DataGridURLBuilder,java.lang.String)"
     */
    public static Map buildQueryParamsMapForSortExpression(DataGridURLBuilder urlBuilder, String sortExpression) {
        if(urlBuilder == null || sortExpression == null)
            return null;

        return urlBuilder.buildSortQueryParamsMap(sortExpression);
    }
}
TOP

Related Classes of org.apache.beehive.netui.databinding.datagrid.runtime.util.JspFunctions

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.