Re: svn commit: r661096 - /ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r661096 - /ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java

hans_bakker
hi adrian,

with this change you reverted my earlier change.

The reason i put this change in is to be able to use the menu in a
column. can you please have a look at the sfa application? there the
menu causes the right form to be under the left hand form....

can you have a look at that?

Regards,
Hans



On Wed, 2008-05-28 at 21:29 +0000, [hidden email] wrote:

> Author: adrianc
> Date: Wed May 28 14:29:05 2008
> New Revision: 661096
>
> URL: http://svn.apache.org/viewvc?rev=661096&view=rev
> Log:
> Oops, missed one file in last commit.
>
> Modified:
>     ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java
>
> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java?rev=661096&r1=661095&r2=661096&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java (original)
> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java Wed May 28 14:29:05 2008
> @@ -259,7 +259,7 @@
>          //String menuContainerStyle = modelMenu.getMenuContainerStyle(context);
>          buffer.append(" </ul>");
>          appendWhitespace(buffer);
> -        buffer.append(" <br/>");
> +        buffer.append(" <br class=\"clear\"/>");
>          appendWhitespace(buffer);
>          buffer.append("</div>");
>          appendWhitespace(buffer);
>
>
>
--
AntWebsystems.com: Quality OFBiz services for competitive rates.....

Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r661096 - /ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java

Adrian Crum
Hans,

Please give me a link and I will take a look at it.

-Adrian

Hans Bakker wrote:

> hi adrian,
>
> with this change you reverted my earlier change.
>
> The reason i put this change in is to be able to use the menu in a
> column. can you please have a look at the sfa application? there the
> menu causes the right form to be under the left hand form....
>
> can you have a look at that?
>
> Regards,
> Hans
>
>
>
> On Wed, 2008-05-28 at 21:29 +0000, [hidden email] wrote:
>> Author: adrianc
>> Date: Wed May 28 14:29:05 2008
>> New Revision: 661096
>>
>> URL: http://svn.apache.org/viewvc?rev=661096&view=rev
>> Log:
>> Oops, missed one file in last commit.
>>
>> Modified:
>>     ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java
>>
>> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java?rev=661096&r1=661095&r2=661096&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java (original)
>> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java Wed May 28 14:29:05 2008
>> @@ -259,7 +259,7 @@
>>          //String menuContainerStyle = modelMenu.getMenuContainerStyle(context);
>>          buffer.append(" </ul>");
>>          appendWhitespace(buffer);
>> -        buffer.append(" <br/>");
>> +        buffer.append(" <br class=\"clear\"/>");
>>          appendWhitespace(buffer);
>>          buffer.append("</div>");
>>          appendWhitespace(buffer);
>>
>>
>>
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r661096 - /ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java

Adrian Crum
In reply to this post by hans_bakker
Hans,

I put an example of how to fix this problem in the Find Accounts screen.
You just need to make the same change to the other screens. Check out
the new CSS style: no-clear.

There is something I would like to mention on this subject so that it is
on record:

The developer community decided over a year ago to work on creating
simpler HTML markup. The phrase used at the time was "CSS Zen Garden
Like." We agreed upon some HTML element compounds that would be used to
construct screens, and styled those HTML compounds accordingly.

The result was dramatic - just compare the markup of the most recent
trunk with a revision around January 2007.

Since that decision, nearly the entire UI has been built around those
HTML compounds. The screen widgets were changed to emit those compounds.

The end result from the user's perspective is a layout that "flows" -
HTML elements move around when the user resizes their screen or default
font.

The downside to this approach is that sometimes things don't land where
we want them to. If that happens, the correct course of action is to
understand why and change how we lay out the screen. Sometimes a CSS
style change is needed. Mucking around with the screen widgets to output
  different HTML compounds is a bad idea. In this case, changing the
widget code fixed the SFA screens, but at the expense of breaking the
layout in most of the other components.

(There will always be problems associated with setting up multi-column
screens. If OFBiz took the "pixel perfect" approach and put everything
in fixed positions on the screen, it would be much easier.)

Having said that, let's analyze the SFA screens you are struggling with...

The problem is the horizontal menu in the right column is causing the
HTML elements below it to drop down to the bottom of the screen. Let's
figure out why.

Screen widget menus are unordered lists ( <ul> elements ) - which is a
common practice. An unordered list is vertical by default, but we can
make it horizontal by using some CSS magic - we float the line items in
the list. The floated line items have to be "cleared" or else other HTML
elements will "spill into" them. That is the purpose of the <br
class="clear"/> element. Its effect is to block any other HTML elements
from appearing to the right or left of the menu - which keeps them from
"spilling into" it.

This method works great if there are no columns. Inside a column, this
method prevents HTML elements from appearing to the left or right of the
unordered list - which (in the HTML markup) has appeared AFTER the left
column. Oops, all remaining HTML elements will now be rendered below the
left column. That's not what we wanted.

Removing the <br class="clear"/> is a tempting fix, but as I said, all
other menus will now have HTML elements spilling into them. The correct
approach (the one that I mentioned in an earlier email) is to disable
the clearing effect on this menu only:

<style type="text/css">
   .no-clear .clear {
     clear: none;
   }
</style>

<div class="no-clear">
   <!-- menu widget code here -->
   ...
</div>

Inline styles aren't possible using screen widgets, so I put the
no-clear CSS class in the maincss.css file. (On a side note, I despise
having to create CSS classes to fix things like this, but sometimes it
has to be done.) Now the no-clear style can be added to the menu
container style:

<menu name="AccountSubTabBar" menu-container-style="button-bar
button-style-2 no-clear" default-selected-style="selected">

Tah-dah! Problem solved without changing the widget code.

-Adrian


Hans Bakker wrote:

> hi adrian,
>
> with this change you reverted my earlier change.
>
> The reason i put this change in is to be able to use the menu in a
> column. can you please have a look at the sfa application? there the
> menu causes the right form to be under the left hand form....
>
> can you have a look at that?
>
> Regards,
> Hans
>
>
>
> On Wed, 2008-05-28 at 21:29 +0000, [hidden email] wrote:
>> Author: adrianc
>> Date: Wed May 28 14:29:05 2008
>> New Revision: 661096
>>
>> URL: http://svn.apache.org/viewvc?rev=661096&view=rev
>> Log:
>> Oops, missed one file in last commit.
>>
>> Modified:
>>     ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java
>>
>> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java?rev=661096&r1=661095&r2=661096&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java (original)
>> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java Wed May 28 14:29:05 2008
>> @@ -259,7 +259,7 @@
>>          //String menuContainerStyle = modelMenu.getMenuContainerStyle(context);
>>          buffer.append(" </ul>");
>>          appendWhitespace(buffer);
>> -        buffer.append(" <br/>");
>> +        buffer.append(" <br class=\"clear\"/>");
>>          appendWhitespace(buffer);
>>          buffer.append("</div>");
>>          appendWhitespace(buffer);
>>
>>
>>
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r661096 - /ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java

hans_bakker
Thank you Adrian for the extensive explanation. I implemented it in the
sfa manager....

Regards,
Hans


On Fri, 2008-05-30 at 09:50 -0700, Adrian Crum wrote:

> Hans,
>
> I put an example of how to fix this problem in the Find Accounts screen.
> You just need to make the same change to the other screens. Check out
> the new CSS style: no-clear.
>
> There is something I would like to mention on this subject so that it is
> on record:
>
> The developer community decided over a year ago to work on creating
> simpler HTML markup. The phrase used at the time was "CSS Zen Garden
> Like." We agreed upon some HTML element compounds that would be used to
> construct screens, and styled those HTML compounds accordingly.
>
> The result was dramatic - just compare the markup of the most recent
> trunk with a revision around January 2007.
>
> Since that decision, nearly the entire UI has been built around those
> HTML compounds. The screen widgets were changed to emit those compounds.
>
> The end result from the user's perspective is a layout that "flows" -
> HTML elements move around when the user resizes their screen or default
> font.
>
> The downside to this approach is that sometimes things don't land where
> we want them to. If that happens, the correct course of action is to
> understand why and change how we lay out the screen. Sometimes a CSS
> style change is needed. Mucking around with the screen widgets to output
>   different HTML compounds is a bad idea. In this case, changing the
> widget code fixed the SFA screens, but at the expense of breaking the
> layout in most of the other components.
>
> (There will always be problems associated with setting up multi-column
> screens. If OFBiz took the "pixel perfect" approach and put everything
> in fixed positions on the screen, it would be much easier.)
>
> Having said that, let's analyze the SFA screens you are struggling with...
>
> The problem is the horizontal menu in the right column is causing the
> HTML elements below it to drop down to the bottom of the screen. Let's
> figure out why.
>
> Screen widget menus are unordered lists ( <ul> elements ) - which is a
> common practice. An unordered list is vertical by default, but we can
> make it horizontal by using some CSS magic - we float the line items in
> the list. The floated line items have to be "cleared" or else other HTML
> elements will "spill into" them. That is the purpose of the <br
> class="clear"/> element. Its effect is to block any other HTML elements
> from appearing to the right or left of the menu - which keeps them from
> "spilling into" it.
>
> This method works great if there are no columns. Inside a column, this
> method prevents HTML elements from appearing to the left or right of the
> unordered list - which (in the HTML markup) has appeared AFTER the left
> column. Oops, all remaining HTML elements will now be rendered below the
> left column. That's not what we wanted.
>
> Removing the <br class="clear"/> is a tempting fix, but as I said, all
> other menus will now have HTML elements spilling into them. The correct
> approach (the one that I mentioned in an earlier email) is to disable
> the clearing effect on this menu only:
>
> <style type="text/css">
>    .no-clear .clear {
>      clear: none;
>    }
> </style>
>
> <div class="no-clear">
>    <!-- menu widget code here -->
>    ...
> </div>
>
> Inline styles aren't possible using screen widgets, so I put the
> no-clear CSS class in the maincss.css file. (On a side note, I despise
> having to create CSS classes to fix things like this, but sometimes it
> has to be done.) Now the no-clear style can be added to the menu
> container style:
>
> <menu name="AccountSubTabBar" menu-container-style="button-bar
> button-style-2 no-clear" default-selected-style="selected">
>
> Tah-dah! Problem solved without changing the widget code.
>
> -Adrian
>
>
> Hans Bakker wrote:
> > hi adrian,
> >
> > with this change you reverted my earlier change.
> >
> > The reason i put this change in is to be able to use the menu in a
> > column. can you please have a look at the sfa application? there the
> > menu causes the right form to be under the left hand form....
> >
> > can you have a look at that?
> >
> > Regards,
> > Hans
> >
> >
> >
> > On Wed, 2008-05-28 at 21:29 +0000, [hidden email] wrote:
> >> Author: adrianc
> >> Date: Wed May 28 14:29:05 2008
> >> New Revision: 661096
> >>
> >> URL: http://svn.apache.org/viewvc?rev=661096&view=rev
> >> Log:
> >> Oops, missed one file in last commit.
> >>
> >> Modified:
> >>     ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java
> >>
> >> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java
> >> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java?rev=661096&r1=661095&r2=661096&view=diff
> >> ==============================================================================
> >> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java (original)
> >> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java Wed May 28 14:29:05 2008
> >> @@ -259,7 +259,7 @@
> >>          //String menuContainerStyle = modelMenu.getMenuContainerStyle(context);
> >>          buffer.append(" </ul>");
> >>          appendWhitespace(buffer);
> >> -        buffer.append(" <br/>");
> >> +        buffer.append(" <br class=\"clear\"/>");
> >>          appendWhitespace(buffer);
> >>          buffer.append("</div>");
> >>          appendWhitespace(buffer);
> >>
> >>
> >>
>
--
AntWebsystems.com: Quality OFBiz services for competitive rates.....

Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r661096- /ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java

Jacques Le Roux
Administrator
Yes, thanks for the clear explanation Adrian. I think I will put something in the FAQ page (about clear and no-clear usage). This is
really not obvious...

Jacques

From: "Hans Bakker" <[hidden email]>

> Thank you Adrian for the extensive explanation. I implemented it in the
> sfa manager....
>
> Regards,
> Hans
>
>
> On Fri, 2008-05-30 at 09:50 -0700, Adrian Crum wrote:
>> Hans,
>>
>> I put an example of how to fix this problem in the Find Accounts screen.
>> You just need to make the same change to the other screens. Check out
>> the new CSS style: no-clear.
>>
>> There is something I would like to mention on this subject so that it is
>> on record:
>>
>> The developer community decided over a year ago to work on creating
>> simpler HTML markup. The phrase used at the time was "CSS Zen Garden
>> Like." We agreed upon some HTML element compounds that would be used to
>> construct screens, and styled those HTML compounds accordingly.
>>
>> The result was dramatic - just compare the markup of the most recent
>> trunk with a revision around January 2007.
>>
>> Since that decision, nearly the entire UI has been built around those
>> HTML compounds. The screen widgets were changed to emit those compounds.
>>
>> The end result from the user's perspective is a layout that "flows" -
>> HTML elements move around when the user resizes their screen or default
>> font.
>>
>> The downside to this approach is that sometimes things don't land where
>> we want them to. If that happens, the correct course of action is to
>> understand why and change how we lay out the screen. Sometimes a CSS
>> style change is needed. Mucking around with the screen widgets to output
>>   different HTML compounds is a bad idea. In this case, changing the
>> widget code fixed the SFA screens, but at the expense of breaking the
>> layout in most of the other components.
>>
>> (There will always be problems associated with setting up multi-column
>> screens. If OFBiz took the "pixel perfect" approach and put everything
>> in fixed positions on the screen, it would be much easier.)
>>
>> Having said that, let's analyze the SFA screens you are struggling with...
>>
>> The problem is the horizontal menu in the right column is causing the
>> HTML elements below it to drop down to the bottom of the screen. Let's
>> figure out why.
>>
>> Screen widget menus are unordered lists ( <ul> elements ) - which is a
>> common practice. An unordered list is vertical by default, but we can
>> make it horizontal by using some CSS magic - we float the line items in
>> the list. The floated line items have to be "cleared" or else other HTML
>> elements will "spill into" them. That is the purpose of the <br
>> class="clear"/> element. Its effect is to block any other HTML elements
>> from appearing to the right or left of the menu - which keeps them from
>> "spilling into" it.
>>
>> This method works great if there are no columns. Inside a column, this
>> method prevents HTML elements from appearing to the left or right of the
>> unordered list - which (in the HTML markup) has appeared AFTER the left
>> column. Oops, all remaining HTML elements will now be rendered below the
>> left column. That's not what we wanted.
>>
>> Removing the <br class="clear"/> is a tempting fix, but as I said, all
>> other menus will now have HTML elements spilling into them. The correct
>> approach (the one that I mentioned in an earlier email) is to disable
>> the clearing effect on this menu only:
>>
>> <style type="text/css">
>>    .no-clear .clear {
>>      clear: none;
>>    }
>> </style>
>>
>> <div class="no-clear">
>>    <!-- menu widget code here -->
>>    ...
>> </div>
>>
>> Inline styles aren't possible using screen widgets, so I put the
>> no-clear CSS class in the maincss.css file. (On a side note, I despise
>> having to create CSS classes to fix things like this, but sometimes it
>> has to be done.) Now the no-clear style can be added to the menu
>> container style:
>>
>> <menu name="AccountSubTabBar" menu-container-style="button-bar
>> button-style-2 no-clear" default-selected-style="selected">
>>
>> Tah-dah! Problem solved without changing the widget code.
>>
>> -Adrian
>>
>>
>> Hans Bakker wrote:
>> > hi adrian,
>> >
>> > with this change you reverted my earlier change.
>> >
>> > The reason i put this change in is to be able to use the menu in a
>> > column. can you please have a look at the sfa application? there the
>> > menu causes the right form to be under the left hand form....
>> >
>> > can you have a look at that?
>> >
>> > Regards,
>> > Hans
>> >
>> >
>> >
>> > On Wed, 2008-05-28 at 21:29 +0000, [hidden email] wrote:
>> >> Author: adrianc
>> >> Date: Wed May 28 14:29:05 2008
>> >> New Revision: 661096
>> >>
>> >> URL: http://svn.apache.org/viewvc?rev=661096&view=rev
>> >> Log:
>> >> Oops, missed one file in last commit.
>> >>
>> >> Modified:
>> >>     ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java
>> >>
>> >> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java
>> >> URL:
>> >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java?rev=661096&r1=661095&r2=661096&view=diff
>> >> ==============================================================================
>> >> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java (original)
>> >> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java Wed May 28 14:29:05 2008
>> >> @@ -259,7 +259,7 @@
>> >>          //String menuContainerStyle = modelMenu.getMenuContainerStyle(context);
>> >>          buffer.append(" </ul>");
>> >>          appendWhitespace(buffer);
>> >> -        buffer.append(" <br/>");
>> >> +        buffer.append(" <br class=\"clear\"/>");
>> >>          appendWhitespace(buffer);
>> >>          buffer.append("</div>");
>> >>          appendWhitespace(buffer);
>> >>
>> >>
>> >>
>>
> --
> AntWebsystems.com: Quality OFBiz services for competitive rates.....
>

Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r661096- /ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java

David E Jones

I'll third the appreciation Adrian, especially for being so thorough  
and keeping an eye on this.

-David


On May 31, 2008, at 10:13 AM, Jacques Le Roux wrote:

> Yes, thanks for the clear explanation Adrian. I think I will put  
> something in the FAQ page (about clear and no-clear usage). This is  
> really not obvious...
>
> Jacques
>
> From: "Hans Bakker" <[hidden email]>
>> Thank you Adrian for the extensive explanation. I implemented it in  
>> the
>> sfa manager....
>>
>> Regards,
>> Hans
>>
>>
>> On Fri, 2008-05-30 at 09:50 -0700, Adrian Crum wrote:
>>> Hans,
>>>
>>> I put an example of how to fix this problem in the Find Accounts  
>>> screen.
>>> You just need to make the same change to the other screens. Check  
>>> out
>>> the new CSS style: no-clear.
>>>
>>> There is something I would like to mention on this subject so that  
>>> it is
>>> on record:
>>>
>>> The developer community decided over a year ago to work on creating
>>> simpler HTML markup. The phrase used at the time was "CSS Zen Garden
>>> Like." We agreed upon some HTML element compounds that would be  
>>> used to
>>> construct screens, and styled those HTML compounds accordingly.
>>>
>>> The result was dramatic - just compare the markup of the most recent
>>> trunk with a revision around January 2007.
>>>
>>> Since that decision, nearly the entire UI has been built around  
>>> those
>>> HTML compounds. The screen widgets were changed to emit those  
>>> compounds.
>>>
>>> The end result from the user's perspective is a layout that  
>>> "flows" -
>>> HTML elements move around when the user resizes their screen or  
>>> default
>>> font.
>>>
>>> The downside to this approach is that sometimes things don't land  
>>> where
>>> we want them to. If that happens, the correct course of action is to
>>> understand why and change how we lay out the screen. Sometimes a CSS
>>> style change is needed. Mucking around with the screen widgets to  
>>> output
>>>  different HTML compounds is a bad idea. In this case, changing the
>>> widget code fixed the SFA screens, but at the expense of breaking  
>>> the
>>> layout in most of the other components.
>>>
>>> (There will always be problems associated with setting up multi-
>>> column
>>> screens. If OFBiz took the "pixel perfect" approach and put  
>>> everything
>>> in fixed positions on the screen, it would be much easier.)
>>>
>>> Having said that, let's analyze the SFA screens you are struggling  
>>> with...
>>>
>>> The problem is the horizontal menu in the right column is causing  
>>> the
>>> HTML elements below it to drop down to the bottom of the screen.  
>>> Let's
>>> figure out why.
>>>
>>> Screen widget menus are unordered lists ( <ul> elements ) - which  
>>> is a
>>> common practice. An unordered list is vertical by default, but we  
>>> can
>>> make it horizontal by using some CSS magic - we float the line  
>>> items in
>>> the list. The floated line items have to be "cleared" or else  
>>> other HTML
>>> elements will "spill into" them. That is the purpose of the <br
>>> class="clear"/> element. Its effect is to block any other HTML  
>>> elements
>>> from appearing to the right or left of the menu - which keeps them  
>>> from
>>> "spilling into" it.
>>>
>>> This method works great if there are no columns. Inside a column,  
>>> this
>>> method prevents HTML elements from appearing to the left or right  
>>> of the
>>> unordered list - which (in the HTML markup) has appeared AFTER the  
>>> left
>>> column. Oops, all remaining HTML elements will now be rendered  
>>> below the
>>> left column. That's not what we wanted.
>>>
>>> Removing the <br class="clear"/> is a tempting fix, but as I said,  
>>> all
>>> other menus will now have HTML elements spilling into them. The  
>>> correct
>>> approach (the one that I mentioned in an earlier email) is to  
>>> disable
>>> the clearing effect on this menu only:
>>>
>>> <style type="text/css">
>>>   .no-clear .clear {
>>>     clear: none;
>>>   }
>>> </style>
>>>
>>> <div class="no-clear">
>>>   <!-- menu widget code here -->
>>>   ...
>>> </div>
>>>
>>> Inline styles aren't possible using screen widgets, so I put the
>>> no-clear CSS class in the maincss.css file. (On a side note, I  
>>> despise
>>> having to create CSS classes to fix things like this, but  
>>> sometimes it
>>> has to be done.) Now the no-clear style can be added to the menu
>>> container style:
>>>
>>> <menu name="AccountSubTabBar" menu-container-style="button-bar
>>> button-style-2 no-clear" default-selected-style="selected">
>>>
>>> Tah-dah! Problem solved without changing the widget code.
>>>
>>> -Adrian
>>>
>>>
>>> Hans Bakker wrote:
>>> > hi adrian,
>>> >
>>> > with this change you reverted my earlier change.
>>> >
>>> > The reason i put this change in is to be able to use the menu in a
>>> > column. can you please have a look at the sfa application? there  
>>> the
>>> > menu causes the right form to be under the left hand form....
>>> >
>>> > can you have a look at that?
>>> >
>>> > Regards,
>>> > Hans
>>> >
>>> >
>>> >
>>> > On Wed, 2008-05-28 at 21:29 +0000, [hidden email] wrote:
>>> >> Author: adrianc
>>> >> Date: Wed May 28 14:29:05 2008
>>> >> New Revision: 661096
>>> >>
>>> >> URL: http://svn.apache.org/viewvc?rev=661096&view=rev
>>> >> Log:
>>> >> Oops, missed one file in last commit.
>>> >>
>>> >> Modified:
>>> >>     ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/
>>> HtmlMenuRenderer.java
>>> >>
>>> >> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/
>>> html/HtmlMenuRenderer.java
>>> >> URL:
>>> >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java?rev=661096&r1=661095&r2=661096&view=diff
>>> >>  
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ====================================================================
>>> >> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/
>>> HtmlMenuRenderer.java (original)
>>> >> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/
>>> HtmlMenuRenderer.java Wed May 28 14:29:05 2008
>>> >> @@ -259,7 +259,7 @@
>>> >>          //String menuContainerStyle =  
>>> modelMenu.getMenuContainerStyle(context);
>>> >>          buffer.append(" </ul>");
>>> >>          appendWhitespace(buffer);
>>> >> -        buffer.append(" <br/>");
>>> >> +        buffer.append(" <br class=\"clear\"/>");
>>> >>          appendWhitespace(buffer);
>>> >>          buffer.append("</div>");
>>> >>          appendWhitespace(buffer);
>>> >>
>>> >>
>>> >>
>>>
>> --
>> AntWebsystems.com: Quality OFBiz services for competitive rates.....
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r661096- /ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java

Jacques Le Roux
Administrator
In reply to this post by Jacques Le Roux
Done : http://docs.ofbiz.org/display/OFBIZ/FAQ+-+Tips+-+Tricks+-+Cookbook+-+HowTo#FAQ-Tips-Tricks-Cookbook-HowTo-CSS

Jacques

From: "Jacques Le Roux" <[hidden email]>

> Yes, thanks for the clear explanation Adrian. I think I will put something in the FAQ page (about clear and no-clear usage). This
> is really not obvious...
>
> Jacques
>
> From: "Hans Bakker" <[hidden email]>
>> Thank you Adrian for the extensive explanation. I implemented it in the
>> sfa manager....
>>
>> Regards,
>> Hans
>>
>>
>> On Fri, 2008-05-30 at 09:50 -0700, Adrian Crum wrote:
>>> Hans,
>>>
>>> I put an example of how to fix this problem in the Find Accounts screen.
>>> You just need to make the same change to the other screens. Check out
>>> the new CSS style: no-clear.
>>>
>>> There is something I would like to mention on this subject so that it is
>>> on record:
>>>
>>> The developer community decided over a year ago to work on creating
>>> simpler HTML markup. The phrase used at the time was "CSS Zen Garden
>>> Like." We agreed upon some HTML element compounds that would be used to
>>> construct screens, and styled those HTML compounds accordingly.
>>>
>>> The result was dramatic - just compare the markup of the most recent
>>> trunk with a revision around January 2007.
>>>
>>> Since that decision, nearly the entire UI has been built around those
>>> HTML compounds. The screen widgets were changed to emit those compounds.
>>>
>>> The end result from the user's perspective is a layout that "flows" -
>>> HTML elements move around when the user resizes their screen or default
>>> font.
>>>
>>> The downside to this approach is that sometimes things don't land where
>>> we want them to. If that happens, the correct course of action is to
>>> understand why and change how we lay out the screen. Sometimes a CSS
>>> style change is needed. Mucking around with the screen widgets to output
>>>   different HTML compounds is a bad idea. In this case, changing the
>>> widget code fixed the SFA screens, but at the expense of breaking the
>>> layout in most of the other components.
>>>
>>> (There will always be problems associated with setting up multi-column
>>> screens. If OFBiz took the "pixel perfect" approach and put everything
>>> in fixed positions on the screen, it would be much easier.)
>>>
>>> Having said that, let's analyze the SFA screens you are struggling with...
>>>
>>> The problem is the horizontal menu in the right column is causing the
>>> HTML elements below it to drop down to the bottom of the screen. Let's
>>> figure out why.
>>>
>>> Screen widget menus are unordered lists ( <ul> elements ) - which is a
>>> common practice. An unordered list is vertical by default, but we can
>>> make it horizontal by using some CSS magic - we float the line items in
>>> the list. The floated line items have to be "cleared" or else other HTML
>>> elements will "spill into" them. That is the purpose of the <br
>>> class="clear"/> element. Its effect is to block any other HTML elements
>>> from appearing to the right or left of the menu - which keeps them from
>>> "spilling into" it.
>>>
>>> This method works great if there are no columns. Inside a column, this
>>> method prevents HTML elements from appearing to the left or right of the
>>> unordered list - which (in the HTML markup) has appeared AFTER the left
>>> column. Oops, all remaining HTML elements will now be rendered below the
>>> left column. That's not what we wanted.
>>>
>>> Removing the <br class="clear"/> is a tempting fix, but as I said, all
>>> other menus will now have HTML elements spilling into them. The correct
>>> approach (the one that I mentioned in an earlier email) is to disable
>>> the clearing effect on this menu only:
>>>
>>> <style type="text/css">
>>>    .no-clear .clear {
>>>      clear: none;
>>>    }
>>> </style>
>>>
>>> <div class="no-clear">
>>>    <!-- menu widget code here -->
>>>    ...
>>> </div>
>>>
>>> Inline styles aren't possible using screen widgets, so I put the
>>> no-clear CSS class in the maincss.css file. (On a side note, I despise
>>> having to create CSS classes to fix things like this, but sometimes it
>>> has to be done.) Now the no-clear style can be added to the menu
>>> container style:
>>>
>>> <menu name="AccountSubTabBar" menu-container-style="button-bar
>>> button-style-2 no-clear" default-selected-style="selected">
>>>
>>> Tah-dah! Problem solved without changing the widget code.
>>>
>>> -Adrian
>>>
>>>
>>> Hans Bakker wrote:
>>> > hi adrian,
>>> >
>>> > with this change you reverted my earlier change.
>>> >
>>> > The reason i put this change in is to be able to use the menu in a
>>> > column. can you please have a look at the sfa application? there the
>>> > menu causes the right form to be under the left hand form....
>>> >
>>> > can you have a look at that?
>>> >
>>> > Regards,
>>> > Hans
>>> >
>>> >
>>> >
>>> > On Wed, 2008-05-28 at 21:29 +0000, [hidden email] wrote:
>>> >> Author: adrianc
>>> >> Date: Wed May 28 14:29:05 2008
>>> >> New Revision: 661096
>>> >>
>>> >> URL: http://svn.apache.org/viewvc?rev=661096&view=rev
>>> >> Log:
>>> >> Oops, missed one file in last commit.
>>> >>
>>> >> Modified:
>>> >>     ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java
>>> >>
>>> >> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java
>>> >> URL:
>>> >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java?rev=661096&r1=661095&r2=661096&view=diff
>>> >> ==============================================================================
>>> >> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java (original)
>>> >> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlMenuRenderer.java Wed May 28 14:29:05 2008
>>> >> @@ -259,7 +259,7 @@
>>> >>          //String menuContainerStyle = modelMenu.getMenuContainerStyle(context);
>>> >>          buffer.append(" </ul>");
>>> >>          appendWhitespace(buffer);
>>> >> -        buffer.append(" <br/>");
>>> >> +        buffer.append(" <br class=\"clear\"/>");
>>> >>          appendWhitespace(buffer);
>>> >>          buffer.append("</div>");
>>> >>          appendWhitespace(buffer);
>>> >>
>>> >>
>>> >>
>>>
>> --
>> AntWebsystems.com: Quality OFBiz services for competitive rates.....
>>
>