Erweiterungen

This commit is contained in:
2025-08-22 11:19:06 +02:00
parent 9d8bf9487a
commit b4dd4fa902

View File

@@ -64,11 +64,13 @@ public class EditProfileView extends HorizontalLayout {
// Linke Spalte: Formular // Linke Spalte: Formular
VerticalLayout formColumn = new VerticalLayout(); VerticalLayout formColumn = new VerticalLayout();
formColumn.setWidth("68%"); formColumn.setWidth("68%");
formColumn.setHeightFull();
formColumn.setPadding(false); formColumn.setPadding(false);
formColumn.setSpacing(false); formColumn.setSpacing(false);
// TabSheet // TabSheet
TabSheet tabSheet = new TabSheet(); TabSheet tabSheet = new TabSheet();
tabSheet.setSizeFull(); tabSheet.setSizeFull();
formColumn.setFlexGrow(1, tabSheet);
FormLayout form = new FormLayout(); FormLayout form = new FormLayout();
@@ -289,21 +291,26 @@ public class EditProfileView extends HorizontalLayout {
billingRight.setWidth("55%"); billingRight.setWidth("55%");
billingRight.setPadding(false); billingRight.setPadding(false);
billingRight.setSpacing(false); billingRight.setSpacing(false);
billingRight.setHeight("70vh"); billingRight.setHeightFull();
billingTab.setFlexGrow(1, billingRight);
H3 previewTitle = new H3("Rechnungsvorschau"); H3 previewTitle = new H3("Rechnungsvorschau");
previewTitle.getStyle().set("margin", "0 0 var(--lumo-space-s) 0"); previewTitle.getStyle().set("margin", "0 0 var(--lumo-space-s) 0");
// Echte PDF-Vorschau mittels StreamResource und iframe // Echte PDF-Vorschau mittels StreamResource und iframe
Div previewWrapper = new Div(); Div previewWrapper = new Div();
previewWrapper.setWidth("100%"); previewWrapper.setWidth("100%");
previewWrapper.setHeight("100%"); previewWrapper.setHeight("600px");
previewWrapper.getStyle() previewWrapper.getStyle()
.set("overflow", "auto"); .set("overflow", "auto")
.set("background", "var(--lumo-contrast-10pct)")
.set("padding", "0");
// Initial noch keine PDF laden (erst bei aktiver Checkbox) // Initial noch keine PDF laden (erst bei aktiver Checkbox)
pdfFrame = new IFrame(); pdfFrame = new IFrame();
pdfFrame.setWidth("100%"); pdfFrame.setWidth("100%");
pdfFrame.setHeight("100%"); pdfFrame.setHeight("100%");
pdfFrame.getStyle().set("border", "none");
pdfFrame.getStyle().set("background", "var(--lumo-contrast-10pct)");
previewWrapper.removeAll(); previewWrapper.removeAll();
previewWrapper.add(pdfFrame); previewWrapper.add(pdfFrame);
@@ -408,11 +415,19 @@ public class EditProfileView extends HorizontalLayout {
pdfFrame.setSrc((String) null); pdfFrame.setSrc((String) null);
} }
} }
// Sicherstellen, dass das IFrame den verfügbaren Raum nutzt
if (pdfFrame != null) {
pdfFrame.setWidth("100%");
pdfFrame.setHeight("100%");
pdfFrame.getStyle().set("border", "none");
pdfFrame.getStyle().set("display", "block");
}
} }
private void refreshPdf() { private void refreshPdf() {
byte[] bytes = generatePreviewPdf(); byte[] bytes = generatePreviewPdf();
String dataUrl = "data:application/pdf;base64," + Base64.getEncoder().encodeToString(bytes) + "#toolbar=0&navpanes=0&zoom=page-width&view=FitH"; String dataUrl = "data:application/pdf;base64," + Base64.getEncoder().encodeToString(bytes)
+ "#toolbar=0&navpanes=0&statusbar=0&view=Fit&zoom=page-fit";
if (pdfFrame != null) { if (pdfFrame != null) {
pdfFrame.setSrc(dataUrl); pdfFrame.setSrc(dataUrl);
} }