Package org.lobobrowser.html.gui
Class HtmlBlockPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- org.lobobrowser.html.gui.HtmlBlockPanel
-
- All Implemented Interfaces:
java.awt.datatransfer.ClipboardOwner,java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,NodeRenderer,RenderableContainer
public class HtmlBlockPanel extends javax.swing.JComponent implements NodeRenderer, RenderableContainer, java.awt.datatransfer.ClipboardOwner
A Swing component that renders a HTML block, given by a DOM root or an internal element, typically a DIV. This component cannot render FRAMESETs.HtmlBlockPanelis used byHtmlPanelwhenever the DOM is determined not to be a FRAMESET.- Author:
- J. H. S.
- See Also:
HtmlPanel,FrameSetPanel, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected java.awt.InsetsdefaultMarginInsetsprotected intdefaultOverflowXprotected intdefaultOverflowYprotected RenderableSpotendSelectionprotected FrameContextframeContextprotected intpreferredWidthprotected RBlockrblockprotected HtmlRendererContextrcontextprotected RenderableSpotstartSelectionprotected UserAgentContextucontext-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description HtmlBlockPanel(java.awt.Color background, boolean opaque, UserAgentContext pcontext, HtmlRendererContext rcontext, FrameContext frameContext)HtmlBlockPanel(UserAgentContext pcontext, HtmlRendererContext rcontext, FrameContext frameContext)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.awt.ComponentaddComponent(java.awt.Component component)voidaddDelayedPair(DelayedPair pair)voidclearDelayedPairs()booleancopy()voiddoLayout()voidfinalize()voidfocus()java.awt.InsetsgetDefaultMarginInsets()intgetDefaultOverflowX()intgetDefaultOverflowY()java.util.CollectiongetDelayedPairs()intgetFirstLineHeight()java.awt.PointgetGUIPoint(int clientX, int clientY)java.awt.RectanglegetNodeBounds(org.w3c.dom.Node node, boolean relativeToScrollable)Gets the rectangular bounds of the given node.java.awt.ColorgetPaintedBackgroundColor()RenderableContainergetParentContainer()java.awt.DimensiongetPreferredSize()If the preferred size has been set withJComponent.setPreferredSize(Dimension), then that size is returned.NodeImplgetRootNode()BoundableRenderablegetRootRenderable()org.w3c.dom.NodegetSelectionNode()java.lang.StringgetSelectionText()booleanhasSelection()voidinvalidateLayoutUpTree()booleanisSelectionAvailable()voidlostOwnership(java.awt.datatransfer.Clipboard arg0, java.awt.datatransfer.Transferable arg1)voidpaint(java.awt.Graphics g)protected voidpaintChildren(java.awt.Graphics g)voidrelayout()voidrepaint(ModelNode modelNode)Implementation of UINode.repaint().protected voidrevalidatePanel()voidscrollBy(int xOffset, int yOffset)voidscrollTo(java.awt.Rectangle bounds, boolean xIfNeeded, boolean yIfNeeded)Scrolls the body area to the given location.voidscrollTo(org.w3c.dom.Node node)Scrolls the body area to the node given, if it is part of the current document.voidsetDefaultMarginInsets(java.awt.Insets defaultMarginInsets)Sets the default margin insets.voidsetDefaultOverflowX(int defaultOverflowX)voidsetDefaultOverflowY(int defaultOverflowY)voidsetPreferredWidth(int width)AllowsgetPreferredSize()to render the HTML block in order to determine the preferred size of this component.voidsetRootNode(NodeImpl node)Sets the root node to render.voidsetSelectionEnd(RenderableSpot rpoint)voidsetSelectionStart(RenderableSpot rpoint)voidupdateAllWidgetBounds()protected voidvalidateAll()-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.lobobrowser.html.renderer.RenderableContainer
repaint
-
-
-
-
Field Detail
-
frameContext
protected final FrameContext frameContext
-
ucontext
protected final UserAgentContext ucontext
-
rcontext
protected final HtmlRendererContext rcontext
-
startSelection
protected RenderableSpot startSelection
-
endSelection
protected RenderableSpot endSelection
-
rblock
protected RBlock rblock
-
preferredWidth
protected int preferredWidth
-
defaultMarginInsets
protected java.awt.Insets defaultMarginInsets
-
defaultOverflowX
protected int defaultOverflowX
-
defaultOverflowY
protected int defaultOverflowY
-
-
Constructor Detail
-
HtmlBlockPanel
public HtmlBlockPanel(UserAgentContext pcontext, HtmlRendererContext rcontext, FrameContext frameContext)
-
HtmlBlockPanel
public HtmlBlockPanel(java.awt.Color background, boolean opaque, UserAgentContext pcontext, HtmlRendererContext rcontext, FrameContext frameContext)
-
-
Method Detail
-
scrollTo
public void scrollTo(java.awt.Rectangle bounds, boolean xIfNeeded, boolean yIfNeeded)Scrolls the body area to the given location.This method should be called from the GUI thread.
- Parameters:
bounds- The bounds in the scrollable block area that should become visible.xIfNeeded- If this parameter is true, scrolling will only occur if the requested bounds are not currently visible horizontally.yIfNeeded- If this parameter is true, scrolling will only occur if the requested bounds are not currently visible vertically.
-
scrollBy
public void scrollBy(int xOffset, int yOffset)
-
scrollTo
public void scrollTo(org.w3c.dom.Node node)
Scrolls the body area to the node given, if it is part of the current document.This method should be called from the GUI thread.
- Parameters:
node- A DOM node.
-
getNodeBounds
public java.awt.Rectangle getNodeBounds(org.w3c.dom.Node node, boolean relativeToScrollable)Gets the rectangular bounds of the given node.This method should be called from the GUI thread.
- Parameters:
node- A node in the current document.relativeToScrollable- Whether the bounds should be relative to the scrollable body area. Otherwise, they are relative to the root block (which is the essentially the same as being relative to thisHtmlBlockPanelminus Swing borders).
-
getRootRenderable
public BoundableRenderable getRootRenderable()
-
setPreferredWidth
public void setPreferredWidth(int width)
AllowsgetPreferredSize()to render the HTML block in order to determine the preferred size of this component. Note thatgetPreferredSize()is a potentially time-consuming operation if the preferred width is set.- Parameters:
width- The preferred blocked width. Use-1to unset.
-
getPreferredSize
public java.awt.Dimension getPreferredSize()
If the preferred size has been set withJComponent.setPreferredSize(Dimension), then that size is returned. Otherwise a preferred size is calculated by rendering the HTML DOM, provided one is available and a preferred width other than-1has been set withsetPreferredWidth(int). An arbitrary preferred size is returned in other scenarios.- Overrides:
getPreferredSizein classjavax.swing.JComponent
-
finalize
public void finalize() throws java.lang.Throwable- Overrides:
finalizein classjava.lang.Object- Throws:
java.lang.Throwable
-
copy
public boolean copy()
-
getFirstLineHeight
public int getFirstLineHeight()
-
setSelectionEnd
public void setSelectionEnd(RenderableSpot rpoint)
-
setSelectionStart
public void setSelectionStart(RenderableSpot rpoint)
-
isSelectionAvailable
public boolean isSelectionAvailable()
-
getSelectionNode
public org.w3c.dom.Node getSelectionNode()
-
setRootNode
public void setRootNode(NodeImpl node)
Sets the root node to render. This method should be invoked in the GUI dispatch thread.- Specified by:
setRootNodein interfaceNodeRenderer
-
validateAll
protected void validateAll()
-
revalidatePanel
protected void revalidatePanel()
-
getRootNode
public NodeImpl getRootNode()
-
paint
public void paint(java.awt.Graphics g)
- Overrides:
paintin classjavax.swing.JComponent
-
doLayout
public void doLayout()
- Overrides:
doLayoutin classjava.awt.Container
-
repaint
public void repaint(ModelNode modelNode)
Implementation of UINode.repaint().
-
getSelectionText
public java.lang.String getSelectionText()
-
hasSelection
public boolean hasSelection()
-
paintChildren
protected void paintChildren(java.awt.Graphics g)
- Overrides:
paintChildrenin classjavax.swing.JComponent
-
getPaintedBackgroundColor
public java.awt.Color getPaintedBackgroundColor()
- Specified by:
getPaintedBackgroundColorin interfaceRenderableContainer
-
lostOwnership
public void lostOwnership(java.awt.datatransfer.Clipboard arg0, java.awt.datatransfer.Transferable arg1)- Specified by:
lostOwnershipin interfacejava.awt.datatransfer.ClipboardOwner
-
relayout
public void relayout()
- Specified by:
relayoutin interfaceRenderableContainer
-
invalidateLayoutUpTree
public void invalidateLayoutUpTree()
- Specified by:
invalidateLayoutUpTreein interfaceRenderableContainer
-
updateAllWidgetBounds
public void updateAllWidgetBounds()
- Specified by:
updateAllWidgetBoundsin interfaceRenderableContainer
-
getGUIPoint
public java.awt.Point getGUIPoint(int clientX, int clientY)- Specified by:
getGUIPointin interfaceRenderableContainer
-
focus
public void focus()
- Specified by:
focusin interfaceRenderableContainer
-
addDelayedPair
public void addDelayedPair(DelayedPair pair)
- Specified by:
addDelayedPairin interfaceRenderableContainer
-
getParentContainer
public RenderableContainer getParentContainer()
- Specified by:
getParentContainerin interfaceRenderableContainer
-
getDelayedPairs
public java.util.Collection getDelayedPairs()
- Specified by:
getDelayedPairsin interfaceRenderableContainer
-
clearDelayedPairs
public void clearDelayedPairs()
- Specified by:
clearDelayedPairsin interfaceRenderableContainer
-
addComponent
public java.awt.Component addComponent(java.awt.Component component)
- Specified by:
addComponentin interfaceRenderableContainer
-
getDefaultMarginInsets
public java.awt.Insets getDefaultMarginInsets()
-
setDefaultMarginInsets
public void setDefaultMarginInsets(java.awt.Insets defaultMarginInsets)
Sets the default margin insets. Note that in the root block, the margin behaves like padding.- Parameters:
defaultMarginInsets- The default margin insets.
-
getDefaultOverflowX
public int getDefaultOverflowX()
-
setDefaultOverflowX
public void setDefaultOverflowX(int defaultOverflowX)
-
getDefaultOverflowY
public int getDefaultOverflowY()
-
setDefaultOverflowY
public void setDefaultOverflowY(int defaultOverflowY)
-
-