One more issue:
Using LazyPanel does not work in the new TabLayoutPanel. I guess the
setVisible() method is no longer called on this widget (is it called
on one of the parent panels?)


On Jan 19, 5:07 pm, Joel Webber <j...@google.com> wrote:
> On Mon, Jan 18, 2010 at 6:17 AM, dflorey <daniel.flo...@gmail.com> wrote:
> > Hi,
> > I've been trying to usw the new TabLayoutPanel for different layouts.
> > Here are my findings:
>
> > 1. The .gwt-TabLayoutPanelTabs style gets applied to the wrapper
> > element with width set to >16000 px. This makes it impossible to
> > create a border around the tab bar.
> > As a workaround I had to apply a style to wrapper element like this:
> > ((Element) tabPanel.getElement().getChild(1)).setClassName(".gwt-
> > TabLayoutPanel-wrapper");
> > This is very ugly and will fail as soon as the TabLayoutPanel impl
> > changes.
> > Please consider applying the ".gwt-TabLayoutPanelTabs" style to the
> > appropriate wrapper element.
>
> This is a good point. I'll need to add another wrapper element around the
> tabs to make this work, but I don't think that will cause any problems.
> There *is* a wrapper created by the Layout class, but it's unsafe to apply
> arbitrary styles to it (in particular, decorations such as border, margin,
> and padding will confuse it -- it's actually there to work around
> measurement problems with such decorations). I've added a comment to issue
> 4429 (default TLP styles) to capture this.
>
> 2. The setStyle(Primary)Name methods will not change the substyles.
>
> > When using different TabLayoutPanels with different styles in the same
> > application you'll have to overwrite each css property as you'll
> > inherit all styles by default. It would be much better to change all
> > substyles as it has been the case with the "old" gwt widgets
>
> Actually, I can't think of any cases off the top of my head where we've
> automatically updated sub-styles like this. For example, the old StackPanel
> only modifies the top-most class name. The problem is that there are cases
> where we'd be forced to walk arbitrarily large numbers of children every
> time the style name is changed. We decided it was best to avoid this, and
> require the (admittedly somewhat uglier, and imperfect) use of descendent
> selectors. The right long-term approach is probably closer to what you
> suggest below.
>
> or - even better - to pass a ClientBundle defining all styles as an optional
>
> > argument to the cstr of the TabLayoutPanel.
> > A default style factory could provide default styles if no
> > ClientBundle is provided. Replacing the default style factory using
> > deferred binding could make the default styles themable.
> > I've used this approach in my own app and it works fine.
>
> Essentially, yes. Though it's a fairly complex design problem in the general
> case to do so in a way that ensures there's no unnecessary overhead, and
> supports all the common use cases. This is definitely a Q1 goal, and we'll
> make a point to share design docs as soon as we have a rough idea of what it
> should look like.
-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to