/* GNU GENERAL LICENSE Copyright (C) 2006 The Lobo Project. Copyright (C) 2014 - 2017 Lobo Evolution This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either verion 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General License for more details. You should have received a copy of the GNU General Public along with this program. If not, see <http://www.gnu.org/licenses/>. Contact info: lobochief@users.sourceforge.net; ivan.difrancesco@yahoo.it */ /* * Created on Jan 29, 2006 */ package org.lobobrowser.html.test; import java.awt.Component; import java.awt.Insets; import java.net.URL; import org.lobobrowser.html.BrowserFrame; import org.lobobrowser.html.HtmlRendererContext; import org.lobobrowser.html.gui.HtmlPanel; import org.w3c.dom.Document; /** * The <code>SimpleBrowserFrame</code> class implements the * {@link org.lobobrowser.html.BrowserFrame} interface. It represents a browser * frame component. * * @see HtmlRendererContext#createBrowserFrame() */ public class SimpleBrowserFrame extends HtmlPanel implements BrowserFrame { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; /** The {@link HtmlRendererContext} associated with the browser frame. */ private final HtmlRendererContext rcontext; /** The parent rcontext. */ private final HtmlRendererContext parentRcontext; /** * Instantiates a new simple browser frame. * * @param parentRcontext * the parent rcontext */ public SimpleBrowserFrame(HtmlRendererContext parentRcontext) { this.parentRcontext = parentRcontext; this.rcontext = this.createHtmlRendererContext(parentRcontext); } /** * Creates the {@link HtmlRendererContext} associated with this browser * frame. Override to use a specialized instance. * * @param parentRcontext * The parent context. * @return the html renderer context */ protected HtmlRendererContext createHtmlRendererContext(HtmlRendererContext parentRcontext) { return new SimpleHtmlRendererContext(this, parentRcontext); } /* * (non-Javadoc) * * @see org.lobobrowser.html.BrowserFrame#getHtmlRendererContext() */ @Override public HtmlRendererContext getHtmlRendererContext() { return this.rcontext; } /* * (non-Javadoc) * * @see org.lobobrowser.html.BrowserFrame#getComponent() */ @Override public Component getComponent() { return this; } /* * (non-Javadoc) * * @see org.lobobrowser.html.BrowserFrame#loadURL(java.net.URL) */ @Override public void loadURL(URL url) { this.rcontext.navigate(url, "_this"); } /* * (non-Javadoc) * * @see org.lobobrowser.html.BrowserFrame#getContentDocument() */ @Override public Document getContentDocument() { return (Document) this.getRootNode(); } /** * Gets the parent html renderer context. * * @return the parent html renderer context */ public HtmlRendererContext getParentHtmlRendererContext() { return this.parentRcontext; } /* * (non-Javadoc) * * @see org.lobobrowser.html.gui.HtmlPanel#setDefaultMarginInsets(java.awt. * Insets) */ @Override public void setDefaultMarginInsets(Insets insets) { // Current implementation is the frame HtmlPanel. super.setDefaultMarginInsets(insets); } /* * (non-Javadoc) * * @see org.lobobrowser.html.gui.HtmlPanel#setDefaultOverflowX(int) */ @Override public void setDefaultOverflowX(int overflowX) { super.setDefaultOverflowX(overflowX); } /* * (non-Javadoc) * * @see org.lobobrowser.html.gui.HtmlPanel#setDefaultOverflowY(int) */ @Override public void setDefaultOverflowY(int overflowY) { super.setDefaultOverflowY(overflowY); } }