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].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to