Fix so hidden groups don't show up at all

This commit is contained in:
drdev
2014-07-17 03:38:38 +00:00
parent c09b003f19
commit fd839c81ec
2 changed files with 38 additions and 40 deletions

View File

@@ -977,6 +977,9 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
int fontOffsetY = (GROUP_HEADER_HEIGHT - fm.getHeight()) / 2 + fm.getAscent(); int fontOffsetY = (GROUP_HEADER_HEIGHT - fm.getHeight()) / 2 + fm.getAscent();
for (Group group : groups) { for (Group group : groups) {
if (group.items.isEmpty()) {
continue;
}
if (group.getBottom() < visibleTop) { if (group.getBottom() < visibleTop) {
continue; continue;
} }
@@ -1004,29 +1007,24 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
FSkin.setGraphicsColor(g2d, GROUP_HEADER_LINE_COLOR); FSkin.setGraphicsColor(g2d, GROUP_HEADER_LINE_COLOR);
g2d.drawLine(x, y, bounds.x + bounds.width - 1, y); g2d.drawLine(x, y, bounds.x + bounds.width - 1, y);
if (!group.items.isEmpty()) { //draw expand/collapse glyph as long as group isn't empty //draw expand/collapse glyph
Polygon glyph = new Polygon(); Polygon glyph = new Polygon();
int offset = GROUP_HEADER_GLYPH_WIDTH / 2 + 1; int offset = GROUP_HEADER_GLYPH_WIDTH / 2 + 1;
x = bounds.x + offset; x = bounds.x + offset;
if (group.isCollapsed) { if (group.isCollapsed) {
y++; y++;
glyph.addPoint(x, y - offset); glyph.addPoint(x, y - offset);
glyph.addPoint(x + offset, y); glyph.addPoint(x + offset, y);
glyph.addPoint(x, y + offset); glyph.addPoint(x, y + offset);
}
else {
glyph.addPoint(x - offset + 2, y + offset - 1);
glyph.addPoint(x + offset, y + offset - 1);
glyph.addPoint(x + offset, y - offset + 1);
}
g2d.fill(glyph);
} }
if (group.isCollapsed || group.items.isEmpty()) { else {
continue; glyph.addPoint(x - offset + 2, y + offset - 1);
glyph.addPoint(x + offset, y + offset - 1);
glyph.addPoint(x + offset, y - offset + 1);
} }
} g2d.fill(glyph);
else if (group.items.isEmpty()) {
continue; if (group.isCollapsed) { continue; }
} }
ItemInfo skippedItem = null; ItemInfo skippedItem = null;

View File

@@ -791,6 +791,8 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
@Override @Override
public void draw(Graphics g) { public void draw(Graphics g) {
if (items.isEmpty()) { return; }
if (groupBy != null) { if (groupBy != null) {
//draw group name and horizontal line //draw group name and horizontal line
float x = GROUP_HEADER_GLYPH_WIDTH + PADDING + 1; float x = GROUP_HEADER_GLYPH_WIDTH + PADDING + 1;
@@ -801,24 +803,24 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
y += GROUP_HEADER_HEIGHT / 2; y += GROUP_HEADER_HEIGHT / 2;
g.drawLine(GROUP_HEADER_LINE_THICKNESS, GROUP_HEADER_LINE_COLOR, x, y, getWidth(), y); g.drawLine(GROUP_HEADER_LINE_THICKNESS, GROUP_HEADER_LINE_COLOR, x, y, getWidth(), y);
if (!items.isEmpty()) { //draw expand/collapse glyph as long as group isn't empty //draw expand/collapse glyph
float offset = GROUP_HEADER_GLYPH_WIDTH / 2 + 1; float offset = GROUP_HEADER_GLYPH_WIDTH / 2 + 1;
x = offset; x = offset;
if (isCollapsed) { if (isCollapsed) {
y += GROUP_HEADER_LINE_THICKNESS; y += GROUP_HEADER_LINE_THICKNESS;
g.fillTriangle(GROUP_HEADER_LINE_COLOR, g.fillTriangle(GROUP_HEADER_LINE_COLOR,
x, y - offset, x, y - offset,
x + offset, y, x + offset, y,
x, y + offset); x, y + offset);
}
else {
g.fillTriangle(GROUP_HEADER_LINE_COLOR,
x - offset + 2, y + offset - 1,
x + offset, y + offset - 1,
x + offset, y - offset + 1);
}
} }
if (isCollapsed || items.isEmpty()) { return; } else {
g.fillTriangle(GROUP_HEADER_LINE_COLOR,
x - offset + 2, y + offset - 1,
x + offset, y + offset - 1,
x + offset, y - offset + 1);
}
if (isCollapsed) { return; }
float visibleLeft = getScrollLeft(); float visibleLeft = getScrollLeft();
float visibleRight = visibleLeft + getWidth(); float visibleRight = visibleLeft + getWidth();
@@ -834,8 +836,6 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
return; return;
} }
if (items.isEmpty()) { return; }
final float visibleTop = getScrollValue(); final float visibleTop = getScrollValue();
final float visibleBottom = visibleTop + getScroller().getHeight(); final float visibleBottom = visibleTop + getScroller().getHeight();
for (ItemInfo itemInfo : items) { for (ItemInfo itemInfo : items) {