Modified PanelComponent to hold a ProgressBarComponent

This commit is contained in:
noremac201
2018-01-03 15:41:03 -06:00
parent f9eae3e7c1
commit 4a2ba1c6fe

View File

@@ -33,6 +33,7 @@ import java.awt.Point;
import java.awt.Rectangle;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
@@ -74,6 +75,9 @@ public class PanelComponent implements RenderableEntity
@Getter
private List<Line> lines = new ArrayList<>();
@Setter
private ProgressBarComponent progressBar;
@Setter
private int width = 140;
@@ -81,10 +85,11 @@ public class PanelComponent implements RenderableEntity
public Dimension render(Graphics2D graphics, Point parent)
{
final Dimension dimension = new Dimension();
final int elementNumber = (Strings.isNullOrEmpty(title) ? 0 : 1) + lines.size();
final int elementNumber = (Strings.isNullOrEmpty(title) ? 0 : 1) + lines.size() + (Objects.isNull(progressBar) ? 0 : 1);
int height = elementNumber == 0 ? 0 :
TOP_BORDER + (graphics.getFontMetrics().getHeight() * elementNumber)
+ SEPARATOR * elementNumber + BOTTOM_BORDER;
+ SEPARATOR * elementNumber + (Objects.isNull(progressBar) ? 0 : progressBar.getHeight() / 2)
+ BOTTOM_BORDER;
dimension.setSize(width, height);
if (dimension.height == 0)
@@ -131,6 +136,14 @@ public class PanelComponent implements RenderableEntity
y += metrics.getHeight() + SEPARATOR;
}
//Render progress bar
if (!Objects.isNull(progressBar))
{
progressBar.setWidth(width - LEFT_BORDER - RIGHT_BORDER);
progressBar.setPosition(new Point(position.x + LEFT_BORDER, y - (metrics.getHeight() / 2)));
progressBar.render(graphics, parent);
}
return dimension;
}
}