RegionManager with the goal of improving the performance of findAll
searches that produce many matches. The refactoring is modest and far
less ambitious than originally planned because the notions of Region
and RegionManager span too broad a range of behavior including the
management of browser history (editing history), editor and debugger
bookmarks, and the matches produced by "find all" searches. If the
browser history function were split off into a separate data
abstraction, then the region manager could be structured as a mapping
from documents to ordered document sets where hte mapping is
simplemented by a hash table and the sorted document sets as tree
sets. (The null document regions created by the project file parser
have to be treated separately since they are pre-regions for which no
document yet exists.) Performance could be significantly improved by
additional refactoring. The code could also be simplified.
The following files were modified.
M src/edu/rice/cs/drjava/model/debug/DebugTestCase.java
M src/edu/rice/cs/drjava/model/debug/DebugEventNotifier.java
M src/edu/rice/cs/drjava/model/DefaultGlobalModel.java
M src/edu/rice/cs/drjava/model/MovingDocumentRegion.java
M src/edu/rice/cs/drjava/model/RegionManager.java
M src/edu/rice/cs/drjava/model/SimpleDocumentRegion.java
M src/edu/rice/cs/drjava/model/DocumentRegion.java
M src/edu/rice/cs/drjava/model/RegionManagerListener.java
M src/edu/rice/cs/drjava/model/FindReplaceMachine.java
M src/edu/rice/cs/drjava/model/AbstractGlobalModel.java
M src/edu/rice/cs/drjava/ui/MainFrame.java
M src/edu/rice/cs/drjava/ui/DebugPanel.java
M src/edu/rice/cs/drjava/ui/AbstractDJPane.java
M src/edu/rice/cs/drjava/ui/BrowserHistoryPanel.java
M src/edu/rice/cs/drjava/ui/BreakpointsPanel.java
M src/edu/rice/cs/drjava/ui/RegionsTreePanel.java
M src/edu/rice/cs/drjava/ui/FindResultsPanel.java
M src/edu/rice/cs/drjava/ui/InteractionsController.java
M src/edu/rice/cs/drjava/ui/BookmarksPanel.java