[EGIT PATCH 0/9] Repository change listeners
- From
Robin Rosenberg <robin.rosenberg@dewire.com>
- Date
- Jul 10, 2008, 22:40 UTC
- Message-ID
- <1215729651-26781-1-git-send-email-robin.rosenberg@dewire.com>
We want to make the UI react on changes to the repo, but the parts of the code that makes the changes doesn't know who wants to react on them. This adds a publish-subcribe mechanism, including detection of externally made changes, e.g. by C Git.
-- robin
Robin Rosenberg (9):
Create a listener structure for changes to refs and index
Cached modification times for symbolic refs too
Connect the history page to the refs update subscription mechanism
Add a method to listen to changes in any repository
Add a job to periodically scan for repository changes
Change GitHistoryPage to listen on any repository.
Add a job to refresh projects when the index changes.
Make git dectected changes depend on the automatic refresh setting
Attach the resource decorator to the repository change event
mechanism.../src/org/spearce/egit/ui/Activator.java | 155 ++++++++++++++++++++ .../internal/decorators/GitResourceDecorator.java | 29 ++++- .../egit/ui/internal/history/GitHistoryPage.java | 43 +++++- .../src/org/spearce/jgit/lib/GitIndex.java | 3 + .../org/spearce/jgit/lib/IndexChangedEvent.java | 55 +++++++ .../src/org/spearce/jgit/lib/RefDatabase.java | 63 ++++++--- .../src/org/spearce/jgit/lib/RefsChangedEvent.java | 55 +++++++ .../src/org/spearce/jgit/lib/Repository.java | 74 ++++++++++ .../org/spearce/jgit/lib/RepositoryAdapter.java | 54 +++++++ .../spearce/jgit/lib/RepositoryChangedEvent.java | 64 ++++++++ .../org/spearce/jgit/lib/RepositoryListener.java | 63 ++++++++ 11 files changed, 635 insertions(+), 23 deletions(-) create mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/IndexChangedEvent.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/RefsChangedEvent.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryAdapter.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryChangedEvent.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryListener.java