diff options
author | Matthias Sohn | 2013-12-04 00:07:05 +0000 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org | 2013-12-04 00:07:05 +0000 |
commit | d706846ca6656db3f3b94d2420c704eef5e8206d (patch) | |
tree | 630e4dc82ee418a04dfc03edcd48592f2c495af6 | |
parent | cdf6d35ddcf6e97375eb7a112683c40f917ee252 (diff) | |
parent | d82d609c35c05d6785163abcba4b2c59f1e2e3ff (diff) | |
download | egit-d706846ca6656db3f3b94d2420c704eef5e8206d.tar.gz egit-d706846ca6656db3f3b94d2420c704eef5e8206d.tar.xz egit-d706846ca6656db3f3b94d2420c704eef5e8206d.zip |
Merge "Push Tags: Fix reveal code on Linux"
-rw-r--r-- | org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushTagsPage.java | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushTagsPage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushTagsPage.java index d51bb0bd8a..4781f6aa16 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushTagsPage.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushTagsPage.java @@ -126,13 +126,8 @@ public class PushTagsPage extends WizardPage { final CachedCheckboxTreeViewer treeViewer = tree .getCheckboxTreeViewer(); - final TagsNode tagsNode = new TagsNode(null, repository); - RepositoriesViewContentProvider contentProvider = new RepositoriesViewContentProvider() { - @Override - public Object[] getElements(Object inputElement) { - return getChildren(tagsNode); - } - }; + TagsNode tagsNode = new TagsNode(null, repository); + ContentProvider contentProvider = new ContentProvider(tagsNode); treeViewer.setContentProvider(contentProvider); treeViewer .setLabelProvider(new RepositoriesViewStyledCellLabelProvider()); @@ -184,9 +179,12 @@ public class PushTagsPage extends WizardPage { TagNode[] checkedTagsArray = checkedTags .toArray(new TagNode[checkedTags.size()]); viewer.setCheckedElements(checkedTagsArray); - viewer.setSelection(StructuredSelection.EMPTY); - if (checkedTagsArray.length > 0) - viewer.reveal(checkedTagsArray[0]); + if (checkedTagsArray.length > 0) { + // Reveal tags (just using reveal does not work on some platforms) + viewer.setSelection(new StructuredSelection(checkedTagsArray), true); + // Clear selection, we don't want to highlight the rows that much + viewer.setSelection(StructuredSelection.EMPTY); + } setSelectedTags(checkedTagsArray); } @@ -212,4 +210,18 @@ public class PushTagsPage extends WizardPage { throw new RuntimeException(e); } } + + private static class ContentProvider extends + RepositoriesViewContentProvider { + private final Object[] children; + + private ContentProvider(TagsNode tagsNode) { + this.children = getChildren(tagsNode); + } + + @Override + public Object[] getElements(Object inputElement) { + return children; + } + } } |