edu.rice.cs.drjava.model.repl
Class InteractionsDJDocument

java.lang.Object
  extended by javax.swing.text.AbstractDocument
      extended by javax.swing.text.DefaultStyledDocument
          extended by edu.rice.cs.util.text.SwingDocument
              extended by edu.rice.cs.drjava.model.AbstractDJDocument
                  extended by edu.rice.cs.drjava.model.repl.InteractionsDJDocument
All Implemented Interfaces:
OptionConstants, DJDocument, AbstractDocumentInterface, ConsoleDocumentInterface, EditDocumentInterface, SwingDocumentInterface, Serializable, Document, StyledDocument

public class InteractionsDJDocument
extends AbstractDJDocument
implements ConsoleDocumentInterface

Represents a Swing-based InteractionsDocument. Extends AbstractDJDocument which contains code shared by the Swing interactions and definitions documents.

See Also:
Serialized Form

Nested Class Summary
private static class InteractionsDJDocument.CommandUndoableEdit
          Appending any information for the reduced model from each undo command
 
Nested classes/interfaces inherited from class edu.rice.cs.drjava.model.AbstractDJDocument
AbstractDJDocument.CharInsertCommand, AbstractDJDocument.InsertCommand, AbstractDJDocument.RemoveCommand, AbstractDJDocument.UninsertCommand, AbstractDJDocument.UnremoveCommand
 
Nested classes/interfaces inherited from class javax.swing.text.DefaultStyledDocument
DefaultStyledDocument.AttributeUndoableEdit, DefaultStyledDocument.ElementBuffer, DefaultStyledDocument.ElementSpec, DefaultStyledDocument.SectionElement
 
Nested classes/interfaces inherited from class javax.swing.text.AbstractDocument
AbstractDocument.AbstractElement, AbstractDocument.AttributeContext, AbstractDocument.BranchElement, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractDocument.LeafElement
 
Nested classes/interfaces inherited from interface edu.rice.cs.drjava.config.OptionConstants
OptionConstants.AccessLevelChoices, OptionConstants.COMPILER_PREFERENCE_CONTROL, OptionConstants.ConcJUnitCheckChoices, OptionConstants.DefaultFont, OptionConstants.DeleteLLClassFileChoices, OptionConstants.DynamicJavaAccessControlChoices, OptionConstants.FileExtRegistrationChoices, OptionConstants.HeapSizeChoices, OptionConstants.LookAndFeels, OptionConstants.PlasticThemes, OptionConstants.to, OptionConstants.VersionNotificationChoices
 
Field Summary
private  boolean _hasPrompt
          Whether the document currently has a prompt and is ready to accept input.
private  boolean _isModifiedSinceSave
           
private  GlobalEventNotifier _notifier
           
private  List<Pair<Pair<Integer,Integer>,String>> _stylesList
          A list of styles and their locations augmenting this document.
private  boolean _toClear
          A flag indicating that the interpreter was recently reset, and to reset the styles list the next time a style is added.
private  CompoundUndoManager _undoManager
           
private static int UNDO_LIMIT
           
 
Fields inherited from class edu.rice.cs.drjava.model.AbstractDJDocument
_currentLocation, _indent, _keywords, _normEndings, _primTypes, _reduced, CLOSING_BRACES, delimiters, newline, POS_THRESHOLD
 
Fields inherited from class edu.rice.cs.util.text.SwingDocument
_condition, _styles
 
Fields inherited from class javax.swing.text.DefaultStyledDocument
buffer, BUFFER_SIZE_DEFAULT
 
Fields inherited from class javax.swing.text.AbstractDocument
BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementName
 
Fields inherited from interface javax.swing.text.Document
StreamDescriptionProperty, TitleProperty
 
Fields inherited from interface edu.rice.cs.drjava.config.OptionConstants
accessLevelChoices, ADVANCED_LEVEL, ALLOW_PRIVATE_ACCESS, ALWAYS_COMPILE_BEFORE_JAVADOC, ALWAYS_COMPILE_BEFORE_JUNIT, ALWAYS_SAVE_BEFORE_COMPILE, ALWAYS_SAVE_BEFORE_DEBUG, ALWAYS_SAVE_BEFORE_JAVADOC, ALWAYS_SAVE_BEFORE_RUN, apiJavadocChoices, apiJavadocDeprecated, apiJavadocVersionChoices, apiJavadocVersionDeprecated, AUTO_CLOSE_COMMENTS, AUTO_STEP_RATE, BACKUP_FILES, BOOKMARK_COLOR, BROWSER_FILE, BROWSER_HISTORY_MAX_SIZE, BROWSER_STRING, CLIPBOARD_HISTORY_SIZE, COMPILER_ERROR_COLOR, CONCJUNIT_CHECKS_ENABLED, concJUnitCheckChoices, CUSTOM_DRJAVA_JAR_VERSION_SUFFIX, DEBUG_AUTO_IMPORT, DEBUG_BREAKPOINT_COLOR, DEBUG_BREAKPOINT_DISABLED_COLOR, DEBUG_EXPRESSIONS_AND_METHODS_IN_WATCHES, DEBUG_MESSAGE_COLOR, DEBUG_PANEL_HEIGHT, DEBUG_SOURCEPATH, DEBUG_STEP_DRJAVA, DEBUG_STEP_EXCLUDE, DEBUG_STEP_INTERPRETER, DEBUG_STEP_JAVA, DEBUG_THREAD_COLOR, DEFAULT_COMPILER_PREFERENCE, DEFINITIONS_BACKGROUND_COLOR, DEFINITIONS_COMMENT_COLOR, DEFINITIONS_DOUBLE_QUOTED_COLOR, DEFINITIONS_KEYWORD_COLOR, DEFINITIONS_LINE_NUMBER_BACKGROUND_COLOR, DEFINITIONS_LINE_NUMBER_COLOR, DEFINITIONS_MATCH_COLOR, DEFINITIONS_NORMAL_COLOR, DEFINITIONS_NUMBER_COLOR, DEFINITIONS_SINGLE_QUOTED_COLOR, DEFINITIONS_TYPE_COLOR, DELETE_LL_CLASS_FILES, DELETE_LL_CLASS_FILES_CHOICES, DETACH_DEBUGGER, DETACH_TABBEDPANES, DIALOG_AUTOIMPORT_ENABLED, DIALOG_AUTOIMPORT_STATE, DIALOG_AUTOIMPORT_STORE_POSITION, DIALOG_CLIPBOARD_HISTORY_STATE, DIALOG_CLIPBOARD_HISTORY_STORE_POSITION, DIALOG_COMPLETE_JAVAAPI, DIALOG_COMPLETE_SCAN_CLASS_FILES, DIALOG_COMPLETE_WORD_STATE, DIALOG_COMPLETE_WORD_STORE_POSITION, DIALOG_DEBUGFRAME_STATE, DIALOG_DEBUGFRAME_STORE_POSITION, DIALOG_DRJAVA_ERROR_POPUP_ENABLED, DIALOG_DRJAVA_SURVEY_ENABLED, DIALOG_EDITEXTERNALPROCESS_STATE, DIALOG_EDITEXTERNALPROCESS_STORE_POSITION, DIALOG_EXTERNALPROCESS_STATE, DIALOG_EXTERNALPROCESS_STORE_POSITION, DIALOG_GOTOFILE_FULLY_QUALIFIED, DIALOG_GOTOFILE_STATE, DIALOG_GOTOFILE_STORE_POSITION, DIALOG_JAROPTIONS_STATE, DIALOG_JAROPTIONS_STORE_POSITION, DIALOG_LIGHTWEIGHT_PARSING_DELAY, DIALOG_OPENJAVADOC_STATE, DIALOG_OPENJAVADOC_STORE_POSITION, DIALOG_TABBEDPANES_STATE, DIALOG_TABBEDPANES_STORE_POSITION, DISPLAY_ALL_COMPILER_VERSIONS, DISPLAY_RIGHT_MARGIN, DJ_FILE_EXTENSION, DOC_LIST_WIDTH, DRJAVA_ERRORS_BUTTON_COLOR, DRJAVA_SURVEY_DAYS, DRJAVA_USE_FORCE_QUIT, DYNAMICJAVA_ACCESS_CONTROL, DYNAMICJAVA_ACCESS_CONTROL_CHOICES, DYNAMICJAVA_REQUIRE_SEMICOLON, DYNAMICJAVA_REQUIRE_VARIABLE_TYPE, ELEMENTARY_LEVEL, EXTERNAL_SAVED_CMDLINES, EXTERNAL_SAVED_COUNT, EXTERNAL_SAVED_ENCLOSING_DJAPP_FILES, EXTERNAL_SAVED_NAMES, EXTERNAL_SAVED_PREFIX, EXTERNAL_SAVED_WORKDIRS, EXTPROCESS_FILE_EXTENSION, EXTPROCESS_FILE_NAME_INSIDE_JAR, EXTRA_CLASSPATH, EXTRA_COMPILERS, FILE_EXT_REGISTRATION, FILE_EXT_REGISTRATION_CHOICES, FIND_ALL_DOCUMENTS, FIND_MATCH_CASE, FIND_NO_COMMENTS_STRINGS, FIND_NO_TEST_CASES, FIND_ONLY_SELECTION, FIND_REPLACE_FOCUS_IN_DEFPANE, FIND_RESULTS_COLOR1, FIND_RESULTS_COLOR2, FIND_RESULTS_COLOR3, FIND_RESULTS_COLOR4, FIND_RESULTS_COLOR5, FIND_RESULTS_COLOR6, FIND_RESULTS_COLOR7, FIND_RESULTS_COLOR8, FIND_RESULTS_COLORS, FIND_SEARCH_BACKWARDS, FIND_WHOLE_WORD, FIXED_INTERACTIONS_DIRECTORY, FOLLOW_FILE_DELAY, FOLLOW_FILE_LINES, FONT_DOCLIST, FONT_LINE_NUMBERS, FONT_MAIN, FONT_TOOLBAR, FORCE_TEST_SUFFIX, FULL_JAVA, FUNCTIONAL_JAVA_LEVEL, heapSizeChoices, HISTORY_MAX_SIZE, INDENT_LEVEL, INTERACTIONS_AUTO_IMPORT_CLASSES, INTERACTIONS_ERROR_COLOR, INTERACTIONS_EXIT_PROMPT, INTERACTIONS_RESET_PROMPT, INTERMEDIATE_LEVEL, JAVA_FILE_EXTENSION, JAVAC_LOCATION, JAVADOC_1_3_LINK, JAVADOC_1_3_TEXT, JAVADOC_1_4_LINK, JAVADOC_1_4_TEXT, JAVADOC_1_5_LINK, JAVADOC_1_5_TEXT, JAVADOC_1_6_LINK, JAVADOC_1_6_TEXT, JAVADOC_1_7_LINK, JAVADOC_1_7_TEXT, JAVADOC_ACCESS_LEVEL, JAVADOC_ADDITIONAL_LINKS, JAVADOC_API_REF_VERSION, JAVADOC_AUTO_TEXT, JAVADOC_CUSTOM_PARAMS, JAVADOC_DESTINATION, JAVADOC_FROM_ROOTS, JAVADOC_LINK_VERSION, JAVADOC_NONE_TEXT, JAVADOC_PROMPT_FOR_DESTINATION, JUNIT_LINK, JUNIT_LOCATION, JUNIT_LOCATION_ENABLED, KEY_ABOUT, KEY_AUTO_REFRESH_PROJECT, KEY_BACKWARD, KEY_BACKWARD_SELECT, KEY_BEGIN_DOCUMENT, KEY_BEGIN_DOCUMENT_SELECT, KEY_BEGIN_LINE, KEY_BEGIN_LINE_SELECT, KEY_BOOKMARKS_PANEL, KEY_BOOKMARKS_TOGGLE, KEY_BROWSE_BACK, KEY_BROWSE_FORWARD, KEY_CHECK_NEW_VERSION, KEY_CLEAN_PROJECT, KEY_CLEAR_CONSOLE, KEY_CLEAR_HISTORY, KEY_CLEAR_LINE, KEY_CLOSE_ALL_FILES, KEY_CLOSE_FILE, KEY_CLOSE_PROJECT, KEY_CLOSE_SYSTEM_IN, KEY_CLOSING_BRACE, KEY_COMMENT_LINES, KEY_COMPILE, KEY_COMPILE_ALL, KEY_COMPILE_PROJECT, KEY_COMPLETE_FILE, KEY_COPY, KEY_CUT, KEY_CUT_LINE, KEY_DEBUG_AUTOMATIC_TRACE, KEY_DEBUG_BREAKPOINT_PANEL, KEY_DEBUG_BREAKPOINT_TOGGLE, KEY_DEBUG_CLEAR_ALL_BREAKPOINTS, KEY_DEBUG_MODE_TOGGLE, KEY_DEBUG_RESUME, KEY_DEBUG_STEP_INTO, KEY_DEBUG_STEP_OUT, KEY_DEBUG_STEP_OVER, KEY_DELETE_NEXT, KEY_DELETE_PREVIOUS, KEY_DETACH_DEBUGGER, KEY_DETACH_TABBEDPANES, KEY_DOWN, KEY_DOWN_SELECT, KEY_DRJAVA_ERRORS, KEY_DRJAVA_SURVEY, KEY_END_DOCUMENT, KEY_END_DOCUMENT_SELECT, KEY_END_LINE, KEY_END_LINE_SELECT, KEY_EXEC_PROCESS, KEY_EXECUTE_HISTORY, KEY_EXPORT_OLD, KEY_FIND_NEXT, KEY_FIND_PREV, KEY_FIND_REPLACE, KEY_FOLLOW_FILE, KEY_FOR_UNIT_TESTS_ONLY, KEY_FORCE_QUIT, KEY_FORWARD, KEY_FORWARD_SELECT, KEY_GENERATE_CUSTOM_DRJAVA, KEY_GOTO_FILE, KEY_GOTO_FILE_UNDER_CURSOR, KEY_GOTO_LINE, KEY_HELP, KEY_JAR_PROJECT, KEY_JAVADOC_ALL, KEY_JAVADOC_CURRENT, KEY_JUNIT_PROJECT, KEY_LIFT_CURRENT_INTERACTION, KEY_LOAD_HISTORY_SCRIPT, KEY_NEW_CLASS_FILE, KEY_NEW_DRJAVA_INSTANCE, KEY_NEW_FILE, KEY_NEW_PROJECT, KEY_NEW_TEST, KEY_NEXT_DOCUMENT, KEY_NEXT_PANE, KEY_NEXT_WORD, KEY_NEXT_WORD_SELECT, KEY_OPEN_FILE, KEY_OPEN_FOLDER, KEY_OPEN_JAVADOC, KEY_OPEN_JAVADOC_UNDER_CURSOR, KEY_OPEN_PROJECT, KEY_OPENING_BRACE, KEY_PAGE_DOWN, KEY_PAGE_SETUP, KEY_PAGE_UP, KEY_PASTE, KEY_PASTE_FROM_HISTORY, KEY_PREFERENCES, KEY_PREVIOUS_DOCUMENT, KEY_PREVIOUS_PANE, KEY_PREVIOUS_WORD, KEY_PREVIOUS_WORD_SELECT, KEY_PRINT, KEY_PRINT_CONSOLE, KEY_PRINT_INTERACTIONS, KEY_PRINT_PREVIEW, KEY_PROJECT_PROPERTIES, KEY_QUICKSTART, KEY_QUIT, KEY_REDO, KEY_RENAME_FILE, KEY_RESET_INTERACTIONS, KEY_REVERT_FILE, KEY_RUN, KEY_RUN_APPLET, KEY_RUN_PROJECT, KEY_SAVE_ALL_FILES, KEY_SAVE_AS_PROJECT, KEY_SAVE_CONSOLE_COPY, KEY_SAVE_FILE, KEY_SAVE_FILE_AS, KEY_SAVE_FILE_COPY, KEY_SAVE_HISTORY, KEY_SAVE_INTERACTIONS_COPY, KEY_SAVE_PROJECT, KEY_SELECT_ALL, KEY_SHIFT_DELETE_NEXT, KEY_SHIFT_DELETE_PREVIOUS, KEY_TABBED_NEXT_REGION, KEY_TABBED_PREV_REGION, KEY_TEST, KEY_TEST_ALL, KEY_UNCOMMENT_LINES, KEY_UNDO, KEY_UP, KEY_UP_SELECT, KEY_VIEW_INTERACTIONS_CLASSPATH, LANGUAGE_LEVEL, LANGUAGE_LEVEL_EXTENSIONS, LAST_DIRECTORY, LAST_DRJAVA_SURVEY, LAST_DRJAVA_SURVEY_RESULT, LAST_INTERACTIONS_DIRECTORY, LAST_NEW_VERSION_NOTIFICATION, LIGHTWEIGHT_PARSING_ENABLED, LINEENUM_ENABLED, linkChoices, linkDeprecated, linkVersionChoices, linkVersionDeprecated, LOOK_AND_FEEL, MASK, MASTER_JVM_ARGS, MASTER_JVM_XMX, NEW_VERSION_ALLOWED, NEW_VERSION_NOTIFICATION, NEW_VERSION_NOTIFICATION_CHOICES, NEW_VERSION_NOTIFICATION_DAYS, OLD_DJ0_FILE_EXTENSION, OLD_DJ1_FILE_EXTENSION, OLD_DJ2_FILE_EXTENSION, OLD_PROJECT_FILE_EXTENSION, OPEN_FOLDER_RECURSIVE, PLASTIC_THEMES, PROJECT_FILE_EXTENSION, PROJECT_FILE_EXTENSION2, PROMPT_BEFORE_CLEAN, PROMPT_RENAME_LL_FILES, QUIT_PROMPT, RECENT_FILES, RECENT_FILES_MAX_SIZE, RECENT_PROJECTS, REMOTE_CONTROL_ENABLED, REMOTE_CONTROL_PORT, RESET_CLEAR_CONSOLE, RIGHT_MARGIN_COLOR, RIGHT_MARGIN_COLUMNS, RT_CONCJUNIT_LOCATION, RUN_WITH_ASSERT, SHOW_CODE_PREVIEW_POPUPS, SHOW_DEBUG_CONSOLE, SHOW_DEPRECATION_WARNINGS, SHOW_FALLTHROUGH_WARNINGS, SHOW_FINALLY_WARNINGS, SHOW_PATH_WARNINGS, SHOW_SERIAL_WARNINGS, SHOW_SOURCE_WHEN_SWITCHING, SHOW_UNCHECKED_WARNINGS, SLAVE_JVM_ARGS, SLAVE_JVM_XMX, SMART_RUN_FOR_APPLETS_AND_PROGRAMS, STICKY_INTERACTIONS_DIRECTORY, SYSTEM_ERR_COLOR, SYSTEM_IN_COLOR, SYSTEM_OUT_COLOR, TABS_HEIGHT, TEXT_ANTIALIAS, TEXT_FILE_EXTENSION, TOOLBAR_ENABLED, TOOLBAR_ICONS_ENABLED, TOOLBAR_TEXT_ENABLED, WARN_BREAKPOINT_OUT_OF_SYNC, WARN_CHANGE_DCP, WARN_CHANGE_INTERACTIONS, WARN_CHANGE_LAF, WARN_CHANGE_MISC, WARN_CHANGE_THEME, WARN_DEBUG_MODIFIED_FILE, WARN_IF_COMPIZ, WARN_PATH_CONTAINS_POUND, WINDOW_HEIGHT, WINDOW_STATE, WINDOW_STORE_POSITION, WINDOW_WIDTH, WINDOW_X, WINDOW_Y
 
Constructor Summary
InteractionsDJDocument()
          Standard constructor.
InteractionsDJDocument(GlobalEventNotifier notifier)
           
 
Method Summary
 boolean _inBlockComment()
           
private  void _setModifiedSinceSave()
          Sets the modification state of this document to true and updates the state of the associated _odd.
protected  void _styleChanged()
          Fire event that styles changed from current location to the end.
 void addColoring(int start, int end, String style)
          Adds the given coloring style to the styles list.
protected  void addUndoRedo(AbstractDocument.DefaultDocumentEvent chng, Runnable undoCommand, Runnable doCommand)
           
 void appendExceptionResult(String message, String styleName)
          Inserts the given exception data into the document with the given style.
 void clearColoring()
          Called when the Interactions pane is reset.
 void documentSaved()
          Informs this document's undo manager that the document has been saved.
protected  void endCompoundEdit(int key)
           
protected  void endLastCompoundEdit()
           
 UndoableEdit getNextRedo()
          Public accessor for the next undo action.
 UndoableEdit getNextUndo()
          Public accessor for the next undo action.
 Pair<Pair<Integer,Integer>,String>[] getStyles()
          Accessor method used to copy contents of _stylesList to an array.
 CompoundUndoManager getUndoManager()
          Getter method for CompoundUndoManager
 boolean hasPrompt()
           
 boolean isModifiedSinceSave()
          Determines if the document has been modified since the last save.
protected  Indenter makeNewIndenter(int indentLevel)
          Returns a new indenter.
 void resetModification()
          Resets the modification state of this document.
 void resetUndoManager()
          Resets the undo manager.
 void setBoldFonts(int point, Graphics g)
          Attempts to set the font on the graphics context based upon the styles held in the styles list.
 boolean setColoring(int point, Graphics g)
          Attempts to set the coloring on the graphics based upon the content of the styles list returns false if the point is not in the list.
 void setHasPrompt(boolean val)
          Sets the _hasPrompt property.
protected  int startCompoundEdit()
           
 boolean undoManagerCanRedo()
           
 boolean undoManagerCanUndo()
           
 void updateModifiedSinceSave()
           
 
Methods inherited from class edu.rice.cs.drjava.model.AbstractDJDocument
_checkCache, _clearCache, _findPrevCharPos, _findPrevNonWSCharPos, _getEnclosingBrace, _getIndentOfCurrStmt, _getIndentOfCurrStmt, _getIndentOfCurrStmt, _getLineEnclosingBrace, _getLineEndPos, _getLineFirstCharPos, _getLineStartPos, _inBlockComment, _indentLine, _inParenPhrase, _isStartOfComment, _makeNormEndings, _makePrimTypes, _removeIndenter, _storeInCache, balanceBackward, balanceForward, clear, findCharInStmtBeforePos, findCharOnLine, findNextEnclosingBrace, findPrevDelimiter, findPrevDelimiter, findPrevEnclosingBrace, getAndResetNumLinesChangedAfter, getBytes, getCurrentLocation, getFirstNonWSCharPos, getFirstNonWSCharPos, getFirstNonWSCharPos, getHighlightStatus, getIndent, getIntelligentBeginLinePos, getReduced, getStateAtCurrent, hasOnlySpaces, indentLines, indentLines, insertUpdate, isShadowed, isShadowed, move, notInBlock, removeUpdate, resetReducedModelLocation, setCurrentLocation, setIndent, setKeywords, setTab, setTab, stateAtRelLocation
 
Methods inherited from class edu.rice.cs.util.text.SwingDocument
_getText, append, append, append, createUnwrappedPosition, forceInsertText, forceRemoveText, getDefaultStyle, getDocStyle, getDocText, getEditCondition, getPageable, getText, insertString, insertText, print, remove, removeText, setDocStyle, setEditCondition
 
Methods inherited from class javax.swing.text.DefaultStyledDocument
addDocumentListener, addStyle, create, createDefaultRoot, getBackground, getCharacterElement, getDefaultRootElement, getFont, getForeground, getLogicalStyle, getParagraphElement, getStyle, getStyleNames, insert, removeDocumentListener, removeStyle, setCharacterAttributes, setLogicalStyle, setParagraphAttributes, styleChanged
 
Methods inherited from class javax.swing.text.AbstractDocument
addUndoableEditListener, createBranchElement, createLeafElement, createPosition, dump, fireChangedUpdate, fireInsertUpdate, fireRemoveUpdate, fireUndoableEditUpdate, getAsynchronousLoadPriority, getAttributeContext, getBidiRootElement, getContent, getCurrentWriter, getDocumentFilter, getDocumentListeners, getDocumentProperties, getEndPosition, getLength, getListeners, getProperty, getRootElements, getStartPosition, getText, getText, getUndoableEditListeners, postRemoveUpdate, putProperty, readLock, readUnlock, removeUndoableEditListener, render, replace, setAsynchronousLoadPriority, setDocumentFilter, setDocumentProperties, writeLock, writeUnlock
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface edu.rice.cs.util.text.EditDocumentInterface
append, forceInsertText, forceRemoveText, getDefaultStyle, getDocText, getEditCondition, getLength, getPageable, insertText, print, removeText, setEditCondition
 
Methods inherited from interface edu.rice.cs.drjava.model.DJDocument
getText, insertString, remove
 
Methods inherited from interface edu.rice.cs.util.text.AbstractDocumentInterface
append, createPosition, getLength, getText
 
Methods inherited from interface javax.swing.text.StyledDocument
addStyle, getBackground, getCharacterElement, getFont, getForeground, getLogicalStyle, getParagraphElement, getStyle, removeStyle, setCharacterAttributes, setLogicalStyle, setParagraphAttributes
 
Methods inherited from interface javax.swing.text.Document
addDocumentListener, addUndoableEditListener, createPosition, getDefaultRootElement, getEndPosition, getLength, getProperty, getRootElements, getStartPosition, getText, getText, putProperty, removeDocumentListener, removeUndoableEditListener, render
 

Field Detail

_hasPrompt

private volatile boolean _hasPrompt
Whether the document currently has a prompt and is ready to accept input.


_toClear

private volatile boolean _toClear
A flag indicating that the interpreter was recently reset, and to reset the styles list the next time a style is added. Cannot reset immediately because then the styles would be lost while the interactions pane is resetting.


UNDO_LIMIT

private static final int UNDO_LIMIT
See Also:
Constant Field Values

_undoManager

private volatile CompoundUndoManager _undoManager

_isModifiedSinceSave

private volatile boolean _isModifiedSinceSave

_notifier

private volatile GlobalEventNotifier _notifier

_stylesList

private List<Pair<Pair<Integer,Integer>,String>> _stylesList
A list of styles and their locations augmenting this document. This augmentation is NOT part of the reduced model; it a separate extension that uses itself as a mutual exclusion lock. This list holds pairs of location intervals and strings (identifying styles). In essence it maps regions to colors (??). in the document and styles, which is basically a map of regions where the coloring view that is now attached to the Interactions Pane. It is not allowed to use the reduced model to determine the color settings when rendering text. (Why not? -- Corky) We keep a list of all places where styles not considered by the reduced are being used, such as System.out, System.err, and the various return styles for Strings and other Objects. Since the LinkedList class is not thread safe, we have to synchronized all methods that access pointers in _stylesList and the associated boolean _toClear.

Constructor Detail

InteractionsDJDocument

public InteractionsDJDocument()
Standard constructor.


InteractionsDJDocument

public InteractionsDJDocument(GlobalEventNotifier notifier)
Method Detail

hasPrompt

public boolean hasPrompt()
Specified by:
hasPrompt in interface ConsoleDocumentInterface
Returns:
true iff this document has a prompt and is ready to accept input.

setHasPrompt

public void setHasPrompt(boolean val)
Sets the _hasPrompt property.

Specified by:
setHasPrompt in interface ConsoleDocumentInterface
Parameters:
val - new boolean value for _hasPrompt.

_styleChanged

protected void _styleChanged()
Description copied from class: AbstractDJDocument
Fire event that styles changed from current location to the end. Right now we do this every time there is an insertion or removal. Two possible future optimizations:
  1. Only fire changed event if text other than that which was inserted or removed *actually* changed status. If we didn't changed the status of other text (by inserting or deleting unmatched pair of quote or comment chars), no change need be fired.
  2. If a change must be fired, we could figure out the exact end of what has been changed. Right now we fire the event saying that everything changed to the end of the document.
I don't think we'll need to do either one since it's still fast now. I think this is because the UI only actually paints the things on the screen anyway.

Specified by:
_styleChanged in class AbstractDJDocument

getUndoManager

public CompoundUndoManager getUndoManager()
Getter method for CompoundUndoManager

Returns:
_undoManager

resetUndoManager

public void resetUndoManager()
Resets the undo manager.


getNextUndo

public UndoableEdit getNextUndo()
Public accessor for the next undo action.


getNextRedo

public UndoableEdit getNextRedo()
Public accessor for the next undo action.


documentSaved

public void documentSaved()
Informs this document's undo manager that the document has been saved.


startCompoundEdit

protected int startCompoundEdit()
Specified by:
startCompoundEdit in class AbstractDJDocument

endCompoundEdit

protected void endCompoundEdit(int key)
Specified by:
endCompoundEdit in class AbstractDJDocument

endLastCompoundEdit

protected void endLastCompoundEdit()
Specified by:
endLastCompoundEdit in class AbstractDJDocument

addUndoRedo

protected void addUndoRedo(AbstractDocument.DefaultDocumentEvent chng,
                           Runnable undoCommand,
                           Runnable doCommand)
Specified by:
addUndoRedo in class AbstractDJDocument

undoManagerCanUndo

public boolean undoManagerCanUndo()

undoManagerCanRedo

public boolean undoManagerCanRedo()

updateModifiedSinceSave

public void updateModifiedSinceSave()

_setModifiedSinceSave

private void _setModifiedSinceSave()
Sets the modification state of this document to true and updates the state of the associated _odd. Assumes that write lock is already held.


resetModification

public void resetModification()
Resets the modification state of this document. Used after a document has been saved or reverted.


isModifiedSinceSave

public boolean isModifiedSinceSave()
Determines if the document has been modified since the last save.

Returns:
true if the document has been modified

makeNewIndenter

protected Indenter makeNewIndenter(int indentLevel)
Returns a new indenter. Eventually to be used to return an interactions indenter


addColoring

public void addColoring(int start,
                        int end,
                        String style)
Adds the given coloring style to the styles list. Only runs in event thread.

Overrides:
addColoring in class SwingDocument

getStyles

public Pair<Pair<Integer,Integer>,String>[] getStyles()
Accessor method used to copy contents of _stylesList to an array. Used in test cases.


setColoring

public boolean setColoring(int point,
                           Graphics g)
Attempts to set the coloring on the graphics based upon the content of the styles list returns false if the point is not in the list. Only runs in event thread.


setBoldFonts

public void setBoldFonts(int point,
                         Graphics g)
Attempts to set the font on the graphics context based upon the styles held in the styles list. Only runs in event thread.


clearColoring

public void clearColoring()
Called when the Interactions pane is reset. Only runs in event thread.


_inBlockComment

public boolean _inBlockComment()
Returns:
true iff the end of the current interaction is an open comment block

appendExceptionResult

public void appendExceptionResult(String message,
                                  String styleName)
Inserts the given exception data into the document with the given style.

Parameters:
message - Message contained in the exception
styleName - name of the style for formatting the exception