Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Redor2016-10-14 09:07:26 +0000
committerLaurent Redor2016-10-17 08:08:09 +0000
commit0d9122b0915061d4d74642e9d7794adb77ff2851 (patch)
treebda363b56cdd162bca926eec0ca8a53f1dc773a2
parent97629f9f2d6f51b3e5997fe97dc795a663b8f229 (diff)
downloadorg.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.java22
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) {

Back to the top