The handler needs to know which repository the selected revision was in. Signed-off-by: Robin Rosenberg <robin.rosenberg@xxxxxxxxxx> --- .../egit/ui/internal/history/GitHistoryPage.java | 4 ++++ .../history/RevObjectSelectionProvider.java | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 0 deletions(-) diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java index d8777ef..6b55185 100644 --- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java +++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java @@ -503,6 +503,8 @@ public class GitHistoryPage extends HistoryPage { @Override public boolean inputSet() { + if (revObjectSelectionProvider != null) + revObjectSelectionProvider.setActiveRepository(null); cancelRefreshJob(); if (graph == null) @@ -589,9 +591,11 @@ public class GitHistoryPage extends HistoryPage { list.source(currentWalk); final GenerateHistoryJob rj = new GenerateHistoryJob(this, list); + final Repository fdb = db; rj.addJobChangeListener(new JobChangeAdapter() { @Override public void done(final IJobChangeEvent event) { + revObjectSelectionProvider.setActiveRepository(fdb); final Control graphctl = graph.getControl(); if (job != rj || graphctl.isDisposed()) return; diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/RevObjectSelectionProvider.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/RevObjectSelectionProvider.java index c44b229..46a091c 100644 --- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/RevObjectSelectionProvider.java +++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/RevObjectSelectionProvider.java @@ -14,6 +14,7 @@ import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.spearce.jgit.lib.Repository; /** * A selection provider for Git revision objects @@ -24,6 +25,8 @@ public class RevObjectSelectionProvider implements ISelectionProvider { private ISelection selection; + private Repository repository; + public void addSelectionChangedListener(ISelectionChangedListener listener) { listeners.add(listener); } @@ -45,4 +48,20 @@ public class RevObjectSelectionProvider implements ISelectionProvider { } } + /** + * Sets the active repository. This one is called by the view when the view + * is updated with new data. + * + * @param repository + */ + public void setActiveRepository(Repository repository) { + this.repository = repository; + } + + /** + * @return currently active repository + */ + public Repository getActiveRepository() { + return repository; + } } -- 1.5.6.2.220.g44701 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html