/** * 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()); }
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(); }
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(); }
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; }
protected void encodeOverlays(WidgetBuilder wb, List<Overlay> overlays, String propertyName) throws IOException { StringBuilder sb = SharedStringBuilder.get(SB_DIAGRAM); if (overlays != null && !overlays.isEmpty()) { int overlaysSize = overlays.size(); wb.append(",").append(propertyName).append(":["); for (int j = 0; j < overlaysSize; j++) { Overlay overlay = overlays.get(j); sb.setLength(0); wb.append(overlay.toJS(sb)); if (j < (overlaysSize - 1)) { wb.append(","); } } wb.append("]"); } }
protected String buildOnclick(FacesContext context, SplitButton button) throws IOException { StringBuilder onclick = SharedStringBuilder.get(context, SB_BUILD_ONCLICK); if (button.getOnclick() != null) { onclick.append(button.getOnclick()).append(";"); } if (button.isAjax()) { onclick.append(buildAjaxRequest(context, button)); } else { UIForm form = ComponentTraversalUtils.closestForm(context, button); if (form == null) { throw new FacesException("SplitButton : \"" + button.getClientId(context) + "\" must be inside a form element"); } onclick.append(buildNonAjaxRequest(context, button, form, null, false)); } String onclickBehaviors = getEventBehaviors(context, button, "click", null); if (onclickBehaviors != null) { onclick.append(onclickBehaviors).append(";"); } return onclick.toString(); }
@Override public String getContainerClientId(FacesContext context) { if (isPrependId() || isRepeating()) { String clientId = super.getContainerClientId(context); int index = getIndex(); if (index == -1) { return clientId; } StringBuilder sb = SharedStringBuilder.get(getFacesContext(), SB_ID, clientId.length() + 4); return sb.append(clientId).append(UINamingContainer.getSeparatorChar(context)).append(index).toString(); } else { UIComponent parent = getParent(); while (parent != null) { if (parent instanceof NamingContainer) { return parent.getContainerClientId(context); } parent = parent.getParent(); } return null; } }
protected void encodeDefaults(WidgetBuilder wb, DiagramModel model) throws IOException { StringBuilder sb = SharedStringBuilder.get(SB_DIAGRAM); Connector defaultConnector = model.getDefaultConnector(); if (defaultConnector != null) { String paintStyle = defaultConnector.getPaintStyle(); String hoverPaintStyle = defaultConnector.getHoverPaintStyle(); wb.append(",defaultConnector:").append(defaultConnector.toJS(sb)); wb.append(",containment:").append("" + model.isContainment()); if (paintStyle != null) { wb.append(",paintStyle:").append(paintStyle); } if (hoverPaintStyle != null) { wb.append(",hoverPaintStyle:").append(hoverPaintStyle); } sb.setLength(0); } encodeOverlays(wb, model.getDefaultConnectionOverlays(), "connectionOverlays"); if (!model.isConnectionsDetachable()) { wb.append(",connectionsDetachable:false"); } int maxConnections = model.getMaxConnections(); if (maxConnections != 1) { wb.append(",maxConnections:").append(maxConnections); } }
for (int i = 0; i < connectionsSize; i++) { Connection connection = connections.get(i); StringBuilder sb = SharedStringBuilder.get(SB_DIAGRAM); Connector connector = connection.getConnector(); List<Overlay> overlays = connection.getOverlays();