Fix so programatically selecting an item in collapsed group auto-expands group

This commit is contained in:
drdev
2014-02-04 04:07:16 +00:00
parent d4bc720dd0
commit f767ca34ce
2 changed files with 11 additions and 5 deletions

View File

@@ -387,9 +387,17 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
@Override @Override
public int getIndexOfItem(T item) { public int getIndexOfItem(T item) {
for (int i = getCount() - 1; i >= 0; i--) { for (Group group : groups) {
if (orderedItems.get(i).item == item) { for (ItemInfo itemInfo : group.items) {
return i; if (itemInfo.item == item) {
//if group containing item is collapsed, expand it so the item can be selected and has a valid index
if (group.isCollapsed) {
group.isCollapsed = false;
clearSelection(); //must clear selection since indices and visible items will be changing
updateLayout();
}
return itemInfo.index;
}
} }
} }
return -1; return -1;

View File

@@ -156,8 +156,6 @@ public abstract class ItemView<T extends InventoryItem> {
return setSelectedItems(items, true); return setSelectedItems(items, true);
} }
public final boolean setSelectedItems(Iterable<T> items, boolean scrollIntoView) { public final boolean setSelectedItems(Iterable<T> items, boolean scrollIntoView) {
if (getCount() == 0) { return false; }
List<Integer> indices = new ArrayList<Integer>(); List<Integer> indices = new ArrayList<Integer>();
for (T item : items) { for (T item : items) {
int index = getIndexOfItem(item); int index = getIndexOfItem(item);