git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[EGIT PATCH 4/6] Teach the revision selection handler about the active repository

From
Robin Rosenberg <robin.rosenberg@dewire.com>
Date
Jul 10, 2008, 22:39 UTC
Message-ID
<1215729573-26536-5-git-send-email-robin.rosenberg@dewire.com>
In-Reply-To
<1215729573-26536-4-git-send-email-robin.rosenberg@dewire.com>
The handler needs to know which repository the selected revision was in.
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
---
 .../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
Previous: Robin RosenbergNext: Robin Rosenberg
Message 5 of 10 in “RevObject selection handler”
  1. 0/6 RevObject selection handlerRobin Rosenberg, Jul 10, 2008
  2. 1/6 Create a selection handler for the revision graph.Robin Rosenberg, Jul 10, 2008
  3. 2/6 Using the page site selection turned out to be cumbersome.Robin Rosenberg, Jul 10, 2008
  4. 3/6 Adapt Git team operations to non-resouce objectsRobin Rosenberg, Jul 10, 2008
  5. 4/6 Teach the revision selection handler about the active repositoryRobin Rosenberg, Jul 10, 2008
  6. 5/6 Create baseclasses for actions and operations on RevObjectsRobin Rosenberg, Jul 10, 2008
  7. 6/6 Add actions in history view to perform reset actionsRobin Rosenberg, Jul 10, 2008
  8. Shawn O. PearceJul 11, 2008
  9. Shawn O. PearceJul 11, 2008
  10. Johannes SchindelinJul 11, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.