package com.nvarghese.beowulf.common.cobra.html.domimpl; // org.cobra_grendel.html.style.*; import org.w3c.dom.Document; import org.w3c.dom.html2.HTMLIFrameElement; import com.nvarghese.beowulf.common.cobra.html.BrowserFrame; import com.nvarghese.beowulf.common.cobra.html.js.Window; public class HTMLIFrameElementImpl extends HTMLAbstractUIElement implements HTMLIFrameElement, FrameNode { private volatile BrowserFrame browserFrame; public HTMLIFrameElementImpl(String name) { super(name); } public void setBrowserFrame(BrowserFrame frame) { this.browserFrame = frame; if (frame != null) { String src = this.getAttribute("src"); if (src != null) { try { frame.loadURL(this.getFullURL(src)); } catch (java.net.MalformedURLException mfu) { this.warn("setBrowserFrame(): Unable to navigate to src.", mfu); } } } } public BrowserFrame getBrowserFrame() { return this.browserFrame; } public String getAlign() { return this.getAttribute("align"); } public Document getContentDocument() { // TODO: Domain-based security BrowserFrame frame = this.browserFrame; if (frame == null) { // Not loaded yet return null; } return frame.getContentDocument(); } public Window getContentWindow() { BrowserFrame frame = this.browserFrame; if (frame == null) { // Not loaded yet return null; } return Window.getWindow(frame.getHtmlRendererContext()); } public String getFrameBorder() { return this.getAttribute("frameborder"); } public String getHeight() { return this.getAttribute("height"); } public String getLongDesc() { return this.getAttribute("longdesc"); } public String getMarginHeight() { return this.getAttribute("marginheight"); } public String getMarginWidth() { return this.getAttribute("marginwidth"); } public String getName() { return this.getAttribute("name"); } public String getScrolling() { return this.getAttribute("scrolling"); } public String getSrc() { return this.getAttribute("src"); } public String getWidth() { return this.getAttribute("width"); } public void setAlign(String align) { this.setAttribute("align", align); } public void setFrameBorder(String frameBorder) { this.setAttribute("frameborder", frameBorder); } public void setHeight(String height) { this.setAttribute("height", height); } public void setLongDesc(String longDesc) { this.setAttribute("longdesc", longDesc); } public void setMarginHeight(String marginHeight) { this.setAttribute("marginHeight", marginHeight); } public void setMarginWidth(String marginWidth) { this.setAttribute("marginWidth", marginWidth); } public void setName(String name) { this.setAttribute("name", name); } public void setScrolling(String scrolling) { this.setAttribute("scrolling", scrolling); } public void setSrc(String src) { this.setAttribute("src", src); } public void setWidth(String width) { this.setAttribute("width", width); } protected void assignAttributeField(String normalName, String value) { if ("src".equals(normalName)) { BrowserFrame frame = this.browserFrame; if (frame != null) { try { frame.loadURL(this.getFullURL(value)); } catch (java.net.MalformedURLException mfu) { this.warn("assignAttributeField(): Unable to navigate to src.", mfu); } } } else { super.assignAttributeField(normalName, value); } } /* * protected RenderState createRenderState(RenderState prevRenderState) { * return new IFrameRenderState(prevRenderState, this); } */ }