/** * Get a shared {@link StringBuilder} instance. * This is required as e.g. 100 e.g. {@link org.primefaces.expression.SearchExpressionFacade#resolveClientId} calls would create * 300 {@link StringBuilder} instances! * * @param context The {@link FacesContext} * @param key The key for the {@link FacesContext} attributes. * @return The shared {@link StringBuilder} instance */ public static StringBuilder get(FacesContext context, String key) { return get(context, key, 16); }
/** * Get a shared {@link StringBuilder} instance. * This is required as e.g. 100 e.g. {@link org.primefaces.expression.SearchExpressionFacade#resolveClientId} calls would create * 300 {@link StringBuilder} instances! * * @param key The key for the {@link FacesContext} attributes. * @return The shared {@link StringBuilder} instance */ public static StringBuilder get(String key) { return get(FacesContext.getCurrentInstance(), key); }
/** * Get a shared {@link StringBuilder} instance. * This is required as e.g. 100 e.g. {@link org.primefaces.expression.SearchExpressionFacade#resolveClientId} calls would create * 300 {@link StringBuilder} instances! * * @param key The key for the {@link FacesContext} attributes. * @param initialSize The initial size for the {@link StringBuilder}. * @return The shared {@link StringBuilder} instance */ public static StringBuilder get(String key, int initialSize) { return get(FacesContext.getCurrentInstance(), key, initialSize); } }
public String getSelectedRowKeysAsString() { StringBuilder builder = SharedStringBuilder.get(SB_GET_SELECTED_ROW_KEYS_AS_STRING); for (Iterator<Object> iter = getSelectedRowKeys().iterator(); iter.hasNext(); ) { builder.append(iter.next()); if (iter.hasNext()) { builder.append(","); } } return builder.toString(); }
protected String buildEvent(FacesContext context, SelectOneRadio radio, RadioButton button, String domEvent, String behaviorEvent, String behaviorEventAlias) { String radioEvent = buildDomEvent(context, radio, domEvent, behaviorEvent, behaviorEventAlias, null); String buttonEvent = buildDomEvent(context, button, domEvent, behaviorEvent, behaviorEventAlias, null); StringBuilder eventBuilder = SharedStringBuilder.get(context, SB_BUILD_EVENT); if (radioEvent != null) { eventBuilder.append(radioEvent); } if (buttonEvent != null) { eventBuilder.append(buttonEvent); } return eventBuilder.toString(); }
private void renderValidatorIds(FacesContext context, List<String> validatorIds) throws IOException { if (validatorIds == null || validatorIds.isEmpty()) { return; } ResponseWriter writer = context.getResponseWriter(); StringBuilder builder = SharedStringBuilder.get(context, SB_RENDER_VALIDATOR_IDS); for (int i = 0; i < validatorIds.size(); i++) { if (i != 0) { builder.append(','); } String validatorId = validatorIds.get(i); builder.append(validatorId); } writer.writeAttribute(HTML.VALIDATION_METADATA.VALIDATOR_IDS, builder.toString(), null); }
protected String buildEvent(FacesContext context, SelectManyCheckbox selectManyCheckbox, Checkbox checkbox, String domEvent, String behaviorEvent, String behaviorEventAlias) { String manyCheckboxEvent = buildDomEvent(context, selectManyCheckbox, domEvent, behaviorEvent, behaviorEventAlias, null); String checkboxEvent = buildDomEvent(context, checkbox, domEvent, behaviorEvent, behaviorEventAlias, null); StringBuilder eventBuilder = SharedStringBuilder.get(context, SB_BUILD_EVENT); if (manyCheckboxEvent != null) { eventBuilder.append(manyCheckboxEvent); } if (checkboxEvent != null) { eventBuilder.append(checkboxEvent); } return eventBuilder.toString(); }
StringBuilder sb = SharedStringBuilder.get(SB_ESCAPE);
@Override public String getContainerClientId(FacesContext context) { String clientId = super.getContainerClientId(context); String _rowKey = getRowKey(); if (_rowKey == null) { return clientId; } else { StringBuilder builder = SharedStringBuilder.get(context, SB_GET_CONTAINER_CLIENT_ID); return builder.append(clientId).append(UINamingContainer.getSeparatorChar(context)).append(rowKey).toString(); } }
StringBuilder sb = SharedStringBuilder.get(SB_ESCAPE, string.length()); for (int i = 0, length = string.length(); i < length; i++) { char c = string.charAt(i);
@Override public String getContainerClientId(FacesContext context) { //clientId is without rowIndex String componentClientId = getClientId(context); int rowIndex = getRowIndex(); if (rowIndex == -1) { return componentClientId; } StringBuilder sb = SharedStringBuilder.get(getFacesContext(), SB_ID, componentClientId.length() + 4); String containerClientId = sb.append(componentClientId).append(UINamingContainer.getSeparatorChar(context)).append(rowIndex).toString(); return containerClientId; }
/** * Translates the client side mask to to a {@link Pattern} base on: * https://github.com/digitalBush/jquery.maskedinput * a - Represents an alpha character (A-Z,a-z) * 9 - Represents a numeric character (0-9) * * - Represents an alphanumeric character (A-Z,a-z,0-9) * ? - Makes the following input optional * * @param context The {@link FacesContext} * @param inputMask The component * @return The generated {@link Pattern} */ protected Pattern translateMaskIntoRegex(FacesContext context, InputMask inputMask) { String mask = inputMask.getMask(); StringBuilder regex = SharedStringBuilder.get(context, SB_PATTERN); boolean optionalFound = false; for (char c : mask.toCharArray()) { if (c == '?') { optionalFound = true; } else { regex.append(translateMaskCharIntoRegex(c, optionalFound)); } } return Pattern.compile(regex.toString()); }
StringBuilder sb = SharedStringBuilder.get(SB_ESCAPE);
protected String buildOnclick(FacesContext context, Button button) { String userOnclick = button.getOnclick(); StringBuilder onclick = SharedStringBuilder.get(context, SB_BUILD_ONCLICK); String targetURL = getTargetURL(context, button); if (userOnclick != null) { onclick.append(userOnclick).append(";"); } String onclickBehaviors = getEventBehaviors(context, button, "click", null); if (onclickBehaviors != null) { onclick.append(onclickBehaviors).append(";"); } if (targetURL != null) { onclick.append("window.open('").append(EscapeUtils.forJavaScript(targetURL)).append("','"); onclick.append(EscapeUtils.forJavaScript(button.getTarget())).append("')"); } return onclick.toString(); }
StringBuilder buffer = SharedStringBuilder.get(context, SHARED_SPLIT_BUFFER_KEY);
protected String getEventBehaviors(FacesContext context, ClientBehaviorHolder cbh, String event, List<ClientBehaviorContext.Parameter> parameters) { List<ClientBehavior> behaviors = cbh.getClientBehaviors().get(event); StringBuilder sb = SharedStringBuilder.get(context, SB_GET_EVENT_BEHAVIORS); if (behaviors != null && !behaviors.isEmpty()) { UIComponent component = (UIComponent) cbh; String clientId = component.getClientId(context); List<ClientBehaviorContext.Parameter> params; if (parameters != null && !parameters.isEmpty()) { params = parameters; } else { params = Collections.emptyList(); } for (int i = 0; i < behaviors.size(); i++) { ClientBehavior behavior = behaviors.get(i); ClientBehaviorContext cbc = ClientBehaviorContext.createClientBehaviorContext( context, component, event, clientId, params); String script = behavior.getScript(cbc); if (script != null) { sb.append(script).append(";"); } } } return sb.length() == 0 ? null : sb.toString(); }
protected String buildNonAjaxRequest(FacesContext context, UIComponent component, UIComponent form, String decodeParam, Map<String, List<String>> parameters, boolean submit) { StringBuilder request = SharedStringBuilder.get(context, SB_BUILD_NON_AJAX_REQUEST); String formId = form.getClientId(context); Map<String, Object> params = new HashMap<>();
protected String buildNonAjaxRequest(FacesContext context, UIComponent component, UIComponent form, String decodeParam, Map<String, List<String>> parameters, boolean submit) { StringBuilder request = SharedStringBuilder.get(context, SB_BUILD_NON_AJAX_REQUEST); String formId = form.getClientId(context); Map<String, Object> params = new HashMap<>();
protected String buildNonAjaxRequest(FacesContext context, UIComponent component, UIComponent form, String decodeParam, boolean submit) { StringBuilder request = SharedStringBuilder.get(context, SB_BUILD_NON_AJAX_REQUEST); String formId = form.getClientId(context); Map<String, Object> params = new HashMap<>();
public String getSelectedRowKeysAsString() { String value = null; Object selection = getSelection(); String selectionMode = getSelectionMode(); if (selection != null) { if (selectionMode.equals("single")) { TreeNode node = (TreeNode) selection; value = node.getRowKey(); } else { TreeNode[] nodes = (TreeNode[]) selection; StringBuilder builder = SharedStringBuilder.get(SB_GET_SELECTED_ROW_KEYS_AS_STRING); for (int i = 0; i < nodes.length; i++) { builder.append(nodes[i].getRowKey()); if (i != (nodes.length - 1)) { builder.append(","); } } value = builder.toString(); } } return value; }