Class 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 class  TreeViewer.DefaultTreeTextProvider  
      private static class  TreeViewer.EmptyIcon  
      private static class  TreeViewer.TreeNodeWrapper  
      static class  TreeViewer.VariableExtentProvide  
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • 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
      void addHighlightedNodes​(java.util.Collection<Tree> nodes)
      Slow for big lists of highlighted nodes
      private static void fillTree​(TreeViewer.TreeNodeWrapper node, Tree tree, TreeViewer viewer)  
      protected void generateBox​(java.io.Writer writer, Tree parent)  
      protected void generateEdges​(java.io.Writer writer, Tree parent)  
      private static java.io.File generateNonExistingFile​(java.lang.String extension)  
      private static void generatePNGFile​(TreeViewer viewer, javax.swing.JFrame dialog)  
      private static void generateSVGFile​(TreeViewer viewer, javax.swing.JFrame dialog)  
      int getArcSize()  
      java.awt.Color getBorderColor()  
      protected java.awt.geom.Rectangle2D.Double getBoundsOfNode​(Tree node)  
      java.awt.Color getBoxColor()  
      protected java.awt.Graphics getComponentGraphics​(java.awt.Graphics g)  
      private static javax.swing.JFileChooser getFileChooser​(java.lang.String fileEnding, java.lang.String description)  
      java.awt.Font getFont()  
      java.awt.Color getHighlightedBoxColor()  
      protected int getHighlightedNodeIndex​(Tree node)  
      double getScale()  
      private java.awt.Dimension getScaledTreeSize()  
      protected java.lang.String getText​(Tree tree)  
      java.awt.Color getTextColor()  
      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.
      TreeTextProvider getTreeTextProvider()  
      boolean getUseCurvedEdges()  
      protected boolean isHighlighted​(Tree node)  
      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)  
      java.util.concurrent.Future<javax.swing.JFrame> open()  
      void paint​(java.awt.Graphics g)  
      protected void paintBox​(java.awt.Graphics g, Tree tree)  
      protected void paintEdges​(java.awt.Graphics g, Tree parent)  
      private void paintSVG​(java.io.Writer writer)  
      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)  
      void removeHighlightedNodes​(java.util.Collection<Tree> nodes)  
      void save​(java.lang.String fileName)  
      void setArcSize​(int arcSize)  
      void setBorderColor​(java.awt.Color borderColor)  
      void setBoxColor​(java.awt.Color boxColor)  
      void setFont​(java.awt.Font font)  
      void setFontName​(java.lang.String name)  
      void setFontSize​(int sz)  
      void setHighlightedBoxColor​(java.awt.Color highlightedBoxColor)  
      void setRuleNames​(java.util.List<java.lang.String> ruleNames)  
      void setScale​(double scale)  
      void setTextColor​(java.awt.Color textColor)  
      void setTree​(Tree root)  
      void setTreeTextProvider​(TreeTextProvider treeTextProvider)  
      void setUseCurvedEdges​(boolean useCurvedEdges)  
      protected static javax.swing.JFrame showInDialog​(TreeViewer viewer)  
      void text​(java.awt.Graphics g, java.lang.String s, int x, int y)  
      private static java.lang.String text​(java.lang.String x, java.lang.String y, java.lang.String style, java.lang.String text)  
      private void updatePreferredSize()  
      • 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • LIGHT_RED

        public static final java.awt.Color LIGHT_RED
      • 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:
        paint in class javax.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:
        getComponentGraphics in class javax.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)
      • 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.IOException
        javax.print.PrintException
      • getBoundsOfNode

        protected java.awt.geom.Rectangle2D.Double getBoundsOfNode​(Tree node)
      • getText

        protected java.lang.String getText​(Tree tree)
      • 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:
        getFont in interface java.awt.MenuContainer
        Overrides:
        getFont in class java.awt.Component
      • setFont

        public void setFont​(java.awt.Font font)
        Overrides:
        setFont in class javax.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 of TreeLayoutAdaptor
      • getScale

        public double getScale()
      • setScale

        public void setScale​(double scale)
      • setRuleNames

        public void setRuleNames​(java.util.List<java.lang.String> ruleNames)