FieldLabel component renders itself. Here's the relevant part of
delegate prefix and/or suffix inside the label tag. And I'm sure you
> Matt Raible wrote:
>
>> Andreas Andreou wrote:
>>
>>> try component.getBinding("class")
>>> if that's not null, do a getObject() on it
>>
>>
>>
>> Thanks. This works, but it also prints out duplicate "class"
>> attributes.
>>
>> class="text large error" class="text large"
>>
>>
>> It'd be nice to have something like:
>>
>> writer.appendAttribute("class", "values to append");
>>
>> Another question - it seems my full <label> and <input> is getting
>> wrapped with
>>
>> <font color="red">
>>
>> Is there anyway to get rid of that? It's problematic b/c the closing
>> </font> isn't getting rendered until right before </form>.
>
>
> Fixed this by using:
>
> public void writeLabelPrefix(IFormComponent component,
> IMarkupWriter writer, IRequestCycle
> cycle) {
> // does nothing put prevent <font color="red"> from getting
> written
> }
>
>>
>> Thanks,
>>
>> Matt
>>
>>>
>>> Matt Raible wrote:
>>>
>>>> Hmmm, I'm guessing the answers to my questions below are "no, this
>>>> isn't possible." ;-)
>>>>
>>>> Here's another question - is it possible in my custom Validator to
>>>> get the existing CSS classes on a component? For example, I
>>>> currently have:
>>>>
>>>> public void writeLabelAttributes(IMarkupWriter writer,
>>>> IRequestCycle cycle, IFormComponent component) {
>>>> if (isInError(component)) {
>>>> writer.attribute("class", "error");
>>>> }
>>>> }
>>>>
>>>> public void writeAttributes(IMarkupWriter writer, IRequestCycle
>>>> cycle,
>>>> IFormComponent component, IValidator
>>>> validator) {
>>>> if (isInError()) {
>>>> writer.attribute("class", "error");
>>>> }
>>>> }
>>>>
>>>> But I'd prefer to have something like this:
>>>>
>>>> public void writeLabelAttributes(IMarkupWriter writer,
>>>> IRequestCycle cycle, IFormComponent component) {
>>>> if (isInError(component)) {
>>>> writer.attribute("class", "error " +
>>>> component.getAttribute("class"));
>>>> }
>>>> }
>>>>
>>>> public void writeAttributes(IMarkupWriter writer, IRequestCycle
>>>> cycle,
>>>> IFormComponent component, IValidator
>>>> validator) {
>>>> if (isInError()) {
>>>> writer.attribute("class", "error " +
>>>> component.getAttribute("class"));
>>>> }
>>>> }
>>>>
>>>> In other words, is there a method on component that allows me to
>>>> get the current CSS classes?
>>>>
>>>> Matt
>>>>
>>>> Matt Raible wrote:
>>>>
>>>>> I have two different "Label" components I'm trying to create.
>>>>> Issue #1
>>>>> ---------------------------
>>>>> The first is a simple component (just a Label.jwc and Label.html
>>>>> file in WEB-INF) that writes a <label>. I'd like to include the
>>>>> option to write a "required" indicator. However, I'm having a
>>>>> difficult time retrieving a parameter's value. Here's what I have
>>>>> so far:
>>>>>
>>>>> Label.jwc
>>>>> <component-specification allow-informal-parameters="yes">
>>>>> <parameter name="key" required="yes"/>
>>>>> <parameter name="class" required="no"/>
>>>>> <component id="label" type="Any"
>>>>> inherit-informal-parameters="yes"/>
>>>>> </component-specification>
>>>>>
>>>>> Label.html
>>>>> <label jwcid="label"><span jwcid="@Insert"
>>>>> value="ognl:getMessages().getMessage(key)"/> <div jwcid="@If"
>>>>> condition="ognl:class == 'required'"><span class="req">
>>>>> *</span></label>
>>>>>
>>>>> I'm pretty sure "class" won't work as a parameter name b/c I've
>>>>> seen a stacktrace using this already. Regardless, let's pretend
>>>>> it does (I've tried using other names). Here's the desired usage:
>>>>>
>>>>> <label class="required desc" jwcid="@Label" for="phoneNumber"
>>>>> key="user.phoneNumber">Phone Number</label> produces:
>>>>>
>>>>> <label class="desc" jwcid="@Label" for="phoneNumber">Phone
>>>>> Number<span class="req"> *</label>
>>>>>
>>>>> I'm fine with the result having class="required desc" - I
>>>>> basically just need some indicator to show a field is required
>>>>> when I'm not wiring up it's input field as a component.
>>>>>
>>>>> Issue #2
>>>>> ---------------------------
>>>>> I'm overriding ValidationDelegate in order to add required field
>>>>> indicators. I used to be pre-pending an asterisk to the beginning
>>>>> of the field, and I had that working. Now I want to add <span
>>>>> class="req"> to the end of the <label> before the </label> shows
>>>>> up. I'm using @FieldLabel and everything *almost* works. I've
>>>>> eliminating error styling in the class below so it's easier to read.
>>>>>
>>>>> public class Validator extends ValidationDelegate {
>>>>> public void writeLabelSuffix(IFormComponent component,
>>>>> IMarkupWriter writer,
>>>>> IRequestCycle cycle) {
>>>>> if (component.isRequired()) {
>>>>> writer.begin("span");
>>>>> writer.attribute("class", "req");
>>>>> writer.printRaw(" *");
>>>>> writer.end();
>>>>> }
>>>>> }
>>>>>
>>>>> The code above results in <label>blah blah</label><span
>>>>> class="req"> *</span>, when I'd rather have the <span> w/in the
>>>>> <label>. I tried overriding writeLabelAttributes(), but that
>>>>> doesn't seem to allow me to create a new tag and write it out w/in
>>>>> the label. Am I missing something here? Has anyone done
>>>>> something like this - or knows how to add a <span> withing an
>>>>> @FieldLabel?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Matt
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail:
users-unsubscribe@...
>>>> For additional commands, e-mail:
users-help@...
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail:
users-unsubscribe@...
>>> For additional commands, e-mail:
users-help@...
>>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:
users-unsubscribe@...
>> For additional commands, e-mail:
users-help@...
>>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
users-unsubscribe@...
> For additional commands, e-mail:
users-help@...
>
>