We haven't had a change to fix this yet.  CellBrowser uses a
SplitLayoutPanel that has a fairly complicated structure, so DOM
manipulation isn't likely to work.

As a workaround, you can get access to the SplitLayoutPanel in CellBrowser
and set the widget width directly.  Subclass CellBrowser and override
getWidget() to return a SplitLayoutPanel, then do the following:

SplitLayoutPanel splitPanel = cellBrowser.getWidget();
splitPanel.setWidgetSize(splitPanel.getWidget(0), 400.0);

Thanks,
John LaBanca
[email protected]


On Wed, Feb 2, 2011 at 9:38 PM, sevendays <[email protected]> wrote:

> I raised query around a month ago about setting the width of the first
> column in a CellBrowser in GWT. There is a bug that stops this from
> occurring - it always displays with a default width of 200px because this is
> the generated HTML for the wrapper divs:
>
> <div style="position: absolute; overflow: hidden; left: 0px; top: 0px;
> bottom: 0px; width: 200px;">
> <div style="position: absolute; overflow: hidden; left: 200px; top: 0px;
> bottom: 0px; width: 8px;">
>
> My original post is here:
> https://groups.google.com/d/msg/google-web-toolkit/Zmz_1XDq4dI/R2LxcPQqNQ4J
>
> So as a work around I am trying to set the width style dynamically through
> the GWT DOM API. Here is some sample code showing my approach:
>
> Button test = new Button("Test");
> test.addClickHandler(new ClickHandler() {
> @Override
> public void onClick(ClickEvent event) {
> Element browserElement = browser.getElement();
>  NodeList browserChildNodes = browserElement.getChildNodes();
>
> for (int i=0; i<browserChildNodes.getLength(); i++) {
>  Node n = browserChildNodes.getItem(i);
> int divCount = 0;
> if (n.getNodeType() == Node.ELEMENT_NODE) {
>  Element e = Element.as(n);
> if (e.getTagName().equalsIgnoreCase("DIV")) {
> System.out.println("Before mod: " + e.getAttribute("style"));
>  if (divCount == 2) {
> Style s = e.getStyle();
> e.setId("col1");
>  s.setWidth(400.00, Unit.PX);
> e.setAttribute("style", "position: absolute; overflow: hidden; left: 0px;
> top: 0px; bottom: 0px; width: 400px;");
>  } else if (divCount == 3) {
> e.setId("col1Dragger");
> e.setAttribute("style", "position: absolute; overflow: hidden; left: 400px;
> top: 0px; bottom: 0px; width: 8px;");
>  }
>  System.out.println("After mod: " + e.getAttribute("style"));
>  divCount++;
> }
> }
> }
>  }
> });
>
> However, when 'button Test is clicked, it makes no difference to the style
> attribute. The 'after mod' println shows the same results as 'before mod'.
> Checking the HTML, also shows no change.'  I have also tried the above code
> in the initialization code for the CellBrowser; nothing changes in the
> rendered HTML.
>
> I am sure I am looking at the right divs, as a println of the style
> attibute matches perfectly.
>
> setId(), also has no effect.
>
> I have also tried e.getStyle().setProperty("width", Unit.PX), and this had
> no effect.
>
> Why is the DOM manipulation having no effect?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google Web Toolkit" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-web-toolkit%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-web-toolkit?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to