Hi Matthias,

Matthias Kahlau wrote:
> Hi!
> 
> 
> My HtmlSelectManyCheckbox with "spread" layout and a styleClass set is
> rendered as follows:
> 
> <table border="0">
> <tbody>
> <tr><td><input type="checkbox" name="Form:Frage_4" id="Form:Frage_4"
> value="1" class="surveyInput" />&#160;die zweite (Text)&nbsp;</td></tr>
> <tr><td><input type="checkbox" name="Form:Frage_4" id="Form:Frage_4"
> value="2" class="surveyInput" />&#160;die dritte (datum)&nbsp;</td></tr>
> </tbody>
> </table>
> 
> This does not comply to the "Standard Html RenderKit" specification of JSF
> 1.1 for the HtmlSelectManyCheckbox renderer:

You're right, layout="spread" is out of spec ;-).

> 
> "Render a "table" element. If the "styleClass" is specified, render the
> value of the "styleClass" attribute as the value of the "class" attribute on
> the "table" element. If the "style", "border" attributes are specified, pass
> them thru. If the "layout" attribute is specified, and its value is
> "pageDirection", render the children elements vertically, otherwise
> horizontally, in the table. If any of the children are an instance of
> SelectItemGroup, render them as a nested table. Each of the children are
> ultimately rendererd as follows. Render a "label" element. Inside of the
> "label", render an "input" element of "type" "checkbox" for each child
> component. ..."
> 
> The class "surveyInput" (set to the HtmlSelectManyCheckbox component) is
> rendered only as attribute in the <input> elements themselves, but not for
> the table. Furthermore, the Tomahawk HtmlSelectManyCheckbox renderer doesn't
> render a <label> element around each <input> element. Why did you choose a
> different markup?
> 
> 
> In contrast, the Tomahawk HtmlSelectOneRadio component's markup ("spread"
> layout) does contain <label> elements as required, but shows the same
> behaviour regarding the styleClass attribute of the component:
> 
> <table border="0"><tbody>
> <tr><td><label><input type="radio" name="Form:Frage_2" checked="checked"
> value="1" class="surveyInput" />&#160;die zweite
> (Texteingabe)</label>&nbsp;</td></tr>
> <tr><td><label><input type="radio" name="Form:Frage_2" value="2"
> class="surveyInput" />&#160;die dritte (nur
> Ganzzahlen)</label>&nbsp;</td></tr>
> </tbody></table>
> 
> As Hans Bergsten describes in his JSF book, the <label> elements should also
> specify their for attributes, which isn't the case for the code snippets
> shown (using MyFaces Nightly 20051130).
> 
> 
> The <label> element is my lifesaver in changing the format of the radio
> button labels, and I really need them for the checkboxes, too. I don't know
> how to change the format of the checkbox labels, because I can't change the
> <table>, <tbody>, <tr> or <td> elements per CSS globally, and applying a
> style to the HtmlPanelGrid containing the checkbox controls is not
> sufficient in my case because there's a global definition for the <td>
> element which a must not change ...!
> 
> Do you have an idea of how I could change the checkbox label format?

not sure, but maybe you can use the descendant modifier of css:
http://www.w3.org/TR/REC-CSS2/selector.html#descendant-selectors

try:
----------- [css] ---------------------
#panelGridId td {
  // css for label tds here
}
----------- [/css] ---------------------


Or even better:
Create a patch for this to accept a 'labelClass' attribute and rendering
the label tag for checkboxes also.

Regards,
  Volker



> 
> 
> 
> Regards,
> 
> Matthias
> 

-- 
Don't answer to From: address!
Mail to this account are droped if not recieved via mailinglist.
To contact me direct create the mail address by
concatenating my forename to my senders domain.

Reply via email to