Class BasicRenderer

java.lang.Object
org.eclipse.swt.widgets.Widget
org.eclipse.swt.widgets.Control
org.eclipse.swt.widgets.Scrollable
org.eclipse.swt.widgets.Composite
org.eclipse.swt.widgets.Canvas
org.xhtmlrenderer.swt.BasicRenderer
All Implemented Interfaces:
EventListener, org.eclipse.swt.events.PaintListener, org.eclipse.swt.graphics.Drawable, org.eclipse.swt.internal.SWTEventListener, org.xhtmlrenderer.extend.FSCanvas, org.xhtmlrenderer.extend.UserInterface
Direct Known Subclasses:
SWTXHTMLRenderer

public class BasicRenderer extends org.eclipse.swt.widgets.Canvas implements org.eclipse.swt.events.PaintListener, org.xhtmlrenderer.extend.UserInterface, org.xhtmlrenderer.extend.FSCanvas
Renders XML+CSS using SWT in a widget (a Composite). Scrollbars are handled automatically.
Author:
Vianney le Clément
  • Field Summary

    Fields inherited from class org.eclipse.swt.widgets.Control

    view
  • Constructor Summary

    Constructors
    Constructor
    Description
    BasicRenderer(org.eclipse.swt.widgets.Composite parent, int style)
     
    BasicRenderer(org.eclipse.swt.widgets.Composite parent, int style, org.xhtmlrenderer.extend.UserAgentCallback uac)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addDocumentListener(org.xhtmlrenderer.event.DocumentListener listener)
     
    org.eclipse.swt.graphics.Point
    computeSize(int wHint, int hHint, boolean changed)
     
    void
    Decrements all rendered fonts on the current document by the current scaling factor for the panel.
    protected void
     
    protected void
    doRender(org.xhtmlrenderer.render.RenderingContext c)
     
    org.xhtmlrenderer.render.Box
    find(int x, int y)
     
    protected void
     
    protected void
     
    protected void
     
     
     
     
     
     
     
    protected Rectangle
    getInitialExtents(org.xhtmlrenderer.layout.LayoutContext c)
     
    org.xhtmlrenderer.layout.LayoutContext
     
    float
    Returns the maximum font scaling that may be applied, e.g. 3 times assigned font size.
    float
    Returns the minimum font scaling that may be applied, e.g. 0.5 times assigned font size.
    org.eclipse.swt.graphics.Point
     
    org.xhtmlrenderer.render.Box
     
    org.xhtmlrenderer.layout.Layer
     
    org.eclipse.swt.graphics.Point
     
    org.xhtmlrenderer.layout.SharedContext
     
    int
     
    int
     
    void
    Increments all rendered fonts on the current document by the current scaling factor for the panel.
    void
    Invalidate the whole view.
    void
    invalidate(org.eclipse.swt.graphics.Rectangle rect)
    Redraw only rect.
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    protected Document
     
    protected org.xhtmlrenderer.layout.LayoutContext
     
    protected org.xhtmlrenderer.render.RenderingContext
    newRenderingContext(org.eclipse.swt.graphics.GC gc)
     
    void
    paintControl(org.eclipse.swt.events.PaintEvent e)
     
    void
    Do a full relayout and redraw
    void
    Reload the current document.
    void
    removeDocumentListener(org.xhtmlrenderer.event.DocumentListener listener)
     
    void
    Resets all rendered fonts on the current document to the font size specified in the document's styling instructions.
    protected void
    scrollTo(org.eclipse.swt.graphics.Point pt)
     
    void
    setActive_element(Element active_element)
     
    void
     
    void
    setDocument(InputStream stream, String url, org.xhtmlrenderer.extend.NamespaceHandler nsh)
     
    void
     
    void
    setDocument(String url, org.xhtmlrenderer.extend.NamespaceHandler nsh)
     
    void
     
    void
    setDocument(Document doc, String url, org.xhtmlrenderer.extend.NamespaceHandler nsh)
     
    void
    setDocumentFromString(String content, String url, org.xhtmlrenderer.extend.NamespaceHandler nsh)
     
    protected void
    Sets the new current document, where the new document is located relative, e.g. using a relative URL.
    void
    setFocus_element(Element focus_element)
     
    void
    setFontScalingFactor(float scaling)
    Sets the scaling factor used by incrementFontSize() and decrementFontSize()--both scale the font up or down by this scaling factor.
    void
    setHovered_element(Element hovered_element)
     
    void
    setLayout(org.eclipse.swt.widgets.Layout layout)
    A Renderer has no layout!
    void
    setMaxFontScale(float f)
    Sets the maximum font scaling that may be applied, e.g. 3 times assigned font size.
    void
    setMinFontScale(float f)
    Sets the minimum font scaling that may be applied, e.g. 3 times assigned font size.
    void
    setOrigin(org.eclipse.swt.graphics.Point pt)
    Set the origin of the view.
    void
    setPrint(boolean print)
     
    protected boolean
    Update the scrollbars

    Methods inherited from class org.eclipse.swt.widgets.Canvas

    drawBackground, getCaret, getIME, scroll, setCaret, setFont, setIME

    Methods inherited from class org.eclipse.swt.widgets.Composite

    changed, checkSubclass, drawBackground, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setFocus, setLayoutDeferred, setTabList

    Methods inherited from class org.eclipse.swt.widgets.Scrollable

    computeTrim, getClientArea, getHorizontalBar, getVerticalBar

    Methods inherited from class org.eclipse.swt.widgets.Control

    addControlListener, addDragDetectListener, addFocusListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addMouseMoveListener, addMouseTrackListener, addMouseWheelListener, addPaintListener, addTraverseListener, computeSize, dragDetect, dragDetect, forceFocus, getAccessible, getBackground, getBackgroundImage, getBorderWidth, getBounds, getCursor, getDragDetect, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMenu, getMonitor, getParent, getRegion, getShell, getSize, getToolTipText, getVisible, internal_dispose_GC, internal_new_GC, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, print, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeMouseMoveListener, removeMouseTrackListener, removeMouseWheelListener, removePaintListener, removeTraverseListener, setBackground, setBackgroundImage, setBounds, setBounds, setCapture, setCursor, setDragDetect, setEnabled, setForeground, setLayoutData, setLocation, setLocation, setMenu, setParent, setRedraw, setRegion, setSize, setSize, setToolTipText, setVisible, toControl, toControl, toDisplay, toDisplay, traverse, traverse, traverse, update

    Methods inherited from class org.eclipse.swt.widgets.Widget

    addDisposeListener, addListener, checkWidget, dispose, getData, getData, getDisplay, getListeners, getStyle, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, setData, toString

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • BasicRenderer

      public BasicRenderer(org.eclipse.swt.widgets.Composite parent, int style)
    • BasicRenderer

      public BasicRenderer(org.eclipse.swt.widgets.Composite parent, int style, org.xhtmlrenderer.extend.UserAgentCallback uac)
  • Method Details

    • addDocumentListener

      public void addDocumentListener(org.xhtmlrenderer.event.DocumentListener listener)
    • removeDocumentListener

      public void removeDocumentListener(org.xhtmlrenderer.event.DocumentListener listener)
    • fireDocumentLoaded

      protected void fireDocumentLoaded()
    • fireOnLayoutException

      protected void fireOnLayoutException(Throwable t)
    • fireOnRenderException

      protected void fireOnRenderException(Throwable t)
    • setLayout

      public void setLayout(org.eclipse.swt.widgets.Layout layout)
      A Renderer has no layout!
      Overrides:
      setLayout in class org.eclipse.swt.widgets.Composite
    • relayout

      public void relayout()
      Do a full relayout and redraw
    • invalidate

      public void invalidate()
      Invalidate the whole view. Redraw everything.
    • invalidate

      public void invalidate(org.eclipse.swt.graphics.Rectangle rect)
      Redraw only rect.
      Parameters:
      rect - the rectangle
    • newLayoutcontext

      protected org.xhtmlrenderer.layout.LayoutContext newLayoutcontext()
      Returns:
      a new LayoutContext
    • newRenderingContext

      protected org.xhtmlrenderer.render.RenderingContext newRenderingContext(org.eclipse.swt.graphics.GC gc)
      Returns:
      a new RenderingContext
    • getInitialExtents

      protected Rectangle getInitialExtents(org.xhtmlrenderer.layout.LayoutContext c)
    • getScreenSize

      public org.eclipse.swt.graphics.Point getScreenSize()
      Returns:
      the size of the drawable screen
    • computeSize

      public org.eclipse.swt.graphics.Point computeSize(int wHint, int hHint, boolean changed)
      Overrides:
      computeSize in class org.eclipse.swt.widgets.Composite
    • getFixedRectangle

      public Rectangle getFixedRectangle()
      Specified by:
      getFixedRectangle in interface org.xhtmlrenderer.extend.FSCanvas
    • getX

      public int getX()
      Specified by:
      getX in interface org.xhtmlrenderer.extend.FSCanvas
    • getY

      public int getY()
      Specified by:
      getY in interface org.xhtmlrenderer.extend.FSCanvas
    • getOrigin

      public org.eclipse.swt.graphics.Point getOrigin()
      Returns:
      the origin of the view
    • setOrigin

      public void setOrigin(org.eclipse.swt.graphics.Point pt)
      Set the origin of the view. NOTE: this won't be done immediately.
    • scrollTo

      protected void scrollTo(org.eclipse.swt.graphics.Point pt)
    • updateScrollBars

      protected boolean updateScrollBars()
      Update the scrollbars
      Returns:
      true if we need to relayout the whole thing
    • paintControl

      public void paintControl(org.eclipse.swt.events.PaintEvent e)
      Specified by:
      paintControl in interface org.eclipse.swt.events.PaintListener
    • doLayout

      protected void doLayout()
    • doRender

      protected void doRender(org.xhtmlrenderer.render.RenderingContext c)
    • getDocument

      public Document getDocument()
    • reload

      public void reload()
      Reload the current document.
    • setDocument

      public void setDocument(Document doc, String url, org.xhtmlrenderer.extend.NamespaceHandler nsh)
    • setDocument

      public void setDocument(InputStream stream, String url, org.xhtmlrenderer.extend.NamespaceHandler nsh)
    • setDocumentFromString

      public void setDocumentFromString(String content, String url, org.xhtmlrenderer.extend.NamespaceHandler nsh)
    • setDocument

      public void setDocument(Document doc, String url)
    • setDocument

      public void setDocument(String url)
    • setDocument

      public void setDocument(String url, org.xhtmlrenderer.extend.NamespaceHandler nsh)
    • setDocument

      public void setDocument(InputStream stream, String url)
    • setDocumentRelative

      protected void setDocumentRelative(String filename)
      Sets the new current document, where the new document is located relative, e.g. using a relative URL.
      Parameters:
      filename - The new document to load
    • loadDocument

      protected Document loadDocument(String uri)
    • getDocumentTitle

      public String getDocumentTitle()
    • getRootBox

      public org.xhtmlrenderer.render.Box getRootBox()
    • getRootLayer

      public org.xhtmlrenderer.layout.Layer getRootLayer()
    • getSharedContext

      public org.xhtmlrenderer.layout.SharedContext getSharedContext()
    • getLayoutContext

      public org.xhtmlrenderer.layout.LayoutContext getLayoutContext()
    • find

      public org.xhtmlrenderer.render.Box find(int x, int y)
    • isHover

      public boolean isHover(Element e)
      Specified by:
      isHover in interface org.xhtmlrenderer.extend.UserInterface
    • getHovered_element

      public Element getHovered_element()
    • setHovered_element

      public void setHovered_element(Element hovered_element)
    • isActive

      public boolean isActive(Element e)
      Specified by:
      isActive in interface org.xhtmlrenderer.extend.UserInterface
    • getActive_element

      public Element getActive_element()
    • setActive_element

      public void setActive_element(Element active_element)
    • isFocus

      public boolean isFocus(Element e)
      Specified by:
      isFocus in interface org.xhtmlrenderer.extend.UserInterface
    • getFocus_element

      public Element getFocus_element()
    • setFocus_element

      public void setFocus_element(Element focus_element)
    • isPrint

      public boolean isPrint()
    • setPrint

      public void setPrint(boolean print)
    • setFontScalingFactor

      public void setFontScalingFactor(float scaling)
      Sets the scaling factor used by incrementFontSize() and decrementFontSize()--both scale the font up or down by this scaling factor. The scaling roughly modifies the font size as a multiplier or divisor. A scaling factor of 1.2 applied against a font size of 10pt results in a scaled font of 12pt. The default scaling factor is 1.2F.
    • incrementFontSize

      public void incrementFontSize()
      Increments all rendered fonts on the current document by the current scaling factor for the panel. Scaling applies cumulatively, which means that multiple calls to this method scale fonts larger and larger by applying the current scaling factor against itself. You can modify the scaling factor by setFontScalingFactor(float), and reset to the document's specified font size with resetFontSize().
    • resetFontSize

      public void resetFontSize()
      Resets all rendered fonts on the current document to the font size specified in the document's styling instructions.
    • decrementFontSize

      public void decrementFontSize()
      Decrements all rendered fonts on the current document by the current scaling factor for the panel. Scaling applies cumulatively, which means that multiple calls to this method scale fonts smaller and smaller by applying the current scaling factor against itself. You can modify the scaling factor by setFontScalingFactor(float), and reset to the document's specified font size with resetFontSize().
    • getMaxFontScale

      public float getMaxFontScale()
      Returns the maximum font scaling that may be applied, e.g. 3 times assigned font size.
    • getMinFontScale

      public float getMinFontScale()
      Returns the minimum font scaling that may be applied, e.g. 0.5 times assigned font size.
    • setMaxFontScale

      public void setMaxFontScale(float f)
      Sets the maximum font scaling that may be applied, e.g. 3 times assigned font size. Calling incrementFontSize() after this scale has been reached doesn't have an effect.
    • setMinFontScale

      public void setMinFontScale(float f)
      Sets the minimum font scaling that may be applied, e.g. 3 times assigned font size. Calling decrementFontSize() after this scale has been reached doesn't have an effect.