> Your problem getting the span tag where you want it is due to how
> the FieldLabel component renders itself. Here's the relevant part
> of FieldLabel.renderComponent():
>
> delegate.writeLabelPrefix(field, writer, cycle);
> writer.begin("label");
> if (id != null)
> writer.attribute("for", id);
> delegate.writeLabelAttributes(writer, cycle, field);
> renderInformalParameters(writer, cycle);
> writer.print(displayName, getRaw());
> writer.end();
> delegate.writeLabelSuffix(field, writer, cycle);
>
>
> You could argue that writeLabelPrefix() and writeLabelSuffix()
> should both be inside the <label> tag (makes sense to me), but the
> current code is symmetrical and not necessarily "wrong." Your best
> bet is probably to override the FieldLabel component with your own
> version that renders the delegate prefix and/or suffix inside the
> label tag. And I'm sure you won't hesitate to file a bug report if
> you feel strongly about it ;)
>
> -Ryan
>
>
> Matt Raible wrote:
>
>> 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@...
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
users-unsubscribe@...
> For additional commands, e-mail:
users-help@...
>