From: Marek Zawirski <marek.zawirski@gmail.com>
To: robin.rosenberg@dewire.com, spearce@spearce.org
Cc: git@vger.kernel.org, Marek Zawirski <marek.zawirski@gmail.com>
Subject: [EGIT PATCH 4/6] Add tag fetching strategy selection to fetch version of RefSpecPage
Date: Wed, 27 Aug 2008 20:41:44 +0200 [thread overview]
Message-ID: <1219862506-11075-5-git-send-email-marek.zawirski@gmail.com> (raw)
In-Reply-To: <1219862506-11075-4-git-send-email-marek.zawirski@gmail.com>
Tag strategy selection determines tagOpt for Transport, which should be
under user control for fetch operation. RefSpecPage seems to be the best
place for such setting.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../src/org/spearce/egit/ui/UIText.java | 12 ++++
.../egit/ui/internal/components/RefSpecPage.java | 70 ++++++++++++++++++--
.../src/org/spearce/egit/ui/uitext.properties | 4 +
3 files changed, 81 insertions(+), 5 deletions(-)
diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/UIText.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/UIText.java
index 2bbe218..ab70048 100644
--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/UIText.java
+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/UIText.java
@@ -386,6 +386,18 @@
public static String RefSpecPage_titlePush;
/** */
+ public static String RefSpecPage_annotatedTagsGroup;
+
+ /** */
+ public static String RefSpecPage_annotatedTagsAutoFollow;
+
+ /** */
+ public static String RefSpecPage_annotatedTagsFetchTags;
+
+ /** */
+ public static String RefSpecPage_annotatedTagsNoTags;
+
+ /** */
public static String Decorator_failedLazyLoading;
/** */
diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPage.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPage.java
index 45a8505..586e5d9 100644
--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPage.java
+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPage.java
@@ -23,11 +23,13 @@
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
import org.spearce.egit.core.op.ListRemoteOperation;
import org.spearce.egit.ui.Activator;
import org.spearce.egit.ui.UIText;
import org.spearce.jgit.lib.Repository;
import org.spearce.jgit.transport.RefSpec;
+import org.spearce.jgit.transport.TagOpt;
import org.spearce.jgit.transport.URIish;
/**
@@ -54,6 +56,12 @@
private Button saveButton;
+ private Button tagsAutoFollowButton;
+
+ private Button tagsFetchTagsButton;
+
+ private Button tagsNoTagsButton;
+
private String transportError;
/**
@@ -106,14 +114,35 @@ public void selectionChanged() {
}
});
- saveButton = new Button(panel, SWT.CHECK);
- saveButton.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, true, false));
- saveButton.addSelectionListener(new SelectionAdapter() {
+ final SelectionAdapter changesNotifier = new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
notifySelectionChanged();
}
- });
+ };
+ if (!pushPage) {
+ final Group tagsGroup = new Group(panel, SWT.NULL);
+ tagsGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,
+ false));
+ tagsGroup.setText(UIText.RefSpecPage_annotatedTagsGroup);
+ tagsGroup.setLayout(new GridLayout());
+ tagsAutoFollowButton = new Button(tagsGroup, SWT.RADIO);
+ tagsAutoFollowButton
+ .setText(UIText.RefSpecPage_annotatedTagsAutoFollow);
+ tagsFetchTagsButton = new Button(tagsGroup, SWT.RADIO);
+ tagsFetchTagsButton
+ .setText(UIText.RefSpecPage_annotatedTagsFetchTags);
+ tagsNoTagsButton = new Button(tagsGroup, SWT.RADIO);
+ tagsNoTagsButton
+ .setText(UIText.RefSpecPage_annotatedTagsNoTags);
+ tagsAutoFollowButton.addSelectionListener(changesNotifier);
+ tagsFetchTagsButton.addSelectionListener(changesNotifier);
+ tagsNoTagsButton.addSelectionListener(changesNotifier);
+ }
+
+ saveButton = new Button(panel, SWT.CHECK);
+ saveButton.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, true, false));
+ saveButton.addSelectionListener(changesNotifier);
setControl(panel);
notifySelectionChanged();
@@ -147,6 +176,18 @@ public boolean isSaveRequested() {
}
/**
+ * @return selected tag fetching strategy. This result is relevant only for
+ * fetch page.
+ */
+ public TagOpt getTagOpt() {
+ if (tagsAutoFollowButton.getSelection())
+ return TagOpt.AUTO_FOLLOW;
+ if (tagsFetchTagsButton.getSelection())
+ return TagOpt.FETCH_TAGS;
+ return TagOpt.NO_TAGS;
+ }
+
+ /**
* Compare provided specifications to currently selected ones.
*
* @param specs
@@ -206,12 +247,31 @@ private void revalidateImpl(final RepositorySelection newRepoSelection) {
final String remoteName = validatedRepoSelection.getConfigName();
specsPanel.setAssistanceData(local, listRemotesOp.getRemoteRefs(),
remoteName);
+
+ tagsAutoFollowButton.setSelection(false);
+ tagsFetchTagsButton.setSelection(false);
+ tagsNoTagsButton.setSelection(false);
+
if (newRepoSelection.isConfigSelected()) {
saveButton.setVisible(true);
saveButton.setText(NLS.bind(UIText.RefSpecPage_saveSpecifications,
remoteName));
saveButton.getParent().layout();
- }
+ final TagOpt tagOpt = newRepoSelection.getConfig().getTagOpt();
+ switch (tagOpt) {
+ case AUTO_FOLLOW:
+ tagsAutoFollowButton.setSelection(true);
+ break;
+ case FETCH_TAGS:
+ tagsFetchTagsButton.setSelection(true);
+ break;
+ case NO_TAGS:
+ tagsNoTagsButton.setSelection(true);
+ break;
+ }
+ } else
+ tagsAutoFollowButton.setSelection(true);
+
checkPage();
}
diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/uitext.properties b/org.spearce.egit.ui/src/org/spearce/egit/ui/uitext.properties
index c2b91f7..2349334 100644
--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/uitext.properties
+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/uitext.properties
@@ -147,6 +147,10 @@ RefSpecPage_operationCancelled=Operation cancelled.
RefSpecPage_saveSpecifications=Save specifications in "{0}" configuration
RefSpecPage_titleFetch=Fetch Ref Specifications
RefSpecPage_titlePush=Push Ref Specifications
+RefSpecPage_annotatedTagsGroup=Annotated tags fetching strategy
+RefSpecPage_annotatedTagsAutoFollow=Automatically follow tags if we fetch the thing they point at
+RefSpecPage_annotatedTagsFetchTags=Always fetch tags, even if we do not have the thing it points at
+RefSpecPage_annotatedTagsNoTags=Never fetch tags, even if we have the thing it points at
Decorator_failedLazyLoading=Resource decorator failed to load tree contents on demand.
QuickDiff_failedLoading=Quick diff failed to obtain file data.
--
1.5.6.3
next prev parent reply other threads:[~2008-08-27 18:44 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-27 18:41 [EGIT PATCH 0/6] Fetch UI, minor improvements/fixes Marek Zawirski
2008-08-27 18:41 ` [EGIT PATCH 1/6] Reduce PushOperationResult contructor visibility, accept null instead Marek Zawirski
2008-08-27 18:41 ` [EGIT PATCH 2/6] Fix RefSpecPanel to not display mode column in fetch version Marek Zawirski
2008-08-27 18:41 ` [EGIT PATCH 3/6] Handle null remoteName in RefSpecPanel better Marek Zawirski
2008-08-27 18:41 ` Marek Zawirski [this message]
2008-08-27 18:41 ` [EGIT PATCH 5/6] Rename ResultDialog to PushResultDialog Marek Zawirski
2008-08-27 18:41 ` [EGIT PATCH 6/6] Fetch GUI Marek Zawirski
2008-08-27 19:48 ` [EGIT PATCH 0/6] Fetch UI, minor improvements/fixes Robin Rosenberg
2008-08-27 20:09 ` Marek Zawirski
2008-08-27 21:51 ` Shawn O. Pearce
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1219862506-11075-5-git-send-email-marek.zawirski@gmail.com \
--to=marek.zawirski@gmail.com \
--cc=git@vger.kernel.org \
--cc=robin.rosenberg@dewire.com \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).