edu.stanford.smi.protegex.owl.ui.clsdesc.manchester
Class ManchesterOWLTextPane

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.text.JTextComponent
                  extended byjavax.swing.JEditorPane
                      extended byjavax.swing.JTextPane
                          extended byedu.stanford.smi.protegex.owl.ui.clsdesc.manchester.ManchesterOWLTextPane
All Implemented Interfaces:
Accessible, EventListener, ImageObserver, KeyListener, MenuContainer, Scrollable, Serializable

public class ManchesterOWLTextPane
extends JTextPane
implements KeyListener

User: matthewhorridge
The Univeristy Of Manchester
Medical Informatics Group
Date: Sep 5, 2005

matthew.horridge@cs.man.ac.uk
www.cs.man.ac.uk/~horridgm

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JEditorPane
JEditorPane.AccessibleJEditorPane, JEditorPane.AccessibleJEditorPaneHTML, JEditorPane.JEditorPaneAccessibleHypertextSupport
 
Nested classes inherited from class javax.swing.text.JTextComponent
JTextComponent.AccessibleJTextComponent, JTextComponent.KeyBinding
 
Nested classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
private  CaretListener caretListener
           
private  JComboBox comboBox
           
private  Style defaultStyle
           
private  DocumentListener docListener
           
private  SymbolEditorHandler editorHandler
           
private  SymbolErrorDisplay errorDisplay
           
private  FocusListener focusListener
           
private static Font font
           
private  Object h0
           
private  Object h1
           
private  boolean inSaveTestMode
           
private static Color LOGICAL_OPERAND_KEYWORD_COLOR
           
private  Highlighter.HighlightPainter matchedHighlightPainter
           
private  OWLModel model
           
private  KeyEvent previousKeyPressed
           
private  ResourceNameMatcher resourceNameMatcher
           
private static Color RESTRICTION_KEYWORD_COLOR
           
static int SCALABLE_FRAME_COUNT
           
private  Map styleMap
           
private  SyntaxConverter syntaxConverter
           
private  Highlighter.HighlightPainter unmatchedHighlightPainter
           
 
Fields inherited from class javax.swing.JTextPane
 
Fields inherited from class javax.swing.JEditorPane
 
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.Container
 
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
ManchesterOWLTextPane(OWLModel kb, SymbolErrorDisplay errorDisplay, ResourceNameMatcher resourceNameMatcher, SyntaxConverter syntaxConverter)
           
 
Method Summary
private  void acceptSelectedResource()
           
private  void addListeners()
           
protected  void checkUniCodeExpression(String text)
          Used for error checking during input.
private  void cleanupPrevious()
           
private  void closeComboBox()
           
private  void doAfterClosingMatch()
           
private  void doBeforeOpeningMatch()
           
private  void extendPartialName(boolean autoInsert)
           
private  void extendPartialName(String prefix, String fullName)
           
protected  OWLModel getmodel()
           
 int getPreferredHeight(int width)
           
private  int getXOfPosition(int pos)
          Gets the x (pixel) position of the start of a given character in the text.
private  void handleDown()
           
protected  void handleEnter()
           
private  void handleEscape()
           
private  void handleUp()
           
private  void initColorMap()
           
 void insertText(String text)
           
 void insertText(String text, int caretOffset)
           
private  boolean isCaretAfterClosingBracket()
           
private  boolean isCaretBeforeOpeningBracket()
           
private  boolean isComboBoxVisible()
           
static boolean isIdChar(char ch)
           
protected  boolean isInSaveTestMode()
           
 void keyPressed(KeyEvent e)
           
 void keyReleased(KeyEvent e)
           
 void keyTyped(KeyEvent e)
           
private  int matchForward()
           
private  int matchReverse()
           
private  void performHighlighting()
           
private  void performMatching()
           
private  void perhapsConvertSyntax(KeyEvent e)
           
private  void refreshComboBox()
           
(package private)  void replaceText(String text)
           
 void setSymbolEditorHandler(SymbolEditorHandler editorHandler)
           
private  void setupBrackertMatcher()
           
private  void showComboBox(List frames, int startIndex)
          Establishs the reference from the TextField to the CellEditor that owns it.
private  void updateErrorDisplay()
           
protected  void updateSyntax()
           
 
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, getScrollableTracksViewportWidth, getStream, getText, read, registerEditorKitForContentType, registerEditorKitForContentType, removeHyperlinkListener, scrollToReference, setContentType, setEditorKitForContentType, setPage, setPage, setText
 
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getActions, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getScrollableBlockIncrement, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, paste, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setUI, updateUI, viewToModel, write
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, 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
 

Field Detail

comboBox

private JComboBox comboBox

errorDisplay

private SymbolErrorDisplay errorDisplay

resourceNameMatcher

private ResourceNameMatcher resourceNameMatcher

model

private OWLModel model

previousKeyPressed

private KeyEvent previousKeyPressed

SCALABLE_FRAME_COUNT

public static final int SCALABLE_FRAME_COUNT
See Also:
Constant Field Values

syntaxConverter

private SyntaxConverter syntaxConverter

inSaveTestMode

private boolean inSaveTestMode

editorHandler

private SymbolEditorHandler editorHandler

docListener

private DocumentListener docListener

styleMap

private Map styleMap

defaultStyle

private Style defaultStyle

RESTRICTION_KEYWORD_COLOR

private static final Color RESTRICTION_KEYWORD_COLOR

LOGICAL_OPERAND_KEYWORD_COLOR

private static final Color LOGICAL_OPERAND_KEYWORD_COLOR

font

private static Font font

caretListener

private CaretListener caretListener

focusListener

private FocusListener focusListener

matchedHighlightPainter

private Highlighter.HighlightPainter matchedHighlightPainter

unmatchedHighlightPainter

private Highlighter.HighlightPainter unmatchedHighlightPainter

h0

private Object h0

h1

private Object h1
Constructor Detail

ManchesterOWLTextPane

public ManchesterOWLTextPane(OWLModel kb,
                             SymbolErrorDisplay errorDisplay,
                             ResourceNameMatcher resourceNameMatcher,
                             SyntaxConverter syntaxConverter)
Method Detail

getPreferredHeight

public int getPreferredHeight(int width)

initColorMap

private void initColorMap()

setSymbolEditorHandler

public void setSymbolEditorHandler(SymbolEditorHandler editorHandler)

performHighlighting

private void performHighlighting()

acceptSelectedResource

private void acceptSelectedResource()

checkUniCodeExpression

protected void checkUniCodeExpression(String text)
                               throws Throwable
Used for error checking during input.

Parameters:
text -
Throws:
Throwable - ParseExceptions etc.

isInSaveTestMode

protected boolean isInSaveTestMode()

closeComboBox

private void closeComboBox()

extendPartialName

private void extendPartialName(String prefix,
                               String fullName)

extendPartialName

private void extendPartialName(boolean autoInsert)

getmodel

protected OWLModel getmodel()

getXOfPosition

private int getXOfPosition(int pos)
Gets the x (pixel) position of the start of a given character in the text.

Parameters:
pos - the character position
Returns:
the pixel position

handleDown

private void handleDown()

handleEnter

protected void handleEnter()

handleEscape

private void handleEscape()

handleUp

private void handleUp()

insertText

public void insertText(String text)

insertText

public void insertText(String text,
                       int caretOffset)

isComboBoxVisible

private boolean isComboBoxVisible()

isIdChar

public static boolean isIdChar(char ch)

keyPressed

public void keyPressed(KeyEvent e)
Specified by:
keyPressed in interface KeyListener

keyReleased

public void keyReleased(KeyEvent e)
Specified by:
keyReleased in interface KeyListener

keyTyped

public void keyTyped(KeyEvent e)
Specified by:
keyTyped in interface KeyListener

perhapsConvertSyntax

private void perhapsConvertSyntax(KeyEvent e)

refreshComboBox

private void refreshComboBox()

replaceText

void replaceText(String text)

showComboBox

private void showComboBox(List frames,
                          int startIndex)
Establishs the reference from the TextField to the CellEditor that owns it. This must be called after the CellEditor has been created. The reference can not be passed in the constructor of this, because the constructor of DefaultCellEditor already takes a JTextField as argument, so it has to be there before the DefaultCellEditor can be created.

// * @param cellEditor the CellEditor


updateErrorDisplay

private void updateErrorDisplay()

updateSyntax

protected void updateSyntax()

setupBrackertMatcher

private void setupBrackertMatcher()

addListeners

private void addListeners()

performMatching

private void performMatching()

isCaretBeforeOpeningBracket

private boolean isCaretBeforeOpeningBracket()

isCaretAfterClosingBracket

private boolean isCaretAfterClosingBracket()

doBeforeOpeningMatch

private void doBeforeOpeningMatch()

doAfterClosingMatch

private void doAfterClosingMatch()

matchForward

private int matchForward()

matchReverse

private int matchReverse()

cleanupPrevious

private void cleanupPrevious()