Package org.antlr.v4.gui
Class TreeViewer
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- org.antlr.v4.gui.TreeViewer
-
- All Implemented Interfaces:
java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable
public class TreeViewer extends javax.swing.JComponent- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTreeViewer.DefaultTreeTextProviderprivate static classTreeViewer.EmptyIconprivate static classTreeViewer.TreeNodeWrapperstatic classTreeViewer.VariableExtentProvide-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description protected intarcSizeprotected java.awt.ColorborderColorprotected java.awt.ColorboxColorprivate static java.lang.StringDIALOG_DIVIDER_LOC_PREFS_KEYprivate static java.lang.StringDIALOG_HEIGHT_PREFS_KEYprivate static java.lang.StringDIALOG_VIEWER_SCALE_PREFS_KEYprivate static java.lang.StringDIALOG_WIDTH_PREFS_KEYprivate static java.lang.StringDIALOG_X_PREFS_KEYprivate static java.lang.StringDIALOG_Y_PREFS_KEYprotected java.awt.Fontfontprotected java.lang.StringfontNameprotected intfontSizeprotected intfontStyleprotected doublegapBetweenLevelsprotected doublegapBetweenNodesprotected java.awt.ColorhighlightedBoxColorprotected java.util.List<Tree>highlightedNodesstatic java.awt.ColorLIGHT_REDprotected intnodeHeightPaddingprotected intnodeWidthPaddingprotected doublescaleprotected java.awt.ColortextColorprotected org.abego.treelayout.TreeLayout<Tree>treeLayoutprotected TreeTextProvidertreeTextProviderprivate booleanuseCurvedEdges-
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 TreeViewer(java.util.List<java.lang.String> ruleNames, Tree tree)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddHighlightedNodes(java.util.Collection<Tree> nodes)Slow for big lists of highlighted nodesprivate static voidfillTree(TreeViewer.TreeNodeWrapper node, Tree tree, TreeViewer viewer)protected voidgenerateBox(java.io.Writer writer, Tree parent)protected voidgenerateEdges(java.io.Writer writer, Tree parent)private static java.io.FilegenerateNonExistingFile(java.lang.String extension)private static voidgeneratePNGFile(TreeViewer viewer, javax.swing.JFrame dialog)private static voidgenerateSVGFile(TreeViewer viewer, javax.swing.JFrame dialog)intgetArcSize()java.awt.ColorgetBorderColor()protected java.awt.geom.Rectangle2D.DoublegetBoundsOfNode(Tree node)java.awt.ColorgetBoxColor()protected java.awt.GraphicsgetComponentGraphics(java.awt.Graphics g)private static javax.swing.JFileChoosergetFileChooser(java.lang.String fileEnding, java.lang.String description)java.awt.FontgetFont()java.awt.ColorgetHighlightedBoxColor()protected intgetHighlightedNodeIndex(Tree node)doublegetScale()private java.awt.DimensiongetScaledTreeSize()protected java.lang.StringgetText(Tree tree)java.awt.ColorgetTextColor()protected org.abego.treelayout.TreeForTreeLayout<Tree>getTree()org.abego.treelayout.TreeForTreeLayout<Tree>getTreeLayoutAdaptor(Tree root)Get an adaptor for root that indicates how to walk ANTLR trees.TreeTextProvidergetTreeTextProvider()booleangetUseCurvedEdges()protected booleanisHighlighted(Tree node)private static java.lang.Stringline(java.lang.String x1, java.lang.String y1, java.lang.String x2, java.lang.String y2, java.lang.String style)java.util.concurrent.Future<javax.swing.JFrame>open()voidpaint(java.awt.Graphics g)protected voidpaintBox(java.awt.Graphics g, Tree tree)protected voidpaintEdges(java.awt.Graphics g, Tree parent)private voidpaintSVG(java.io.Writer writer)private static java.lang.Stringrect(java.lang.String x, java.lang.String y, java.lang.String width, java.lang.String height, java.lang.String style, java.lang.String extraAttributes)voidremoveHighlightedNodes(java.util.Collection<Tree> nodes)voidsave(java.lang.String fileName)voidsetArcSize(int arcSize)voidsetBorderColor(java.awt.Color borderColor)voidsetBoxColor(java.awt.Color boxColor)voidsetFont(java.awt.Font font)voidsetFontName(java.lang.String name)voidsetFontSize(int sz)voidsetHighlightedBoxColor(java.awt.Color highlightedBoxColor)voidsetRuleNames(java.util.List<java.lang.String> ruleNames)voidsetScale(double scale)voidsetTextColor(java.awt.Color textColor)voidsetTree(Tree root)voidsetTreeTextProvider(TreeTextProvider treeTextProvider)voidsetUseCurvedEdges(boolean useCurvedEdges)protected static javax.swing.JFrameshowInDialog(TreeViewer viewer)voidtext(java.awt.Graphics g, java.lang.String s, int x, int y)private static java.lang.Stringtext(java.lang.String x, java.lang.String y, java.lang.String style, java.lang.String text)private voidupdatePreferredSize()-
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, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, 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, paintChildren, 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, 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, doLayout, 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, 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
-
-
-
-
Field Detail
-
LIGHT_RED
public static final java.awt.Color LIGHT_RED
-
treeTextProvider
protected TreeTextProvider treeTextProvider
-
treeLayout
protected org.abego.treelayout.TreeLayout<Tree> treeLayout
-
highlightedNodes
protected java.util.List<Tree> highlightedNodes
-
fontName
protected java.lang.String fontName
-
fontStyle
protected int fontStyle
-
fontSize
protected int fontSize
-
font
protected java.awt.Font font
-
gapBetweenLevels
protected double gapBetweenLevels
-
gapBetweenNodes
protected double gapBetweenNodes
-
nodeWidthPadding
protected int nodeWidthPadding
-
nodeHeightPadding
protected int nodeHeightPadding
-
arcSize
protected int arcSize
-
scale
protected double scale
-
boxColor
protected java.awt.Color boxColor
-
highlightedBoxColor
protected java.awt.Color highlightedBoxColor
-
borderColor
protected java.awt.Color borderColor
-
textColor
protected java.awt.Color textColor
-
useCurvedEdges
private boolean useCurvedEdges
-
DIALOG_WIDTH_PREFS_KEY
private static final java.lang.String DIALOG_WIDTH_PREFS_KEY
- See Also:
- Constant Field Values
-
DIALOG_HEIGHT_PREFS_KEY
private static final java.lang.String DIALOG_HEIGHT_PREFS_KEY
- See Also:
- Constant Field Values
-
DIALOG_X_PREFS_KEY
private static final java.lang.String DIALOG_X_PREFS_KEY
- See Also:
- Constant Field Values
-
DIALOG_Y_PREFS_KEY
private static final java.lang.String DIALOG_Y_PREFS_KEY
- See Also:
- Constant Field Values
-
DIALOG_DIVIDER_LOC_PREFS_KEY
private static final java.lang.String DIALOG_DIVIDER_LOC_PREFS_KEY
- See Also:
- Constant Field Values
-
DIALOG_VIEWER_SCALE_PREFS_KEY
private static final java.lang.String DIALOG_VIEWER_SCALE_PREFS_KEY
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
TreeViewer
public TreeViewer(java.util.List<java.lang.String> ruleNames, Tree tree)
-
-
Method Detail
-
updatePreferredSize
private void updatePreferredSize()
-
getUseCurvedEdges
public boolean getUseCurvedEdges()
-
setUseCurvedEdges
public void setUseCurvedEdges(boolean useCurvedEdges)
-
paintEdges
protected void paintEdges(java.awt.Graphics g, Tree parent)
-
paintBox
protected void paintBox(java.awt.Graphics g, Tree tree)
-
text
public void text(java.awt.Graphics g, java.lang.String s, int x, int y)
-
paint
public void paint(java.awt.Graphics g)
- Overrides:
paintin classjavax.swing.JComponent
-
generateEdges
protected void generateEdges(java.io.Writer writer, Tree parent) throws java.io.IOException- Throws:
java.io.IOException
-
generateBox
protected void generateBox(java.io.Writer writer, Tree parent) throws java.io.IOException- Throws:
java.io.IOException
-
line
private static java.lang.String line(java.lang.String x1, java.lang.String y1, java.lang.String x2, java.lang.String y2, java.lang.String style)
-
rect
private static java.lang.String rect(java.lang.String x, java.lang.String y, java.lang.String width, java.lang.String height, java.lang.String style, java.lang.String extraAttributes)
-
text
private static java.lang.String text(java.lang.String x, java.lang.String y, java.lang.String style, java.lang.String text)
-
paintSVG
private void paintSVG(java.io.Writer writer) throws java.io.IOException- Throws:
java.io.IOException
-
getComponentGraphics
protected java.awt.Graphics getComponentGraphics(java.awt.Graphics g)
- Overrides:
getComponentGraphicsin classjavax.swing.JComponent
-
showInDialog
protected static javax.swing.JFrame showInDialog(TreeViewer viewer)
-
generatePNGFile
private static void generatePNGFile(TreeViewer viewer, javax.swing.JFrame dialog)
-
getFileChooser
private static javax.swing.JFileChooser getFileChooser(java.lang.String fileEnding, java.lang.String description)
-
generateSVGFile
private static void generateSVGFile(TreeViewer viewer, javax.swing.JFrame dialog)
-
generateNonExistingFile
private static java.io.File generateNonExistingFile(java.lang.String extension)
-
fillTree
private static void fillTree(TreeViewer.TreeNodeWrapper node, Tree tree, TreeViewer viewer)
-
getScaledTreeSize
private java.awt.Dimension getScaledTreeSize()
-
open
public java.util.concurrent.Future<javax.swing.JFrame> open()
-
save
public void save(java.lang.String fileName) throws java.io.IOException, javax.print.PrintException- Throws:
java.io.IOExceptionjavax.print.PrintException
-
getBoundsOfNode
protected java.awt.geom.Rectangle2D.Double getBoundsOfNode(Tree node)
-
getText
protected java.lang.String getText(Tree tree)
-
getTreeTextProvider
public TreeTextProvider getTreeTextProvider()
-
setTreeTextProvider
public void setTreeTextProvider(TreeTextProvider treeTextProvider)
-
setFontSize
public void setFontSize(int sz)
-
setFontName
public void setFontName(java.lang.String name)
-
addHighlightedNodes
public void addHighlightedNodes(java.util.Collection<Tree> nodes)
Slow for big lists of highlighted nodes
-
removeHighlightedNodes
public void removeHighlightedNodes(java.util.Collection<Tree> nodes)
-
isHighlighted
protected boolean isHighlighted(Tree node)
-
getHighlightedNodeIndex
protected int getHighlightedNodeIndex(Tree node)
-
getFont
public java.awt.Font getFont()
- Specified by:
getFontin interfacejava.awt.MenuContainer- Overrides:
getFontin classjava.awt.Component
-
setFont
public void setFont(java.awt.Font font)
- Overrides:
setFontin classjavax.swing.JComponent
-
getArcSize
public int getArcSize()
-
setArcSize
public void setArcSize(int arcSize)
-
getBoxColor
public java.awt.Color getBoxColor()
-
setBoxColor
public void setBoxColor(java.awt.Color boxColor)
-
getHighlightedBoxColor
public java.awt.Color getHighlightedBoxColor()
-
setHighlightedBoxColor
public void setHighlightedBoxColor(java.awt.Color highlightedBoxColor)
-
getBorderColor
public java.awt.Color getBorderColor()
-
setBorderColor
public void setBorderColor(java.awt.Color borderColor)
-
getTextColor
public java.awt.Color getTextColor()
-
setTextColor
public void setTextColor(java.awt.Color textColor)
-
getTree
protected org.abego.treelayout.TreeForTreeLayout<Tree> getTree()
-
setTree
public void setTree(Tree root)
-
getTreeLayoutAdaptor
public org.abego.treelayout.TreeForTreeLayout<Tree> getTreeLayoutAdaptor(Tree root)
Get an adaptor for root that indicates how to walk ANTLR trees. Override to change the adapter from the default ofTreeLayoutAdaptor
-
getScale
public double getScale()
-
setScale
public void setScale(double scale)
-
setRuleNames
public void setRuleNames(java.util.List<java.lang.String> ruleNames)
-
-