if (uidlForChild.getTag().equals("location")) {
String location = uidlForChild.getStringAttribute("name");
Widget child = client.getWidget(uidlForChild.getChildUIDL(0));
+ try {
html.add(child,locationPrefix + location);
+ } catch(Exception e) {
+ // If no location is found, this component is not visible
+ }
((Paintable)child).updateFromUIDL(uidlForChild.getChildUIDL(0), client);
}
add(html);
addUniqueIdsForLocations(html.getElement(), locationPrefix);
+
+ Widget parent = getParent();
+ while (parent != null && !(parent instanceof IWindow)) parent = parent.getParent();
+ if (parent != null && ((IWindow)parent).getTheme() != null);
+ prefixImgSrcs(html.getElement(), "../theme/"+((IWindow)parent).getTheme()+"/layout/");
}
private native void addUniqueIdsForLocations(Element e, String idPrefix) /*-{
}
}-*/;
+ private native void prefixImgSrcs(Element e, String srcPrefix) /*-{
+ var divs = e.getElementsByTagName("img");
+ for (var i = 0; i < divs.length; i++) {
+ var div = divs[i];
+ var src = div.getAttribute("src");
+ if (src.indexOf("http") != 0) div.setAttribute("src",srcPrefix + src);
+ }
+}-*/;
+
public void replaceChildComponent(Widget from, Widget to) {
CaptionWrapper wrapper = (CaptionWrapper) componentToWrapper.get(from);
if (wrapper != null) {
public class IWindow extends IVerticalLayout implements Paintable {
+ private String theme;
+
+ public String getTheme() {
+ return theme;
+ }
+
public void updateFromUIDL(UIDL uidl, Client client) {
+ theme = uidl.getStringAttribute("theme");
super.updateFromUIDL( uidl, client);
com.google.gwt.user.client.Window.setTitle(uidl.getStringAttribute("caption"));
}