Package editor
Class EditorHost
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- editor.EditorHost
-
- All Implemented Interfaces:
IEditorHost,java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,javax.accessibility.Accessible
- Direct Known Subclasses:
GosuEditor,StandardEditor
public abstract class EditorHost extends javax.swing.JPanel implements IEditorHost
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classEditorHost.EditorKeyHandlerprotected static classEditorHost.HighlightModestatic classEditorHost.LabHighlighter(package private) classEditorHost.ParseTaskprivate static classEditorHost.TimerPool-
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description private boolean_bAltDownprivate boolean_bCompleteCodeprivate boolean_bEnterPressedConsumedprivate boolean_bParserSuspendedprivate javax.swing.JPopupMenu_completionPopupprivate EditorHost.HighlightMode_highlightModeprivate int_iTimerCountprivate IScriptPartId_partIdprivate static EditorHost.TimerPool_timerPoolprivate javax.swing.event.UndoableEditListener_uelprivate AtomicUndoManager_undoMgr(package private) static intCOMPLETION_DELAYDelay in millis for code completion to wait for key presses before displaying.static java.lang.StringINTELLISENSE_TASK_QUEUEstatic intTAB_SIZEThe number of spacess assigned to a tab-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description EditorHost(AtomicUndoManager atomicUndoManager)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description private void_duplicate()private void_handleBraceRightNow(int caretPosition, boolean wasBraceTyped)(package private) void_handleBulkComment()(package private) void_handleBulkIndent(boolean bOutdent)(package private) void_handleEnter()private void_joinLines()protected voidaddDocumentListener()protected voidaddKeyHandlers()static booleanareAnyParserTasksPending()protected booleanareMoreThanOneParserTasksGoingToUpdateContainingType()protected booleanareMoreThanOneParserTasksPendingForThisEditor()voidcenterView()voidclipCopy(java.awt.datatransfer.Clipboard clipboard)voidclipCut(java.awt.datatransfer.Clipboard clipboard)voidclipPaste(java.awt.datatransfer.Clipboard clipboard, boolean asGosu)voiddelete()delete the currently selected text, or the current line if nothing is selected(package private) voiddeleteLine()(package private) voiddeleteWord()(package private) voiddeleteWordForwards()(package private) voiddismissCompletionPopup()voiddisplayGotoLinePopup()voidduplicate()private voidfixCloseBraceIfNecessary(java.lang.String previousLine)private java.awt.datatransfer.TransferablegetClipCopyContents()javax.swing.JPopupMenugetCompletionPopup()javax.swing.text.AbstractDocumentgetDocument()java.lang.StringgetExpandedSelection()protected EditorHost.HighlightModegetHighlightMode()private java.lang.StringgetIndentWhitespace()intgetLineNumberAtCaret()intgetLineOffset(int iLine)ITypegetParsedClass()static TaskQueuegetParserTaskQueue()private EditorHost.ParseTaskgetParseTask(boolean forceCodeCompletion)IScriptPartIdgetScriptPart()abstract ISymbolTablegetSymbolTableAtCursor()java.lang.StringgetText()intgetTimerCount()AtomicUndoManagergetUndoManager()voidgotoLine(int iLine)voidgotoLine(int iLine, int iColumn)voidgotoNextUsageHighlight()voidgotoOffset(int offset)voidgotoPrevUsageHighlight()(package private) voidhandleBackspace()(package private) voidhandleBraceRight()private voidhandleBraceRightNow(int caretPosition)(package private) voidhandleBulkComment()(package private) voidhandleBulkIndent(boolean bOutdent)voidhandleColon()voidhandleCompleteCode()voidhandleDot()protected abstract voidhandleDot(ISymbolTable transientSymTable)(package private) voidhandleEnter()private booleanhandleOpenBrace(java.lang.String strLine)protected voidhideMiscPopups()voidhighlightLocations(java.util.List<SearchLocation> locations)private voidindentIfOpenBracePrecedes(java.lang.String strLine)booleanisAltDown()booleanisCompleteCode()booleanisCompletionPopupShowing()booleanisParserSuspended()voidjoinLines()(package private) voidjumpRight()voidparse()protected voidparse(boolean forceCodeCompletion)voidparseAndWaitForParser()static voidpostTaskInParserThread(java.lang.Runnable task)voidread(IScriptPartId partId, java.lang.String strSource)private voidrecordCaretPositionForUndo()voidremoveAllHighlights()private voidremoveHightlights()(package private) voidrunIfNoKeyPressedInMillis(long lMillis, java.lang.Runnable task)voidsetCompleteCode(boolean bCompleteCode)voidsetCompletionPopup(javax.swing.JPopupMenu completionPopup)protected voidsetHighlightMode(EditorHost.HighlightMode mode)voidsetLabel(java.lang.String label)voidsetParserSuspended(boolean bParserSuspended)voidsetScriptPart(IScriptPartId partId)voidsetUndoableEditListener(javax.swing.event.UndoableEditListener uel)Sets the one and only undoable edit listener for this editor section.voidshowFileInTree()private intswallowSpaces(javax.swing.text.Document document, int i)(package private) voidunindent()static voidwaitForIntellisenseTimers()voidwaitForParser()static voidwaitOnParserThread()-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
-
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, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, 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, 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, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, 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
-
Methods inherited from interface editor.IEditorHost
canAddBreakpoint, getDocHandler, getEditor, getFeedbackPanel, getIssues, getLineCommentDelimiter, getOffsetOfDeepestStatementLocationAtPos, getScroller, getTooltipMessage, getTypeAtLine, gotoDeclaration, parse, refresh
-
-
-
-
Field Detail
-
TAB_SIZE
public static final int TAB_SIZE
The number of spacess assigned to a tab- See Also:
- Constant Field Values
-
INTELLISENSE_TASK_QUEUE
public static final java.lang.String INTELLISENSE_TASK_QUEUE
- See Also:
- Constant Field Values
-
COMPLETION_DELAY
static int COMPLETION_DELAY
Delay in millis for code completion to wait for key presses before displaying.
-
_completionPopup
private javax.swing.JPopupMenu _completionPopup
-
_undoMgr
private AtomicUndoManager _undoMgr
-
_uel
private javax.swing.event.UndoableEditListener _uel
-
_partId
private IScriptPartId _partId
-
_bParserSuspended
private boolean _bParserSuspended
-
_bEnterPressedConsumed
private boolean _bEnterPressedConsumed
-
_bAltDown
private boolean _bAltDown
-
_bCompleteCode
private boolean _bCompleteCode
-
_iTimerCount
private int _iTimerCount
-
_timerPool
private static EditorHost.TimerPool _timerPool
-
_highlightMode
private EditorHost.HighlightMode _highlightMode
-
-
Constructor Detail
-
EditorHost
EditorHost(AtomicUndoManager atomicUndoManager)
-
-
Method Detail
-
getScriptPart
public IScriptPartId getScriptPart()
- Specified by:
getScriptPartin interfaceIEditorHost
-
setScriptPart
public void setScriptPart(IScriptPartId partId)
- Specified by:
setScriptPartin interfaceIEditorHost
-
getUndoManager
public AtomicUndoManager getUndoManager()
- Specified by:
getUndoManagerin interfaceIEditorHost
-
read
public void read(IScriptPartId partId, java.lang.String strSource) throws java.io.IOException
- Specified by:
readin interfaceIEditorHost- Throws:
java.io.IOException
-
parseAndWaitForParser
public void parseAndWaitForParser()
-
waitForParser
public void waitForParser()
-
addKeyHandlers
protected void addKeyHandlers()
-
showFileInTree
public void showFileInTree()
-
getLineNumberAtCaret
public int getLineNumberAtCaret()
-
getLineOffset
public int getLineOffset(int iLine)
-
handleBulkIndent
void handleBulkIndent(boolean bOutdent)
-
_handleBulkIndent
void _handleBulkIndent(boolean bOutdent)
-
setLabel
public void setLabel(java.lang.String label)
- Specified by:
setLabelin interfaceIEditorHost
-
getDocument
public javax.swing.text.AbstractDocument getDocument()
- Specified by:
getDocumentin interfaceIEditorHost
-
setUndoableEditListener
public void setUndoableEditListener(javax.swing.event.UndoableEditListener uel)
Sets the one and only undoable edit listener for this editor section. The primary use case for this method is to establish an undo manager connection.- Specified by:
setUndoableEditListenerin interfaceIEditorHost- Parameters:
uel- The UndoableEditListener to connect to this section's document.
-
addDocumentListener
protected void addDocumentListener()
-
getText
public java.lang.String getText()
- Specified by:
getTextin interfaceIEditorHost
-
getParsedClass
public IType getParsedClass()
- Specified by:
getParsedClassin interfaceIEditorHost
-
dismissCompletionPopup
void dismissCompletionPopup()
-
getCompletionPopup
public javax.swing.JPopupMenu getCompletionPopup()
-
setCompletionPopup
public void setCompletionPopup(javax.swing.JPopupMenu completionPopup)
-
isCompletionPopupShowing
public boolean isCompletionPopupShowing()
-
displayGotoLinePopup
public void displayGotoLinePopup()
-
gotoLine
public void gotoLine(int iLine)
-
gotoLine
public void gotoLine(int iLine, int iColumn)
-
gotoOffset
public void gotoOffset(int offset)
-
duplicate
public void duplicate()
-
_duplicate
private void _duplicate()
-
recordCaretPositionForUndo
private void recordCaretPositionForUndo() throws javax.swing.text.BadLocationException- Throws:
javax.swing.text.BadLocationException
-
delete
public void delete()
delete the currently selected text, or the current line if nothing is selected
-
getExpandedSelection
public java.lang.String getExpandedSelection()
- Returns:
- the selected text in the editor, expanding to the entire current line if no selection exists
-
deleteWord
void deleteWord()
-
deleteWordForwards
void deleteWordForwards()
-
deleteLine
void deleteLine()
-
unindent
void unindent()
-
joinLines
public void joinLines()
-
_joinLines
private void _joinLines()
-
swallowSpaces
private int swallowSpaces(javax.swing.text.Document document, int i) throws javax.swing.text.BadLocationException- Throws:
javax.swing.text.BadLocationException
-
jumpRight
void jumpRight()
-
centerView
public void centerView()
-
highlightLocations
public void highlightLocations(java.util.List<SearchLocation> locations)
- Specified by:
highlightLocationsin interfaceIEditorHost
-
gotoNextUsageHighlight
public void gotoNextUsageHighlight()
- Specified by:
gotoNextUsageHighlightin interfaceIEditorHost
-
gotoPrevUsageHighlight
public void gotoPrevUsageHighlight()
- Specified by:
gotoPrevUsageHighlightin interfaceIEditorHost
-
removeAllHighlights
public void removeAllHighlights()
- Specified by:
removeAllHighlightsin interfaceIEditorHost
-
removeHightlights
private void removeHightlights()
-
getHighlightMode
protected EditorHost.HighlightMode getHighlightMode()
-
setHighlightMode
protected void setHighlightMode(EditorHost.HighlightMode mode)
-
hideMiscPopups
protected void hideMiscPopups()
-
clipCut
public void clipCut(java.awt.datatransfer.Clipboard clipboard)
- Specified by:
clipCutin interfaceIEditorHost
-
clipCopy
public void clipCopy(java.awt.datatransfer.Clipboard clipboard)
- Specified by:
clipCopyin interfaceIEditorHost
-
clipPaste
public void clipPaste(java.awt.datatransfer.Clipboard clipboard, boolean asGosu)- Specified by:
clipPastein interfaceIEditorHost
-
getClipCopyContents
private java.awt.datatransfer.Transferable getClipCopyContents()
-
handleEnter
void handleEnter()
-
_handleEnter
void _handleEnter()
-
handleOpenBrace
private boolean handleOpenBrace(java.lang.String strLine)
-
fixCloseBraceIfNecessary
private void fixCloseBraceIfNecessary(java.lang.String previousLine) throws javax.swing.text.BadLocationException- Throws:
javax.swing.text.BadLocationException
-
handleBackspace
void handleBackspace()
-
indentIfOpenBracePrecedes
private void indentIfOpenBracePrecedes(java.lang.String strLine)
-
getIndentWhitespace
private java.lang.String getIndentWhitespace()
-
handleBulkComment
void handleBulkComment()
-
_handleBulkComment
void _handleBulkComment()
-
handleBraceRight
void handleBraceRight()
-
handleBraceRightNow
private void handleBraceRightNow(int caretPosition)
-
_handleBraceRightNow
private void _handleBraceRightNow(int caretPosition, boolean wasBraceTyped)
-
parse
public void parse()
-
parse
protected void parse(boolean forceCodeCompletion)
-
postTaskInParserThread
public static void postTaskInParserThread(java.lang.Runnable task)
-
getParserTaskQueue
public static TaskQueue getParserTaskQueue()
-
isParserSuspended
public boolean isParserSuspended()
-
setParserSuspended
public void setParserSuspended(boolean bParserSuspended)
-
getParseTask
private EditorHost.ParseTask getParseTask(boolean forceCodeCompletion)
-
areAnyParserTasksPending
public static boolean areAnyParserTasksPending()
-
areMoreThanOneParserTasksPendingForThisEditor
protected boolean areMoreThanOneParserTasksPendingForThisEditor()
-
areMoreThanOneParserTasksGoingToUpdateContainingType
protected boolean areMoreThanOneParserTasksGoingToUpdateContainingType()
-
isCompleteCode
public boolean isCompleteCode()
-
setCompleteCode
public void setCompleteCode(boolean bCompleteCode)
-
handleDot
public void handleDot()
-
handleColon
public void handleColon()
-
handleCompleteCode
public void handleCompleteCode()
-
handleDot
protected abstract void handleDot(ISymbolTable transientSymTable)
-
getSymbolTableAtCursor
public abstract ISymbolTable getSymbolTableAtCursor()
-
runIfNoKeyPressedInMillis
void runIfNoKeyPressedInMillis(long lMillis, java.lang.Runnable task)
-
waitOnParserThread
public static void waitOnParserThread()
-
getTimerCount
public int getTimerCount()
-
waitForIntellisenseTimers
public static void waitForIntellisenseTimers()
-
isAltDown
public boolean isAltDown()
-
-