diff options
| author | Laurent Redor | 2016-10-14 09:07:26 +0000 |
|---|---|---|
| committer | Laurent Redor | 2016-10-17 08:08:09 +0000 |
| commit | 0d9122b0915061d4d74642e9d7794adb77ff2851 (patch) | |
| tree | bda363b56cdd162bca926eec0ca8a53f1dc773a2 | |
| parent | 97629f9f2d6f51b3e5997fe97dc795a663b8f229 (diff) | |
| download | org.eclipse.sirius-0d9122b0915061d4d74642e9d7794adb77ff2851.tar.gz org.eclipse.sirius-0d9122b0915061d4d74642e9d7794adb77ff2851.tar.xz org.eclipse.sirius-0d9122b0915061d4d74642e9d7794adb77ff2851.zip | |
[505858] Fix layers and filters drop down menu location in tabbar
Since Eclipse Kepler, the drop down menu was not at the right location
after diagram opening. The visibility of items are now computed sooner
to avoid this problem.
Bug: 505858
Change-Id: I287079efe6df7f4aa80307f04dcc811d603fa781
Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
| -rw-r--r-- | plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/TabbarFillerWithContributions.java | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/TabbarFillerWithContributions.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/TabbarFillerWithContributions.java index b6c85c7207..950c8b7c63 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/TabbarFillerWithContributions.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/TabbarFillerWithContributions.java @@ -83,6 +83,12 @@ public class TabbarFillerWithContributions extends AbstractTabbarFiller { addDiagramContributionItems(); addDiagramElementContributionItems(); + // The visibility of static contributions are done before calling + // addTabbarContributions() to have a correct index when + // org.eclipse.sirius.diagram.ui.tools.internal.editor.tabbar.AbstractMenuContributionItem.TabbarContributionItem.fill(ToolBar, + // int) is called + refreshItemsVisibility(null); + // Add dynamic contributions ArrayList<IContributionItem> currentContributions = new ArrayList<IContributionItem>(Arrays.asList(manager.getItems())); addTabbarContributions(); @@ -100,6 +106,18 @@ public class TabbarFillerWithContributions extends AbstractTabbarFiller { */ @Override public void update(ISelection iSelection) { + refreshItemsVisibility(iSelection); + + manager.update(true); + } + + /** + * Refresh the visibility of items according to the given selection. + * + * @param selection + * the current selection. + */ + protected void refreshItemsVisibility(ISelection selection) { List<IContributionItem> existingItems = Arrays.asList(manager.getItems()); for (IContributionItem current : existingItems) { if (!dynamicContributions.contains(current) && !current.isSeparator()) { @@ -107,14 +125,12 @@ public class TabbarFillerWithContributions extends AbstractTabbarFiller { } } - List<IContributionItem> contributionItems = getContributionItems(iSelection); + List<IContributionItem> contributionItems = getContributionItems(selection); for (IContributionItem item : contributionItems) { if (existingItems.contains(item)) { item.setVisible(true); } } - - manager.update(true); } private List<IContributionItem> getContributionItems(ISelection selection) { |
