diff options
author | Michael Keppler | 2019-11-23 17:43:16 +0000 |
---|---|---|
committer | Michael Keppler | 2019-11-24 16:05:19 +0000 |
commit | 1b6c1c646276d3a7762604b3a691de023630a3e5 (patch) | |
tree | 07ecb142c3327de6fde99d3d0cb33ed9630b705f /org.eclipse.egit.ui/src/org/eclipse | |
parent | 8d15ef9e8b12e56a3ba5a656bd0d427ea4e63745 (diff) | |
download | egit-1b6c1c646276d3a7762604b3a691de023630a3e5.tar.gz egit-1b6c1c646276d3a7762604b3a691de023630a3e5.tar.xz egit-1b6c1c646276d3a7762604b3a691de023630a3e5.zip |
Add separators in ref filter menu
Add a separator before and after the preconfigured filters to make the
menu easier to read.
Bug: 553093
Change-Id: I2d34f1c1d0f799a78d41ee3603164b9723622e65
Signed-off-by: Michael Keppler <Michael.Keppler@gmx.de>
Diffstat (limited to 'org.eclipse.egit.ui/src/org/eclipse')
4 files changed, 32 insertions, 18 deletions
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/components/DropDownMenuAction.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/components/DropDownMenuAction.java index ca8b3516e1..b65c3ef1ca 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/components/DropDownMenuAction.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/components/DropDownMenuAction.java @@ -13,10 +13,9 @@ package org.eclipse.egit.ui.internal.components; import java.util.Collection; import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IContributionItem; import org.eclipse.jface.action.IMenuCreator; -import org.eclipse.jgit.annotations.NonNull; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.widgets.Control; @@ -83,8 +82,7 @@ public abstract class DropDownMenuAction extends Action } private Menu fillMenu(Menu m) { - for (IAction action : getActions()) { - ActionContributionItem item = new ActionContributionItem(action); + for (IContributionItem item : getActions()) { item.fill(m, -1); } return m; @@ -114,12 +112,12 @@ public abstract class DropDownMenuAction extends Action } /** - * Obtains the actions to display in the drop-down menu. + * Obtains the items to display in the drop-down menu. Might be action + * contributions or separators. * - * @return the actions + * @return the items */ - @NonNull - protected abstract Collection<IAction> getActions(); + protected abstract Collection<IContributionItem> getActions(); @Override public void dispose() { diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/components/RepositoryMenuUtil.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/components/RepositoryMenuUtil.java index eafed3f64b..82411bd156 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/components/RepositoryMenuUtil.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/components/RepositoryMenuUtil.java @@ -22,6 +22,7 @@ import java.util.Map; import java.util.Set; import java.util.function.Consumer; import java.util.function.Supplier; +import java.util.stream.Collectors; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener; @@ -32,7 +33,9 @@ import org.eclipse.egit.ui.internal.CommonUtils; import org.eclipse.egit.ui.internal.UIIcons; import org.eclipse.egit.ui.internal.UIText; import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.ActionContributionItem; import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IContributionItem; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jgit.annotations.NonNull; @@ -228,11 +231,12 @@ public final class RepositoryMenuUtil { @Override - public Collection<IAction> getActions() { + public Collection<IContributionItem> getActions() { Repository current = currentRepo.get(); File gitDir = current == null ? null : current.getDirectory(); return RepositoryMenuUtil.getRepositoryActions(includeBare, gitDir, - action); + action).stream().map(ActionContributionItem::new) + .collect(Collectors.toList()); } @Override diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java index e8a3e01131..12eb010acf 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java @@ -34,6 +34,7 @@ import java.util.HashSet; import java.util.List; import java.util.Objects; import java.util.Set; +import java.util.stream.Collectors; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspaceRoot; @@ -82,6 +83,7 @@ import org.eclipse.egit.ui.internal.selection.RepositorySelectionProvider; import org.eclipse.egit.ui.internal.selection.SelectionUtils; import org.eclipse.egit.ui.internal.trace.GitTraceLocation; import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.ActionContributionItem; import org.eclipse.jface.action.ControlContribution; import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IContributionItem; @@ -359,8 +361,9 @@ public class GitHistoryPage extends HistoryPage implements RefsChangedListener, } @Override - protected Collection<IAction> getActions() { - return actions; + protected Collection<IContributionItem> getActions() { + return actions.stream().map(ActionContributionItem::new) + .collect(Collectors.toList()); } @Override @@ -672,12 +675,13 @@ public class GitHistoryPage extends HistoryPage implements RefsChangedListener, } @Override - protected Collection<IAction> getActions() { + protected Collection<IContributionItem> getActions() { if (historyPage.getCurrentRepo() == null) { return new ArrayList<>(); } - List<IAction> actions = new ArrayList<>(); - actions.add(configureFiltersAction); + List<IContributionItem> actions = new ArrayList<>(); + actions.add(new ActionContributionItem(configureFiltersAction)); + actions.add(new Separator()); Set<RefFilter> filters = helper.getRefFilters(); List<RefFilter> sortedFilters = new ArrayList<>( filters); @@ -688,6 +692,7 @@ public class GitHistoryPage extends HistoryPage implements RefsChangedListener, .thenComparing(RefFilter::getFilterString, String.CASE_INSENSITIVE_ORDER)); + boolean separated = false; for (RefFilter filter : sortedFilters) { Action action = new ShownRefAction(filter, () -> { helper.setRefFilters(filters); @@ -695,7 +700,11 @@ public class GitHistoryPage extends HistoryPage implements RefsChangedListener, updateUiForMode(); historyPage.refresh(); }); - actions.add(action); + if (!separated && !filter.isPreconfigured()) { + actions.add(new Separator()); + separated = true; + } + actions.add(new ActionContributionItem(action)); } return actions; } diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java index 58df936768..5fec3702e9 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java @@ -40,6 +40,7 @@ import java.util.Set; import java.util.function.Consumer; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.commands.operations.IUndoContext; @@ -113,6 +114,7 @@ import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode; import org.eclipse.egit.ui.internal.selection.MultiViewerSelectionProvider; import org.eclipse.egit.ui.internal.selection.RepositorySelectionProvider; import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.ActionContributionItem; import org.eclipse.jface.action.ControlContribution; import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IContributionItem; @@ -4581,8 +4583,9 @@ public class StagingView extends ViewPart } @Override - protected Collection<IAction> getActions() { - return actions; + protected Collection<IContributionItem> getActions() { + return actions.stream().map(ActionContributionItem::new) + .collect(Collectors.toList()); } @Override |