From 038418ca0db860dee01e963d4418bcdfb085ddb2 Mon Sep 17 00:00:00 2001 From: drdev Date: Tue, 4 Feb 2014 03:29:34 +0000 Subject: [PATCH] Fix selection after expand/collapse group --- .../gui/toolbox/itemmanager/views/ImageView.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ImageView.java b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ImageView.java index 34393679907..93f4be5f396 100644 --- a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ImageView.java +++ b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ImageView.java @@ -63,13 +63,24 @@ public class ImageView extends ItemView { //if didn't click on item, see if clicked on group header if (groupBy != null) { Point point = e.getPoint(); + boolean collapsedChanged = false; for (Group group : groups) { - if (group.getBounds().contains(point)) { + if (!collapsedChanged && group.getBounds().contains(point)) { if (point.y < group.getTop() + GROUP_HEADER_HEIGHT) { group.isCollapsed = !group.isCollapsed; updateLayout(); + collapsedChanged = true; + } + else { + break; + } + } + if (collapsedChanged) { + //if found group to expand/collapse, select next visible item starting at beginning of group + if (!group.isCollapsed && !group.items.isEmpty()) { + setSelectedIndex(group.piles.get(0).items.get(0).index); + break; } - break; } } } @@ -218,6 +229,7 @@ public class ImageView extends ItemView { } private void updateLayout() { + clearSelection(); //must clear selection since indices and visible items will be changing orderedItems.clear(); int x, groupY;