1 package com.indexdata.mkjsf.utils;
\r
3 import java.util.ArrayList;
\r
4 import java.util.List;
\r
6 import javax.enterprise.context.ApplicationScoped;
\r
7 import javax.inject.Named;
\r
9 import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;
\r
13 public class UiUtils {
\r
16 * Concatenates a list of strings
\r
20 public static String concat(String... strings) {
\r
21 StringBuilder concatenated = new StringBuilder("");
\r
22 for (String string : strings) {
\r
23 concatenated.append(string);
\r
25 return concatenated.toString();
\r
28 public static String concatMaxLength(int maxTotalLength, String... strings) {
\r
29 String concatenated = concat(strings);
\r
30 return maxLength(concatenated,maxTotalLength);
\r
33 public static String maxLength (String string, int maxLength) {
\r
34 if (string == null || string.length()<=maxLength) {
\r
37 return string.substring(0,maxLength);
\r
41 public static String maxLengthMoreLabel (String string, int maxLength, String moreLabel) {
\r
42 if (string == null || string.length()<=maxLength) {
\r
45 String maxString = maxLength(string,maxLength);
\r
46 if (string.length()>maxString.length()) {
\r
47 maxString += moreLabel;
\r
54 * Encloses a string with quotation marks
\r
58 public static String quotes(String string) {
\r
59 return "\"" + string + "\"";
\r
62 public static List<ResponseDataObject> getMaxNumElements(ResponseDataObject container, String elementName, int maxElements) {
\r
63 if (container.getElements(elementName)!=null) {
\r
64 int elementCount = container.getElements(elementName).size();
\r
65 if (elementCount>0) {
\r
66 return ((ArrayList<ResponseDataObject>) container.getElements(elementName)).subList(0, Math.min(maxElements,elementCount));
\r
69 return container.getElements(elementName);
\r
72 public List<ResponseDataObject> getMaxElements(ResponseDataObject container, String elementName, int maxElements, int maxTotalValueLength, boolean hardLimit) {
\r
73 List<ResponseDataObject> maxNumList = getMaxNumElements(container,elementName,maxElements);
\r
74 if (maxNumList!=null) {
\r
75 int elementCount = maxNumList.size();
\r
76 if (elementCount>0) {
\r
78 int totalLength = 0;
\r
79 for (ResponseDataObject element : maxNumList) {
\r
80 totalLength += element.getValue().length();
\r
81 if (totalLength>maxTotalValueLength) {
\r
90 return maxNumList.subList(0, i);
\r