org.rosuda.JGR.toolkit
Class SyntaxArea

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.text.JTextComponent
                  extended by javax.swing.JEditorPane
                      extended by javax.swing.JTextPane
                          extended by org.rosuda.JGR.toolkit.SyntaxArea
All Implemented Interfaces:
java.awt.dnd.DropTargetListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.CaretListener, javax.swing.Scrollable
Direct Known Subclasses:
SyntaxInput

public class SyntaxArea
extends javax.swing.JTextPane
implements javax.swing.event.CaretListener, java.awt.dnd.DropTargetListener

SyntaxArea - extends JTextPane and provides bracketmatching.

Author:
Markus Helbig RoSuDa 2003 - 2004
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JEditorPane
javax.swing.JEditorPane.AccessibleJEditorPane, javax.swing.JEditorPane.AccessibleJEditorPaneHTML, javax.swing.JEditorPane.JEditorPaneAccessibleHypertextSupport
 
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent
javax.swing.text.JTextComponent.AccessibleJTextComponent, javax.swing.text.JTextComponent.DropLocation, javax.swing.text.JTextComponent.KeyBinding
 
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
 
Field Summary
 
Fields inherited from class javax.swing.JEditorPane
HONOR_DISPLAY_PROPERTIES, W3C_LENGTH_UNITS
 
Fields inherited from class javax.swing.text.JTextComponent
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
SyntaxArea()
          SyntaxArea, with highlighting matching brackets
 
Method Summary
 void append(java.lang.String str)
          Append text.
 void append(java.lang.String str, javax.swing.text.AttributeSet attr)
          Append text with supplied attributeset.
 void caretUpdate(javax.swing.event.CaretEvent e)
          caretUpdate: handle caret event: if it was a bracket, highlight the matching one if there is one.
 void copy()
          Copy text.
 void cut()
          Cut text.
 void dragEnter(java.awt.dnd.DropTargetDragEvent evt)
          dragEnter: handle drag event.
 void dragExit(java.awt.dnd.DropTargetEvent evt)
          dragExit: handle drag event.
 void dragOver(java.awt.dnd.DropTargetDragEvent evt)
          dragOver: handle drag event.
 void drop(java.awt.dnd.DropTargetDropEvent evt)
          drop: handle drop target event: insert string representation of dragged object.
 void dropActionChanged(java.awt.dnd.DropTargetDragEvent evt)
          dropActionChanged: handle drop event.
 int getLineCount()
          Get amount of lines.
 int getLineEndOffset(int line)
           
 int getLineOfOffset(int offset)
           
 int getLineStartOffset(int line)
           
 boolean getScrollableTracksViewportWidth()
           
 java.lang.String getText()
          Get text.
 java.lang.String getText(int offs, int len)
          Get text from offset with supplied length.
 boolean getWordWrap()
          Set word wrap behavior.
 void highlight(javax.swing.text.JTextComponent textComp, java.lang.String pattern, int pos, org.rosuda.JGR.toolkit.SyntaxArea.HighlightPainter hipainter)
          Highlight pattern at position.
 void highlightParanthesisBackward(java.lang.String par, int pos)
          Highlight the corresponding brackets (backward).
 void highlightParanthesisForward(java.lang.String par, int pos)
          Highlight the corresponding brackets (forward).
 void insertAt(int offset, java.lang.String str)
          Insert text at position.
 boolean isEscaped(int pos)
          Checks wether character is escaped.
 boolean lastChar(int pos, java.lang.String cont)
          Check wether last character matches cont.
 void paste()
          Paste from clipboard.
 void removeHighlights()
          Remove current highlights.
 void setBounds(int x, int y, int width, int height)
           
 void setText(java.lang.String str)
          Set text.
 void setWordWrap(boolean wrap)
          Set word wrap behavior.
 
Methods inherited from class javax.swing.JTextPane
addStyle, createDefaultEditorKit, getCharacterAttributes, getInputAttributes, getLogicalStyle, getParagraphAttributes, getStyle, getStyledDocument, getStyledEditorKit, getUIClassID, insertComponent, insertIcon, paramString, removeStyle, replaceSelection, setCharacterAttributes, setDocument, setEditorKit, setLogicalStyle, setParagraphAttributes, setStyledDocument
 
Methods inherited from class javax.swing.JEditorPane
addHyperlinkListener, createEditorKitForContentType, fireHyperlinkUpdate, getAccessibleContext, getContentType, getEditorKit, getEditorKitClassNameForContentType, getEditorKitForContentType, getHyperlinkListeners, getPage, getPreferredSize, getScrollableTracksViewportHeight, getStream, read, registerEditorKitForContentType, registerEditorKitForContentType, removeHyperlinkListener, scrollToReference, setContentType, setEditorKitForContentType, setPage, setPage
 
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, fireCaretUpdate, getActions, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, print, print, print, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setUI, updateUI, viewToModel, write
 
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, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, 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
 
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, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SyntaxArea

public SyntaxArea()
SyntaxArea, with highlighting matching brackets

Method Detail

append

public void append(java.lang.String str)
Append text.


append

public void append(java.lang.String str,
                   javax.swing.text.AttributeSet attr)
Append text with supplied attributeset.


insertAt

public void insertAt(int offset,
                     java.lang.String str)
Insert text at position.


getText

public java.lang.String getText()
Get text.

Overrides:
getText in class javax.swing.JEditorPane

getText

public java.lang.String getText(int offs,
                                int len)
Get text from offset with supplied length.

Overrides:
getText in class javax.swing.text.JTextComponent

setText

public void setText(java.lang.String str)
Set text.

Overrides:
setText in class javax.swing.JEditorPane

cut

public void cut()
Cut text.

Overrides:
cut in class javax.swing.text.JTextComponent

copy

public void copy()
Copy text.

Overrides:
copy in class javax.swing.text.JTextComponent

paste

public void paste()
Paste from clipboard.

Overrides:
paste in class javax.swing.text.JTextComponent

getLineCount

public int getLineCount()
Get amount of lines.


getLineStartOffset

public int getLineStartOffset(int line)
                       throws javax.swing.text.BadLocationException
Throws:
javax.swing.text.BadLocationException

getLineEndOffset

public int getLineEndOffset(int line)
                     throws javax.swing.text.BadLocationException
Throws:
javax.swing.text.BadLocationException

getLineOfOffset

public int getLineOfOffset(int offset)
                    throws javax.swing.text.BadLocationException
Throws:
javax.swing.text.BadLocationException

setWordWrap

public void setWordWrap(boolean wrap)
Set word wrap behavior.

Parameters:
wrap - true if wrap, false if not

getWordWrap

public boolean getWordWrap()
Set word wrap behavior.

Returns:
true if wrap, false if not

getScrollableTracksViewportWidth

public boolean getScrollableTracksViewportWidth()
Specified by:
getScrollableTracksViewportWidth in interface javax.swing.Scrollable
Overrides:
getScrollableTracksViewportWidth in class javax.swing.JEditorPane

setBounds

public void setBounds(int x,
                      int y,
                      int width,
                      int height)
Overrides:
setBounds in class java.awt.Component

isEscaped

public boolean isEscaped(int pos)
Checks wether character is escaped.

Parameters:
pos - postion where to check
Returns:
true if escaped, false if not

lastChar

public boolean lastChar(int pos,
                        java.lang.String cont)
Check wether last character matches cont.

Parameters:
pos - postion
cont - pattern
Returns:
true if matches, fals if not

highlightParanthesisForward

public void highlightParanthesisForward(java.lang.String par,
                                        int pos)
                                 throws javax.swing.text.BadLocationException
Highlight the corresponding brackets (forward).

Parameters:
par - String which bracket
pos - int current position
Throws:
javax.swing.text.BadLocationException

highlightParanthesisBackward

public void highlightParanthesisBackward(java.lang.String par,
                                         int pos)
                                  throws javax.swing.text.BadLocationException
Highlight the corresponding brackets (backward).

Parameters:
par - String which bracket
pos - int current position
Throws:
javax.swing.text.BadLocationException

highlight

public void highlight(javax.swing.text.JTextComponent textComp,
                      java.lang.String pattern,
                      int pos,
                      org.rosuda.JGR.toolkit.SyntaxArea.HighlightPainter hipainter)
Highlight pattern at position.

Parameters:
textComp - textcomponent
pattern - pattern
pos - position
hipainter - highlightpainter

removeHighlights

public void removeHighlights()
Remove current highlights.


caretUpdate

public void caretUpdate(javax.swing.event.CaretEvent e)
caretUpdate: handle caret event: if it was a bracket, highlight the matching one if there is one.

Specified by:
caretUpdate in interface javax.swing.event.CaretListener

dragEnter

public void dragEnter(java.awt.dnd.DropTargetDragEvent evt)
dragEnter: handle drag event.

Specified by:
dragEnter in interface java.awt.dnd.DropTargetListener

dragOver

public void dragOver(java.awt.dnd.DropTargetDragEvent evt)
dragOver: handle drag event.

Specified by:
dragOver in interface java.awt.dnd.DropTargetListener

dragExit

public void dragExit(java.awt.dnd.DropTargetEvent evt)
dragExit: handle drag event.

Specified by:
dragExit in interface java.awt.dnd.DropTargetListener

dropActionChanged

public void dropActionChanged(java.awt.dnd.DropTargetDragEvent evt)
dropActionChanged: handle drop event.

Specified by:
dropActionChanged in interface java.awt.dnd.DropTargetListener

drop

public void drop(java.awt.dnd.DropTargetDropEvent evt)
drop: handle drop target event: insert string representation of dragged object.

Specified by:
drop in interface java.awt.dnd.DropTargetListener