/** * @param a * @param valueButton * @param valueListener if a null or empty -> the listener is not created * @param isValueBinding a true if valueButton and / or valueListener are valueBinding * @param methodForButton * @param methodForListener if a null or empty -> the listener is not created * @param styleClassForLi * @return HtmlTag : LI including (or not) a command Button with his Listener. */ @SuppressWarnings("unchecked") private HtmlTag makeLiGroup( final Application a, final String valueButton, final String valueListener, final boolean isValueBinding, final String methodForButton, final String methodForListener, final String styleClassForLi) { HtmlTag li = (HtmlTag) a.createComponent(HtmlTag.COMPONENT_TYPE); li.setValue(HTML.LI_ELEM); if (StringUtils.hasText(styleClassForLi)) { li.setStyleClass(styleClassForLi); } HtmlCommandButton command = (HtmlCommandButton) a.createComponent(HtmlCommandButton.COMPONENT_TYPE); command.setImmediate(true); command.setParent(li); MethodBinding m = a.createMethodBinding( TagUtils.makeELExpression(getPaginatorELExpression() + "." + methodForButton), null); command.setAction(m); if (isValueBinding) { command.setValueBinding( JSFAttr.VALUE_ATTR, a.createValueBinding(TagUtils.makeELExpression(valueButton))); } else { command.setValue(valueButton); } if (StringUtils.hasText(methodForListener) && StringUtils.hasText(valueListener)) { UpdateActionListener listener = new UpdateActionListener(); if (isValueBinding) { listener.setValueBinding( a.createValueBinding( TagUtils.makeELExpression(getPaginatorELExpression() + "." + valueListener))); } else { listener.setValue(valueListener); } listener.setPropertyBinding( a.createValueBinding( TagUtils.makeELExpression(getPaginatorELExpression() + "." + methodForListener))); command.addActionListener(listener); } li.getChildren().add(command); return li; }
/** * @param a * @return HtmlTag : LI tag containing the text separator (3 small points). */ @SuppressWarnings("unchecked") private HtmlTag makeLiText(final Application a) { HtmlTag liText = (HtmlTag) a.createComponent(HtmlTag.COMPONENT_TYPE); liText.setValue(HTML.LI_ELEM); liText.setStyle("border:none;background-color:transparent;"); HtmlOutputText text = (HtmlOutputText) a.createComponent(HtmlOutputText.COMPONENT_TYPE); text.setValueBinding( JSFAttr.VALUE_ATTR, a.createValueBinding( TagUtils.makeELExpression(getStringsVar() + "['" + TEXT_SEPARATOR_I18N_KEY + "']"))); text.setParent(liText); text.setStyleClass(TagsConfigurator.getInstance().getTextStyleClass()); liText.getChildren().add(text); return liText; }