tags:

views:

60

answers:

3

Hi,

I need a custom widget height. I tried using this

Integer.toString(yourWidget.getElement().getOffsetHeight())

but,

  • If I use it when I create it or add it to the container panel, it returns 0
  • If I use it in the contrainer panel's onLoad method, it returns the widget height before the style is applied

So, when should I use it to get the widget height after the style is applied?

Thanks a lot!

A: 

I think onAttach or onLoad would be a good catch..

@Override
protected void onLoad() {
   super.onLoad();
   //do sth
}
markovuksanovic
thx for your response, but has the same problem, any other idea???
david
How about tools like Firebug - do they show the value you expect or does the height stay the same? (there are many ways the CSS can affect the height of an element - not always in the way you'd expect)
Igor Klimer
I remember I had the same problem a looong time ago.. And just can't remember how it was solved... basically the problem was that i was trying to change height while the widget was still not completely constructed... I-ll try to find the code...
markovuksanovic
check out the updated answer
markovuksanovic
A: 

Seems to be the same kind of problem that the one exposed here: http://stackoverflow.com/questions/2692097/gwt-retrieve-size-of-a-widget-that-is-not-displayed

They used a workaround using JSNI to do what they wanted, maybe a similiar trick will work for you as well.

Garagos
A: 

Hi David,

I don't known if you've solved your problem already, but an option to use JSNI would be making sure that the widget creation is finished.

A way of achieving that is with the Deferred command:

    DeferredCommand.addCommand(new Command() {
        public void execute() {
            // Ask here for the height
        }
    });
Carlos Tasada