Skip to content

Commit 26a8d4a

Browse files
authored
Bug/dave 701 (#366)
* margin * multi row tabletitle * fix multi row margin
1 parent 6c72527 commit 26a8d4a

File tree

8 files changed

+70
-12
lines changed

8 files changed

+70
-12
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package de.muenchen.dave.domain.pdf.helper;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
import lombok.NoArgsConstructor;
6+
7+
@AllArgsConstructor
8+
@NoArgsConstructor
9+
@Data
10+
public class DatatableTitle {
11+
12+
private String text;
13+
14+
private String cssClass;
15+
16+
private String cssClassOngoing;
17+
}

src/main/java/de/muenchen/dave/domain/pdf/templates/messstelle/DatentabelleMessstellePdf.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package de.muenchen.dave.domain.pdf.templates.messstelle;
22

3+
import de.muenchen.dave.domain.pdf.helper.DatatableTitle;
34
import de.muenchen.dave.domain.pdf.helper.DatentabellePdfZaehldaten;
5+
import java.util.List;
46
import lombok.Data;
57
import lombok.EqualsAndHashCode;
68

@@ -20,6 +22,6 @@ public class DatentabelleMessstellePdf extends BasicMessstellePdf {
2022

2123
private boolean schematischeUebersichtNeeded;
2224

23-
private String tableTitle;
25+
private List<DatatableTitle> datatableTitle;
2426

2527
}

src/main/java/de/muenchen/dave/services/pdfgenerator/FillPdfBeanService.java

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import de.muenchen.dave.domain.elasticsearch.Knotenarm;
1717
import de.muenchen.dave.domain.elasticsearch.Zaehlstelle;
1818
import de.muenchen.dave.domain.elasticsearch.Zaehlung;
19+
import de.muenchen.dave.domain.elasticsearch.detektor.Messquerschnitt;
1920
import de.muenchen.dave.domain.elasticsearch.detektor.Messstelle;
2021
import de.muenchen.dave.domain.enums.AuswertungsZeitraum;
2122
import de.muenchen.dave.domain.enums.TypeZeitintervall;
@@ -27,6 +28,7 @@
2728
import de.muenchen.dave.domain.pdf.components.MessstelleninformationenPdfComponent;
2829
import de.muenchen.dave.domain.pdf.components.ZaehlstelleninformationenPdfComponent;
2930
import de.muenchen.dave.domain.pdf.components.ZusatzinformationenPdfComponent;
31+
import de.muenchen.dave.domain.pdf.helper.DatatableTitle;
3032
import de.muenchen.dave.domain.pdf.helper.DatentabellePdfZaehldaten;
3133
import de.muenchen.dave.domain.pdf.helper.GanglinieTable;
3234
import de.muenchen.dave.domain.pdf.helper.GanglinieTableColumn;
@@ -56,6 +58,7 @@
5658
import java.time.format.DateTimeFormatter;
5759
import java.util.ArrayList;
5860
import java.util.Collection;
61+
import java.util.Comparator;
5962
import java.util.HashMap;
6063
import java.util.List;
6164
import java.util.Map;
@@ -388,6 +391,34 @@ static String createChartTitleFahrbeziehung(final OptionsDTO options, final Zaeh
388391
return chartTitle.toString();
389392
}
390393

394+
protected static List<DatatableTitle> createChartTitleAsList(final MessstelleOptionsDTO options, final Messstelle messstelle) {
395+
final List<DatatableTitle> titles = new ArrayList<>();
396+
if (options.getMessquerschnittIds().size() == messstelle.getMessquerschnitte().size()) {
397+
titles.add(new DatatableTitle(CHART_TITLE_GESAMTE_MESSSTELLE, "no_margin_top", "negativ_margin_bottom"));
398+
} else {
399+
messstelle.getMessquerschnitte().stream().sorted(Comparator.comparing(Messquerschnitt::getMqId))
400+
.filter(messquerschnitt -> options.getMessquerschnittIds().contains(messquerschnitt.getMqId()))
401+
.forEach(messquerschnitt -> {
402+
final StringBuilder chartTitle = new StringBuilder();
403+
chartTitle.append(messquerschnitt.getMqId());
404+
chartTitle.append(StringUtils.SPACE);
405+
chartTitle.append("-");
406+
chartTitle.append(StringUtils.SPACE);
407+
chartTitle.append(FahrtrichtungUtil.getLongTextOfFahrtrichtung(messquerschnitt.getFahrtrichtung()));
408+
chartTitle.append(StringUtils.SPACE);
409+
chartTitle.append("-");
410+
chartTitle.append(StringUtils.SPACE);
411+
chartTitle.append(StringUtils.defaultIfEmpty(messquerschnitt.getStandort(), KEINE_DATEN_VORHANDEN));
412+
titles.add(new DatatableTitle(chartTitle.toString(), "no_margin", ""));
413+
});
414+
titles.getLast().setCssClass("no_margin_top");
415+
if (titles.size() == 1) {
416+
titles.getFirst().setCssClassOngoing("negativ_margin_bottom");
417+
}
418+
}
419+
return titles;
420+
}
421+
391422
protected static String createChartTitle(final MessstelleOptionsDTO options, final Messstelle messstelle) {
392423
final StringBuilder chartTitle = new StringBuilder();
393424
if (options.getMessquerschnittIds().size() == messstelle.getMessquerschnitte().size()) {
@@ -1099,7 +1130,7 @@ public DatentabelleMessstellePdf fillDatentabellePdf(
10991130

11001131
datentabellePdf.setDocumentTitle(DATENTABELLE_TITLE_MESSSTELLE + messstelle.getMstId());
11011132

1102-
datentabellePdf.setTableTitle(createChartTitle(options, messstelle));
1133+
datentabellePdf.setDatatableTitle(createChartTitleAsList(options, messstelle));
11031134

11041135
datentabellePdf.setSchematischeUebersichtNeeded(messstelle.getMessquerschnitte().size() > options.getMessquerschnittIds().size());
11051136
datentabellePdf.setSchematischeUebersichtAsBase64Png(schematischeUebersichtAsBase64Png);

src/main/resources/pdf/templates/datentabelle.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
</tr>
3232
</table>
3333
<br/>
34-
<h5 class="datentabelle">{{tableTitle}}</h5>
34+
<h5 class="no_margin_top">{{tableTitle}}</h5>
3535
{{{datentabelleTableMustachePart}}}
3636
{{{zusatzinformationenMustachePart}}}
3737
</body>

src/main/resources/pdf/templates/messstelle/datentabelle.mustache

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
{{{logoMustachePart}}}
99
{{{footerMustachePart}}}
1010
<!--Ab der zweiten Seite soll über dem Content noch ein Header angezeigt werden-->
11-
<div style="position: running(datentabelle-header-second-page-and-onward); margin-top: 1.1cm">
11+
<div style="position: running(datentabelle-header-second-page-and-onward); margin-top: 1.1cm; margin-left: 0.2cm">
1212
<h4>{{documentTitle}}</h4>
1313
{{#messstelleninformationen}}
1414
<b>{{standort}}</b>
@@ -20,7 +20,11 @@
2020
</table>
2121
<br/>
2222
{{/messstelleninformationen}}
23-
<h5>{{tableTitle}}</h5>
23+
<table>
24+
{{#datatableTitle}}
25+
<tr><td><h5 class="{{cssClass}} {{cssClassOngoing}}">{{text}}</h5></td></tr>
26+
{{/datatableTitle}}
27+
</table>
2428
</div>
2529

2630
<table><tr>
@@ -31,7 +35,9 @@
3135
<br/>
3236
<table>
3337
<tr class="blank_row"> <td></td></tr>
34-
<tr><td><h5 class="datentabelle">{{tableTitle}}</h5></td></tr>
38+
{{#datatableTitle}}
39+
<tr><td><h5 class="{{cssClass}}">{{text}}</h5></td></tr>
40+
{{/datatableTitle}}
3541
</table>
3642
{{{datentabelleTableMustachePart}}}
3743
</body>

src/main/resources/pdf/templates/messstelle/ganglinie.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<br/>
1818
<table>
1919
<tr class="blank_row"> <td class="no_border"></td></tr>
20-
<tr><td class="no_border"><h5 class="no_margin">{{chartTitle}}</h5></td></tr>
20+
<tr><td class="no_border"><h5 class="no_margin_top">{{chartTitle}}</h5></td></tr>
2121
</table>
2222
<img src="{{chart}}"
2323
style="max-height: 100%; max-width: 100%;"

src/main/resources/pdf/templates/parts/datentabelle-css.mustache

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
/* Da @page:first explizit hier und in global-css gesetzt wird, betrifft folgender Abschnitt alle anderen Pages (2, 3, usw.) */
55
@page {
66
/* Wird benötigt damit der "richtige" content erst nach dem @top-left Element anfängt */
7-
margin-top: 5.6cm;
7+
margin-top: 6cm;
88
@top-left {
99
content: element(datentabelle-header-second-page-and-onward)
1010
}
@@ -29,10 +29,6 @@
2929
}
3030
}
3131
32-
h5.datentabelle {
33-
margin-top: 0px;
34-
}
35-
3632
td.datentabelle-cell-numeric {
3733
text-align: center;
3834
}

src/main/resources/pdf/templates/parts/global-css.mustache

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,14 @@
9494
height: 55px;
9595
}
9696
.no_margin {
97+
margin: 0px 0px 0px 0px;
98+
}
99+
.no_margin_top {
97100
margin-top: 0;
98101
}
102+
.negativ_margin_bottom {
103+
margin-bottom: -20px;
104+
}
99105
.no_border
100106
{
101107
border: 0;

0 commit comments

Comments
 (0)