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