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

[EGIT PATCH 1/6] Reduce PushOperationResult contructor visibility, accept null instead

From
MZMarek Zawirski <marek.zawirski@gmail.com>
Date
Aug 27, 2008, 18:41 UTC
Message-ID
<1219862506-11075-2-git-send-email-marek.zawirski@gmail.com>
In-Reply-To
<1219862506-11075-1-git-send-email-marek.zawirski@gmail.com>
This constructor should be instantiated only by PushOperation.

Some changes were needed in RefUpdateContentProvider (and related) - to accept null value instead of empty PushOperationResult.

Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
 .../spearce/egit/core/op/PushOperationResult.java  |    2 +-
 .../egit/ui/internal/push/ConfirmationPage.java    |    2 +-
 .../egit/ui/internal/push/PushResultTable.java     |    9 +++++++--
 .../ui/internal/push/RefUpdateContentProvider.java |    8 ++++++--
 4 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/org.spearce.egit.core/src/org/spearce/egit/core/op/PushOperationResult.java b/org.spearce.egit.core/src/org/spearce/egit/core/op/PushOperationResult.java
index 6ffe998..e3a392d 100644
--- a/org.spearce.egit.core/src/org/spearce/egit/core/op/PushOperationResult.java
+++ b/org.spearce.egit.core/src/org/spearce/egit/core/op/PushOperationResult.java
@@ -35,7 +35,7 @@
 	/**
 	 * Construct empty push operation result.
 	 */
-	public PushOperationResult() {
+	PushOperationResult() {
 		this.urisEntries = new LinkedHashMap<URIish, Entry>();
 	}
 
diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/ConfirmationPage.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/ConfirmationPage.java
index c8cdf29..08d21b3 100644
--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/ConfirmationPage.java
+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/ConfirmationPage.java
@@ -139,7 +139,7 @@ private void checkPreviousPagesSelections() {
 
 	private void revalidate() {
 		// always update this page
-		resultPanel.setData(local, new PushOperationResult());
+		resultPanel.setData(local, null);
 		confirmedResult = null;
 		displayedRepoSelection = repoPage.getSelection();
 		displayedRefSpecs = refSpecPage.getRefSpecs();
diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/PushResultTable.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/PushResultTable.java
index 2cf2be4..c5e476b 100644
--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/PushResultTable.java
+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/PushResultTable.java
@@ -120,7 +120,7 @@ public int hashCode(Object element) {
 			}
 		});
 		tableViewer.setContentProvider(new RefUpdateContentProvider());
-		tableViewer.setInput(new PushOperationResult());
+		tableViewer.setInput(null);
 	}
 
 	void setData(final Repository localDb, final PushOperationResult result) {
@@ -128,7 +128,7 @@ void setData(final Repository localDb, final PushOperationResult result) {
 		for (final TableColumn tc : tableViewer.getTable().getColumns())
 			tc.dispose();
 		// Set empty result for a while.
-		tableViewer.setInput(new PushOperationResult());
+		tableViewer.setInput(null);
 
 		// Layout should be recreated to work properly.
 		final TableColumnLayout layout = new TableColumnLayout();
@@ -171,6 +171,11 @@ public String getText(Object element) {
 			}
 		});
 
+		if (result == null) {
+			tablePanel.layout();
+			return;
+		}
+
 		int i = 0;
 		for (final URIish uri : result.getURIs()) {
 			final TableViewerColumn statusViewer = createColumn(layout, NLS
diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/RefUpdateContentProvider.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/RefUpdateContentProvider.java
index 862fe59..884c9a3 100644
--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/RefUpdateContentProvider.java
+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/RefUpdateContentProvider.java
@@ -21,13 +21,17 @@
  * Content provided for push result table viewer.
  * <p>
  * Input of this provided must be {@link PushOperationResult} instance, while
- * returned elements are instances of {@link RefUpdateElement}.
- *
+ * returned elements are instances of {@link RefUpdateElement}. Null input is
+ * allowed, resulting in no elements.
+ * 
  * @see PushOperationResult
  * @see RefUpdateElement
  */
 class RefUpdateContentProvider implements IStructuredContentProvider {
 	public Object[] getElements(final Object inputElement) {
+		if (inputElement == null)
+			return new RefUpdateElement[0];
+
 		final PushOperationResult result = (PushOperationResult) inputElement;
 
 		final SortedMap<String, String> dstToSrc = new TreeMap<String, String>();
-- 
1.5.6.3
Previous: Marek ZawirskiNext: Marek Zawirski
Message 2 of 10 in “Fetch UI, minor improvements/fixes”
  1. 0/6 Fetch UI, minor improvements/fixesMarek Zawirski, Aug 27, 2008
  2. 1/6 Reduce PushOperationResult contructor visibility, accept null insteadMarek Zawirski, Aug 27, 2008
  3. 2/6 Fix RefSpecPanel to not display mode column in fetch versionMarek Zawirski, Aug 27, 2008
  4. 3/6 Handle null remoteName in RefSpecPanel betterMarek Zawirski, Aug 27, 2008
  5. 4/6 Add tag fetching strategy selection to fetch version of RefSpecPageMarek Zawirski, Aug 27, 2008
  6. 5/6 Rename ResultDialog to PushResultDialogMarek Zawirski, Aug 27, 2008
  7. 6/6 Fetch GUIMarek Zawirski, Aug 27, 2008
  8. Robin RosenbergAug 27, 2008
  9. Marek ZawirskiAug 27, 2008
  10. Shawn O. PearceAug 27, 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.