kawigi.editor
Class CPPView
java.lang.Object
|
+--javax.swing.text.View
|
+--javax.swing.text.PlainView
|
+--kawigi.editor.GenericView
|
+--kawigi.editor.CPPView
- All Implemented Interfaces:
- javax.swing.SwingConstants, javax.swing.text.TabExpander
- public class CPPView
- extends GenericView
C++ Implementation of a View that takes care of syntax hilighting when rendering
text.
| Fields inherited from class javax.swing.text.PlainView |
metrics |
| Fields inherited from class javax.swing.text.View |
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS |
| Fields inherited from interface javax.swing.SwingConstants |
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST |
|
Constructor Summary |
CPPView(javax.swing.text.Element e)
Creates a new C++ View to render this Element. |
|
Method Summary |
protected int |
drawSelectedText(java.awt.Graphics g,
int x,
int y,
int p0,
int p1)
Overridden from PlainView - this method gets called to render every element
of selected text, so that I could change how it's displayed if I want. |
protected int |
drawTabbedText(java.lang.String s,
int x,
int y,
java.awt.Graphics g,
int startOffset,
boolean selected,
boolean inComment)
Renders the text segment onto the given Grapnics context. |
protected int |
drawUnselectedText(java.awt.Graphics g,
int x,
int y,
int p0,
int p1)
Overridden from PlainView - this method gets called to render every element
of unselected text. |
protected java.awt.Color |
getColor(java.lang.String word)
Returns the color to use on the given token. |
java.util.ArrayList |
getIntervals()
Extension of the generic getIntervals() method that includes compiler directive matches. |
static void |
initColors()
Initializes/resets the syntax coloring settings and special token table. |
| Methods inherited from class javax.swing.text.PlainView |
changedUpdate, damageLineRange, drawLine, getLineBuffer, getPreferredSpan, insertUpdate, lineToRect, modelToView, nextTabStop, removeUpdate, setSize, updateMetrics, viewToModel |
| Methods inherited from class javax.swing.text.View |
append, breakView, createFragment, forwardUpdate, forwardUpdateToView, getAlignment, getAttributes, getBreakWeight, getChildAllocation, getContainer, getDocument, getElement, getEndOffset, getGraphics, getMaximumSpan, getMinimumSpan, getNextVisualPositionFrom, getParent, getResizeWeight, getStartOffset, getToolTipText, getView, getViewCount, getViewFactory, getViewIndex, getViewIndex, insert, isVisible, modelToView, modelToView, preferenceChanged, remove, removeAll, replace, setParent, updateChildren, updateLayout, viewToModel |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
colorHash
protected static java.util.Hashtable colorHash
keywordColor
protected static java.awt.Color keywordColor
typeColor
protected static java.awt.Color typeColor
operatorColor
protected static java.awt.Color operatorColor
classColor
protected static java.awt.Color classColor
stringColor
protected static java.awt.Color stringColor
commentColor
protected static java.awt.Color commentColor
directiveColor
protected static java.awt.Color directiveColor
CPPView
public CPPView(javax.swing.text.Element e)
- Creates a new C++ View to render this Element.
initColors
public static void initColors()
- Initializes/resets the syntax coloring settings and special token table.
Someone who really uses C++ in competition should make some more intelligent
decisions about what should go in the list of "classes".
drawUnselectedText
protected int drawUnselectedText(java.awt.Graphics g,
int x,
int y,
int p0,
int p1)
throws javax.swing.text.BadLocationException
- Overridden from PlainView - this method gets called to render every element
of unselected text.
- Overrides:
drawUnselectedText in class javax.swing.text.PlainView
javax.swing.text.BadLocationException
drawSelectedText
protected int drawSelectedText(java.awt.Graphics g,
int x,
int y,
int p0,
int p1)
throws javax.swing.text.BadLocationException
- Overridden from PlainView - this method gets called to render every element
of selected text, so that I could change how it's displayed if I want.
- Overrides:
drawSelectedText in class javax.swing.text.PlainView
javax.swing.text.BadLocationException
drawTabbedText
protected int drawTabbedText(java.lang.String s,
int x,
int y,
java.awt.Graphics g,
int startOffset,
boolean selected,
boolean inComment)
- Renders the text segment onto the given Grapnics context.
Originally, this looked a lot like javax.swing.text.Utilities.drawTabbedText
with a little bit of tokenizing, but now it's pretty much modified to my own
style. Unfortunately, at some point in time, my indentation got all weird
(probably as a result of me using tabs and the original implementation mixing
spaces and tabs), so there may be some weird-looking parts left in the code.
It's possible that I'll eventually change this to work differently with
compiler directives.
This is the magic of my syntax hilighting.
getColor
protected java.awt.Color getColor(java.lang.String word)
- Returns the color to use on the given token.
This will return the default foreground color, if no special color is
assigned to that token.
getIntervals
public java.util.ArrayList getIntervals()
- Extension of the generic getIntervals() method that includes compiler directive matches.
- Overrides:
getIntervals in class GenericView