edu.rice.cs.drjava.model.definitions
Class ColoringGlyphPainter

java.lang.Object
  extended by javax.swing.text.GlyphView.GlyphPainter
      extended by edu.rice.cs.drjava.model.definitions.ColoringGlyphPainter
All Implemented Interfaces:
OptionConstants

public class ColoringGlyphPainter
extends javax.swing.text.GlyphView.GlyphPainter
implements OptionConstants


Nested Class Summary
private  class ColoringGlyphPainter.ColorOptionListener
          The OptionListeners for DEFINITIONS COLORs
private static class ColoringGlyphPainter.FontOptionListener
           
 
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  java.lang.Runnable _lambdaRepaint
           
private  boolean _listenersAttached
           
private  java.awt.FontMetrics _metrics
           
static java.awt.Color COMMENTED_COLOR
           
static java.awt.Color DEBUGGER_COLOR
           
static java.awt.Color DOUBLE_QUOTED_COLOR
           
static java.awt.Color ERROR_COLOR
           
static java.awt.Color INTERACTIONS_SYSTEM_ERR_COLOR
           
static java.awt.Color INTERACTIONS_SYSTEM_IN_COLOR
           
static java.awt.Color INTERACTIONS_SYSTEM_OUT_COLOR
           
static java.awt.Color KEYWORD_COLOR
           
static java.awt.Font MAIN_FONT
           
static java.awt.Color NORMAL_COLOR
           
static java.awt.Color NUMBER_COLOR
           
static java.awt.Color SINGLE_QUOTED_COLOR
           
static java.awt.Color TYPE_COLOR
           
 
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
ColoringGlyphPainter(java.lang.Runnable lambdaRepaint)
           
 
Method Summary
private  void attachOptionListeners(AbstractDJDocument doc)
           
 float getAscent(javax.swing.text.GlyphView v)
          Fetches the ascent above the baseline for the glyphs corresponding to the given range in the model.
 int getBoundedPosition(javax.swing.text.GlyphView v, int start, float x, float len)
          Determines the best location (in the model) to break the given view.
 float getDescent(javax.swing.text.GlyphView v)
          Fetches the descent below the baseline for the glyphs corresponding to the given range in the model.
 float getHeight(javax.swing.text.GlyphView v)
          Only runs in event thread.
 float getSpan(javax.swing.text.GlyphView v, int start, int end, javax.swing.text.TabExpander e, float x)
          Determines the span the glyphs given a start location (for tab expansion).
 java.awt.Shape modelToView(javax.swing.text.GlyphView v, int pos, javax.swing.text.Position.Bias bias, java.awt.Shape a)
          Only runs in event thread.
 void paint(javax.swing.text.GlyphView v, java.awt.Graphics g, java.awt.Shape a, int start, int end)
          Paints the glyphs representing the given range.
private  void setFormattingForState(java.awt.Graphics g, int state)
          Given a particular state, assign it a color.
(package private)  void sync(javax.swing.text.GlyphView v)
          Only runs in event thread.
 void updateColors()
          Called when an OptionListener perceives a change in any of the colors
 int viewToModel(javax.swing.text.GlyphView v, float x, float y, java.awt.Shape a, javax.swing.text.Position.Bias[] biasReturn)
          Provides a mapping from the view coordinate space to the logical coordinate space of the model.
 
Methods inherited from class javax.swing.text.GlyphView.GlyphPainter
getNextVisualPositionFrom, getPainter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COMMENTED_COLOR

public static java.awt.Color COMMENTED_COLOR

DOUBLE_QUOTED_COLOR

public static java.awt.Color DOUBLE_QUOTED_COLOR

SINGLE_QUOTED_COLOR

public static java.awt.Color SINGLE_QUOTED_COLOR

NORMAL_COLOR

public static java.awt.Color NORMAL_COLOR

KEYWORD_COLOR

public static java.awt.Color KEYWORD_COLOR

NUMBER_COLOR

public static java.awt.Color NUMBER_COLOR

TYPE_COLOR

public static java.awt.Color TYPE_COLOR

MAIN_FONT

public static java.awt.Font MAIN_FONT

INTERACTIONS_SYSTEM_ERR_COLOR

public static java.awt.Color INTERACTIONS_SYSTEM_ERR_COLOR

INTERACTIONS_SYSTEM_IN_COLOR

public static java.awt.Color INTERACTIONS_SYSTEM_IN_COLOR

INTERACTIONS_SYSTEM_OUT_COLOR

public static java.awt.Color INTERACTIONS_SYSTEM_OUT_COLOR

ERROR_COLOR

public static java.awt.Color ERROR_COLOR

DEBUGGER_COLOR

public static java.awt.Color DEBUGGER_COLOR

_listenersAttached

private boolean _listenersAttached

_lambdaRepaint

private java.lang.Runnable _lambdaRepaint

_metrics

private java.awt.FontMetrics _metrics
Constructor Detail

ColoringGlyphPainter

public ColoringGlyphPainter(java.lang.Runnable lambdaRepaint)
Method Detail

paint

public void paint(javax.swing.text.GlyphView v,
                  java.awt.Graphics g,
                  java.awt.Shape a,
                  int start,
                  int end)
Paints the glyphs representing the given range. Only runs in the event thread.

Specified by:
paint in class javax.swing.text.GlyphView.GlyphPainter

getSpan

public float getSpan(javax.swing.text.GlyphView v,
                     int start,
                     int end,
                     javax.swing.text.TabExpander e,
                     float x)
Determines the span the glyphs given a start location (for tab expansion). Only runs in event thread.

Specified by:
getSpan in class javax.swing.text.GlyphView.GlyphPainter

getHeight

public float getHeight(javax.swing.text.GlyphView v)
Only runs in event thread.

Specified by:
getHeight in class javax.swing.text.GlyphView.GlyphPainter

getAscent

public float getAscent(javax.swing.text.GlyphView v)
Fetches the ascent above the baseline for the glyphs corresponding to the given range in the model. Only runs in event thread.

Specified by:
getAscent in class javax.swing.text.GlyphView.GlyphPainter

getDescent

public float getDescent(javax.swing.text.GlyphView v)
Fetches the descent below the baseline for the glyphs corresponding to the given range in the model. Assumes ReadLocak is held.

Specified by:
getDescent in class javax.swing.text.GlyphView.GlyphPainter

modelToView

public java.awt.Shape modelToView(javax.swing.text.GlyphView v,
                                  int pos,
                                  javax.swing.text.Position.Bias bias,
                                  java.awt.Shape a)
                           throws javax.swing.text.BadLocationException
Only runs in event thread.

Specified by:
modelToView in class javax.swing.text.GlyphView.GlyphPainter
Throws:
javax.swing.text.BadLocationException

viewToModel

public int viewToModel(javax.swing.text.GlyphView v,
                       float x,
                       float y,
                       java.awt.Shape a,
                       javax.swing.text.Position.Bias[] biasReturn)
Provides a mapping from the view coordinate space to the logical coordinate space of the model. Only runs in event thread.

Specified by:
viewToModel in class javax.swing.text.GlyphView.GlyphPainter
Parameters:
v - the view containing the view coordinates
x - the X coordinate
y - the Y coordinate
a - the allocated region to render into
biasReturn - always returns Position.Bias.Forward as the zero-th element of this array
Returns:
the location within the model that best represents the given point in the view
See Also:
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

getBoundedPosition

public int getBoundedPosition(javax.swing.text.GlyphView v,
                              int start,
                              float x,
                              float len)
Determines the best location (in the model) to break the given view. This method attempts to break on a whitespace location. If a whitespace location can't be found, the nearest character location is returned. Only runs in event thread.

Specified by:
getBoundedPosition in class javax.swing.text.GlyphView.GlyphPainter
Parameters:
v - The view
start - The location in the model where the fragment should start its representation >= 0
x - The graphic location along the axis that the broken view would occupy >= 0; this may be useful for things like tab calculations
len - Specifies the distance into the view where a potential break is desired >= 0
Returns:
The model location desired for a break
See Also:
View.breakView(int, int, float, float)

sync

void sync(javax.swing.text.GlyphView v)
Only runs in event thread.


setFormattingForState

private void setFormattingForState(java.awt.Graphics g,
                                   int state)
Given a particular state, assign it a color.

Parameters:
g - Graphics object
state - a given state

attachOptionListeners

private void attachOptionListeners(AbstractDJDocument doc)

updateColors

public void updateColors()
Called when an OptionListener perceives a change in any of the colors