Class DumbTextComponent

  • All Implemented Interfaces:
    java.awt.event.FocusListener, java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible
    Direct Known Subclasses:
    TransliteratingTextComponent

    public class DumbTextComponent
    extends java.awt.Canvas
    implements java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.FocusListener
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.awt.Canvas

        java.awt.Canvas.AccessibleAWTCanvas
      • 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
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addActionListener​(java.awt.event.ActionListener l)  
      void addTextListener​(java.awt.event.TextListener l)  
      (package private) void copy()  
      void drawSelection​(java.awt.Graphics g, java.lang.String lastSubstring)  
      private int findFittingBreak​(java.awt.FontMetrics fMtr, java.lang.String line, int width, java.text.BreakIterator breaker)
      LIU: Finds the longest substring that fits a given width composed of subunits returned by a BreakIterator.
      private int findLine​(int off, boolean start)  
      private void fixHex()  
      private void fixLineStarts​(int width)  
      void focusGained​(java.awt.event.FocusEvent e)  
      void focusLost​(java.awt.event.FocusEvent e)  
      protected int getKeyStart()  
      java.awt.Dimension getMaximumSize()  
      java.awt.Dimension getMinimumSize()  
      java.awt.Dimension getPreferredSize()  
      int getSelectionEnd()  
      int getSelectionStart()  
      java.lang.String getText()  
      protected void handleKeyTyped​(java.awt.event.KeyEvent e)  
      static java.lang.String hex​(char ch)  
      void insertText​(java.lang.String text)  
      boolean isEditable()  
      void keyPressed​(java.awt.event.KeyEvent e)  
      void keyReleased​(java.awt.event.KeyEvent e)  
      void keyTyped​(java.awt.event.KeyEvent e)  
      private int lineDelta​(int off, int delta)
      LIU: Given an offset into contents, moves up or down by lines, according to lineStarts[].
      void mouseClicked​(java.awt.event.MouseEvent e)  
      void mouseDragged​(java.awt.event.MouseEvent e)  
      void mouseEntered​(java.awt.event.MouseEvent e)  
      void mouseExited​(java.awt.event.MouseEvent e)  
      void mouseMoved​(java.awt.event.MouseEvent e)  
      void mousePressed​(java.awt.event.MouseEvent e)  
      void mouseReleased​(java.awt.event.MouseEvent e)  
      int nextLine​(java.awt.FontMetrics fMtr, int start, int width)  
      java.awt.Point offset2Point​(int off, boolean start, java.awt.Point p)  
      void paint​(java.awt.Graphics g)  
      void paint2​(java.awt.Graphics g)  
      (package private) void paintRect​(java.awt.Graphics g, int x, int y, int w, int h)  
      (package private) void paste()  
      Selection point2Offset​(java.awt.Point p, Selection o)  
      void removeActionListener​(java.awt.event.ActionListener l)  
      void removeTextListener​(java.awt.event.TextListener l)  
      void replaceRange​(java.lang.String s, int start, int end)  
      void select​(int start, int end)  
      void select​(int start, int end, boolean clickAfter)  
      void select​(Selection newSelection)  
      void select​(java.awt.event.MouseEvent e, boolean first)  
      void setBounds​(int x, int y, int w, int h)  
      void setEditable​(boolean b)  
      void setFont​(java.awt.Font font)  
      protected void setKeyStart​(int keyStart)  
      void setText​(java.lang.String text)  
      void setText2​(java.lang.String text)  
      void update​(java.awt.Graphics g)  
      protected void validateKeyStart()  
      int visibleWidth​(java.awt.FontMetrics fMtr, java.lang.String s)  
      • Methods inherited from class java.awt.Canvas

        addNotify, createBufferStrategy, createBufferStrategy, getAccessibleContext, getBufferStrategy
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAlignmentX, getAlignmentY, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, revalidate, setBackground, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setMixingCutoutShape, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, validate
      • Methods inherited from class java.lang.Object

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

      • serialVersionUID

        private static final long serialVersionUID
        For serialization
        See Also:
        Constant Field Values
      • DEBUG

        private static transient boolean DEBUG
      • contents

        private java.lang.String contents
      • activeStart

        private int activeStart
      • editable

        private boolean editable
      • tempSelection

        private transient Selection tempSelection
      • focus

        private transient boolean focus
      • lineBreaker

        private transient java.text.BreakIterator lineBreaker
      • wordBreaker

        private transient java.text.BreakIterator wordBreaker
      • charBreaker

        private transient java.text.BreakIterator charBreaker
      • lineAscent

        private transient int lineAscent
      • lineHeight

        private transient int lineHeight
      • lineLeading

        private transient int lineLeading
      • lastHeight

        private transient int lastHeight
      • lastWidth

        private transient int lastWidth
      • lineStarts

        private transient int[] lineStarts
      • lineCount

        private transient int lineCount
      • valid

        private transient boolean valid
      • fm

        private transient java.awt.FontMetrics fm
      • redoLines

        private transient boolean redoLines
      • doubleClick

        private transient boolean doubleClick
      • textListener

        private transient java.awt.event.TextListener textListener
      • selectionListener

        private transient java.awt.event.ActionListener selectionListener
      • cacheImage

        private transient java.awt.Image cacheImage
      • mySize

        private transient java.awt.Dimension mySize
      • xInset

        private transient int xInset
      • yInset

        private transient int yInset
      • startPoint

        private transient java.awt.Point startPoint
      • endPoint

        private transient java.awt.Point endPoint
      • caretPoint

        private transient java.awt.Point caretPoint
      • activePoint

        private transient java.awt.Point activePoint
      • pressed

        private transient boolean pressed
    • Constructor Detail

      • DumbTextComponent

        public DumbTextComponent()
    • Method Detail

      • addActionListener

        public void addActionListener​(java.awt.event.ActionListener l)
      • removeActionListener

        public void removeActionListener​(java.awt.event.ActionListener l)
      • addTextListener

        public void addTextListener​(java.awt.event.TextListener l)
      • removeTextListener

        public void removeTextListener​(java.awt.event.TextListener l)
      • mousePressed

        public void mousePressed​(java.awt.event.MouseEvent e)
        Specified by:
        mousePressed in interface java.awt.event.MouseListener
      • mouseDragged

        public void mouseDragged​(java.awt.event.MouseEvent e)
        Specified by:
        mouseDragged in interface java.awt.event.MouseMotionListener
      • mouseReleased

        public void mouseReleased​(java.awt.event.MouseEvent e)
        Specified by:
        mouseReleased in interface java.awt.event.MouseListener
      • mouseEntered

        public void mouseEntered​(java.awt.event.MouseEvent e)
        Specified by:
        mouseEntered in interface java.awt.event.MouseListener
      • mouseExited

        public void mouseExited​(java.awt.event.MouseEvent e)
        Specified by:
        mouseExited in interface java.awt.event.MouseListener
      • mouseClicked

        public void mouseClicked​(java.awt.event.MouseEvent e)
        Specified by:
        mouseClicked in interface java.awt.event.MouseListener
      • mouseMoved

        public void mouseMoved​(java.awt.event.MouseEvent e)
        Specified by:
        mouseMoved in interface java.awt.event.MouseMotionListener
      • focusGained

        public void focusGained​(java.awt.event.FocusEvent e)
        Specified by:
        focusGained in interface java.awt.event.FocusListener
      • focusLost

        public void focusLost​(java.awt.event.FocusEvent e)
        Specified by:
        focusLost in interface java.awt.event.FocusListener
      • select

        public void select​(java.awt.event.MouseEvent e,
                           boolean first)
      • keyPressed

        public void keyPressed​(java.awt.event.KeyEvent e)
        Specified by:
        keyPressed in interface java.awt.event.KeyListener
      • copy

        void copy()
      • paste

        void paste()
      • lineDelta

        private int lineDelta​(int off,
                              int delta)
        LIU: Given an offset into contents, moves up or down by lines, according to lineStarts[].
        Parameters:
        off - the offset into contents
        delta - how many lines to move up (< 0) or down (> 0)
        Returns:
        the new offset into contents
      • keyReleased

        public void keyReleased​(java.awt.event.KeyEvent e)
        Specified by:
        keyReleased in interface java.awt.event.KeyListener
      • keyTyped

        public void keyTyped​(java.awt.event.KeyEvent e)
        Specified by:
        keyTyped in interface java.awt.event.KeyListener
      • handleKeyTyped

        protected void handleKeyTyped​(java.awt.event.KeyEvent e)
      • setKeyStart

        protected void setKeyStart​(int keyStart)
      • validateKeyStart

        protected void validateKeyStart()
      • getKeyStart

        protected int getKeyStart()
      • setEditable

        public void setEditable​(boolean b)
      • isEditable

        public boolean isEditable()
      • select

        public void select​(Selection newSelection)
      • select

        public void select​(int start,
                           int end)
      • select

        public void select​(int start,
                           int end,
                           boolean clickAfter)
      • getSelectionStart

        public int getSelectionStart()
      • getSelectionEnd

        public int getSelectionEnd()
      • setBounds

        public void setBounds​(int x,
                              int y,
                              int w,
                              int h)
        Overrides:
        setBounds in class java.awt.Component
      • getPreferredSize

        public java.awt.Dimension getPreferredSize()
        Overrides:
        getPreferredSize in class java.awt.Component
      • getMaximumSize

        public java.awt.Dimension getMaximumSize()
        Overrides:
        getMaximumSize in class java.awt.Component
      • getMinimumSize

        public java.awt.Dimension getMinimumSize()
        Overrides:
        getMinimumSize in class java.awt.Component
      • setText

        public void setText​(java.lang.String text)
      • setText2

        public void setText2​(java.lang.String text)
      • insertText

        public void insertText​(java.lang.String text)
      • replaceRange

        public void replaceRange​(java.lang.String s,
                                 int start,
                                 int end)
      • getText

        public java.lang.String getText()
      • setFont

        public void setFont​(java.awt.Font font)
        Overrides:
        setFont in class java.awt.Component
      • update

        public void update​(java.awt.Graphics g)
        Overrides:
        update in class java.awt.Canvas
      • paint

        public void paint​(java.awt.Graphics g)
        Overrides:
        paint in class java.awt.Canvas
      • paint2

        public void paint2​(java.awt.Graphics g)
      • paintRect

        void paintRect​(java.awt.Graphics g,
                       int x,
                       int y,
                       int w,
                       int h)
      • drawSelection

        public void drawSelection​(java.awt.Graphics g,
                                  java.lang.String lastSubstring)
      • offset2Point

        public java.awt.Point offset2Point​(int off,
                                           boolean start,
                                           java.awt.Point p)
      • findLine

        private int findLine​(int off,
                             boolean start)
      • fixLineStarts

        private void fixLineStarts​(int width)
      • nextLine

        public int nextLine​(java.awt.FontMetrics fMtr,
                            int start,
                            int width)
      • findFittingBreak

        private int findFittingBreak​(java.awt.FontMetrics fMtr,
                                     java.lang.String line,
                                     int width,
                                     java.text.BreakIterator breaker)
        LIU: Finds the longest substring that fits a given width composed of subunits returned by a BreakIterator. If the smallest subunit is too long, returns 0.
        Parameters:
        fMtr - metrics to use
        line - the string to be fix into width
        width - line.substring(0, result) must be <= width
        breaker - the BreakIterator that will be used to find subunits
        Returns:
        maximum characters, at boundaries returned by breaker, that fit into width, or zero on failure
      • visibleWidth

        public int visibleWidth​(java.awt.FontMetrics fMtr,
                                java.lang.String s)
      • fixHex

        private void fixHex()
      • hex

        public static java.lang.String hex​(char ch)