Missed things re: custom pvs

This commit is contained in:
2023-02-23 13:19:13 -06:00
parent 8440536d35
commit ea795ed701
6 changed files with 166 additions and 12 deletions

View File

@ -22,6 +22,7 @@
package com.kingsrook.qqq.backend.core.actions.dashboard.widgets;
import java.io.Serializable;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Instant;
@ -270,6 +271,16 @@ public class NoCodeWidgetVelocityUtils
/*******************************************************************************
**
*******************************************************************************/
public String format(String displayFormat, Serializable value)
{
return (QValueFormatter.formatValue(displayFormat, value));
}
/*******************************************************************************
**
*******************************************************************************/

View File

@ -36,18 +36,20 @@ import com.kingsrook.qqq.backend.core.utils.ValueUtils;
/*******************************************************************************
** Interface to be implemented by user-defined code that serves as the backing
** for a CUSTOM type possibleValueSource
**
** Type parameter `T` is the id-type of the possible value.
*******************************************************************************/
public interface QCustomPossibleValueProvider
public interface QCustomPossibleValueProvider<T extends Serializable>
{
/*******************************************************************************
**
*******************************************************************************/
QPossibleValue<?> getPossibleValue(Serializable idValue);
QPossibleValue<T> getPossibleValue(Serializable idValue);
/*******************************************************************************
**
*******************************************************************************/
List<QPossibleValue<?>> search(SearchPossibleValueSourceInput input) throws QException;
List<QPossibleValue<T>> search(SearchPossibleValueSourceInput input) throws QException;
/*******************************************************************************
@ -55,7 +57,7 @@ public interface QCustomPossibleValueProvider
** the type of the ids in the enum (e.g., strings from a frontend, integers
** in an enum). So, this method looks maps a list of input ids to the requested type.
*******************************************************************************/
default <T extends Serializable> List<T> convertInputIdsToIdType(Class<T> type, List<Serializable> inputIdList)
default List<T> convertInputIdsToIdType(Class<T> type, List<Serializable> inputIdList)
{
List<T> rs = new ArrayList<>();
if(CollectionUtils.nullSafeIsEmpty(inputIdList))
@ -75,10 +77,8 @@ public interface QCustomPossibleValueProvider
/*******************************************************************************
**
*******************************************************************************/
default <T extends Serializable> boolean doesPossibleValueMatchSearchInput(Class<T> idType, QPossibleValue<T> possibleValue, SearchPossibleValueSourceInput input)
default boolean doesPossibleValueMatchSearchInput(List<T> idsInType, QPossibleValue<T> possibleValue, SearchPossibleValueSourceInput input)
{
List<T> idsInType = convertInputIdsToIdType(idType, input.getIdList());
boolean match = false;
if(input.getIdList() != null)
{

View File

@ -25,6 +25,7 @@ package com.kingsrook.qqq.backend.core.model.metadata.possiblevalues;
/*******************************************************************************
** An actual possible value - an id and label.
**
** Type parameter `T` is the type of the id (often Integer, maybe String)
*******************************************************************************/
public class QPossibleValue<T>
{