On Tue, Apr 8, 2008 at 11:43 PM, Richard M <[EMAIL PROTECTED]> wrote: > > Matt, thank you as always. By "... simply reverted to HTML manually for > layout." do you mean you end up using table to position fields and controls?
No, I still use CSS to do layouts if I can. I mean that I don't use the css_xhtml them that adds all the divs, labels and such around fields. Matt > > And yes, I took a look at Uni-Form - it looks pretty neat and could probably > be integrated with Struts2's simple theme pretty easily. I also took a look > at YUI, based on one of your earlier posts. That is also neat, but a bit > overwhelming given you would have to re-develop the frameworks. > > > > > mraible wrote: > > > > I don't think anyone has tried to do what you're doing. If your > > solution seems to work, I say run with it. I sometimes get frustrated > > by Struts 2's themes because they add so many extra DIVs and such. On > > a lot of projects, I'm simply reverted to the simple theme and added > > HTML manually for layout. I've also thought of moving to Uni-Form > > (http://dnevnikeklektika.com/uni-form/). > > > > Matt > > > > On Tue, Apr 8, 2008 at 10:59 PM, Richard M <[EMAIL PROTECTED]> wrote: > >> > >> Bump. Does anybody have any insight/input at all? > >> > >> > >> > >> > >> Richard M wrote: > >> > > >> > I have finally accepted the orientation towards left-aligned labels > >> over > >> > form fields - and find I do like it can see its easier for a user to > >> take > >> > in the form visually. Plus the style sheets allow the window to be > >> resized > >> > without breaking visually. CSS and visual presentation is not my > >> forte, > >> > but I'm trying to do this "right" and get better at it. > >> > > >> > But occasionally there are times you need side-by-side fields - or the > >> > form just gets too long. Appfuse does this in a few places - such as > >> First > >> > and Last name on the userForm.jsp and signup.jsp pages. > >> > BTW, I am using Appfuse 2.0.1 with Struts2 and Hibernate. It seems to > >> do > >> > this by overriding the theme to "xhtml" from "css_xhtml". Then you put > >> > your own list item tags around the two or three fields you want on the > >> > same line. Like this: > >> > > >> > <li> > >> > <div> > >> > <div class="left"> > >> > <s:textfield key="user.firstName" theme="xhtml" > >> > required="true" cssClass="text medium"/> > >> > </div> > >> > <div> > >> > <s:textfield key="user.lastName" theme="xhtml" > >> > required="true" cssClass="text medium"/> > >> > </div> > >> > </div> > >> > </li> > >> > > >> > > >> > But when we needed to add a third field - middle name - things broke. > >> No > >> > matter how I adjusted and played with the wrapping div's and classes > >> it > >> > would not play nice. It would wrap last name to a second line on > >> Firefox > >> > and leave it on the same line on IE7. Adding tooltips using the > >> Struts2 > >> > "tooltip" attribute broke things further by making the last field on > >> the > >> > line shift up about a quarter of a line - it looked really icky. > >> > > >> > So here's what I ended up doing - that so far seems to work OK: > >> > 1. Changed theme.css to include layout-navtop-1col.css to give me a > >> bit > >> > more width. > >> > 2. Eliminated all extraneous divs, other than those generated by the > >> > Struts s: tags. > >> > 3. For lines with a single field, just let the Struts css_xhtml tag > >> handle > >> > everything. > >> > 4. To get a vertical grouping of fields, I use an additional embedded > >> UL > >> > tag, making an indented sublist. > >> > 5. For lines with multiple fields, like the the Appfuse userForm.jsp, > >> I > >> > manually added the list item tags, ... AND (Cringe) used a single row > >> > table with a cell for each field. > >> > > >> > Here's an example, with heading "Name" above the horizontal grouping > >> of > >> > the three name parts, each with their own label above the field: > >> > > >> > <li> > >> > <strong><label class="desc"><fmt:message > >> > key="user.name"/></label></strong> > >> > <table class="tableFieldRow"><tr><td> > >> > <s:textfield key="user.firstName" maxLength="32" > >> theme="xhtml" > >> > required="true" cssClass="text firstName" > >> > tooltip="%{getText('user.firstName.tooltip')}"/> > >> > </td><td> > >> > <s:textfield key="user.middleName" maxLength="32" > >> > theme="xhtml" required="fals" cssClass="text middleName" > >> > tooltip="%{getText('user.middleName.tooltip')}"/> > >> > </td><td> > >> > <s:textfield key="user.lastName" maxLength="32" > >> theme="xhtml" > >> > required="true" cssClass="text lastName" > >> > tooltip="%{getText('user.lastName.tooltip')}"/> > >> > </td></tr></table> > >> > </li> > >> > > >> > > >> > And here's and example of a vertical grouping, with horizontal > >> grouping on > >> > some fields: > >> > > >> > <li> > >> > <strong><fmt:message key="user.address"/></strong> > >> > <ul> > >> > <s:textfield key="user.address.address" theme="css_xhtml" > >> > cssClass="text large" labelposition="top" > >> > tooltip="%{getText('user.address.address.tooltip')}"/> > >> > <s:textfield key="user.address.address2" theme="css_xhtml" > >> > cssClass="text large" labelposition="top" > >> > tooltip="%{getText('user.address.address2.tooltip')}"/> > >> > <li> > >> > <table class="tableFieldRow"><tr><td> > >> > <s:textfield key="user.address.city" theme="xhtml" > >> > required="true" cssClass="text medium" > >> > labelposition="top" > >> > tooltip="%{getText('user.address.city.tooltip')}"/> > >> > </td><td> > >> > <s:textfield key="user.address.postalCode" > >> theme="xhtml" > >> > required="true" cssClass="text medium" > >> > labelposition="top" > >> > tooltip="%{getText('user.address.postalCode.tooltip')}"/> > >> > </td></tr></table> > >> > </li> > >> > <li> > >> > <table class="tableFieldRow"><tr><td> > >> > <s:select > >> headerValue="%{getText('user.address.province')}" > >> > headerKey="-1" emptyOption="true" theme="xhtml" > >> > name="user.address.province" list="stateList" listKey="value" > >> > listValue="label" key="user.address.province"labelposition="top" > >> > tooltip="%{getText('user.address.province.tooltip')}"></s:select> > >> > </td><td> > >> > <s:select > >> headerValue="%{getText('user.address.country')}" > >> > headerKey="-1" emptyOption="true" theme="xhtml" > >> > name="user.address.country" list="countryList" listKey="value" > >> > listValue="label" key="user.address.country"labelposition="top" > >> > tooltip="%{getText('user.address.country.tooltip')}"></s:select> > >> > </td></tr></table> > >> > </li> > >> > </ul> > >> > </li> > >> > > >> > > >> > Obviously its a little messy, but a custom tag can clean it up a bit. > >> > > >> > So far it seems to behave well for IE7, FireFox on Windows and Mac and > >> > Safari on Mac. > >> > > >> > Questions: > >> > 1. Any real downsides to this? I felt a bit disappointed having to > >> revert > >> > to this, albeit limited, use of table tags. > >> > 2. Any alternate ways to achieve the control I'm looking for? > >> > > >> > Thanks for any and all feedback and suggestions! > >> > > >> > >> -- > >> View this message in context: > >> > http://www.nabble.com/CSS-Framework-and-side-by-side-fields-tp16518269s2369p16579414.html > >> > >> > >> Sent from the AppFuse - User mailing list archive at Nabble.com. > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [EMAIL PROTECTED] > >> For additional commands, e-mail: [EMAIL PROTECTED] > >> > >> > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > -- > View this message in context: > http://www.nabble.com/CSS-Framework-and-side-by-side-fields-tp16518269s2369p16579990.html > > > Sent from the AppFuse - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]