private DisclosurePanel createDisclosurePanel(String headerText, List<RequirementDto> requirements, TimeLabel stationTimeLabel, TimeLabel posTimeLabel) {
DisclosurePanel disclosurePanel = new DisclosurePanel(headerText);
FlexTable disclosurePanelTable = new FlexTable();
for (int i = 0; i < requirements.size(); i++) {
RequirementDto requirement = requirements.get(i);
String imageUrl = imageUrlProvider.getImage16Url(requirement.getRequiredTypeCategoryID(), requirement.getRequiredTypeID(), requirement.getRequiredTypeNameGraphicIcon());
Image image = new Image(imageUrl);
image.setTitle(requirement.getRequiredTypeName());
image.addStyleName(resources.css().image16());
EveItemInfoLink imageItemInfoLink = new EveItemInfoLink(ccpJsMessages, image, requirement.getRequiredTypeID());
disclosurePanelTable.setWidget(i, 0, imageItemInfoLink);
disclosurePanelTable.setWidget(i, 1, new EveItemMarketDetailsLink(constants, urlMessages, ccpJsMessages, requirement.getRequiredTypeName(), requirement.getRequiredTypeID()));
disclosurePanelTable.setWidget(i, 2, new Label("x"));
QuantityLabel quantityLabel = new QuantityLabel(requirement.getQuantity());
HorizontalPanel quantityAndDamagePerJobPanel = new HorizontalPanel();
quantityAndDamagePerJobPanel.add(quantityLabel);
BigDecimal damagePerJob = requirement.getDamagePerJob();
if (BigDecimal.ONE.compareTo(damagePerJob) == 1 && BigDecimal.ZERO.compareTo(damagePerJob) != 0) {
DamagePerJobLabel damagePerJobLabel = new DamagePerJobLabel(damagePerJob);
damagePerJobLabel.addStyleName(resources.css().damagePerJob());
quantityAndDamagePerJobPanel.add(damagePerJobLabel);
quantityAndDamagePerJobPanel.setCellVerticalAlignment(damagePerJobLabel, HasVerticalAlignment.ALIGN_BOTTOM);