Skip to content

Commit 318b442

Browse files
committed
UY-1469 better image preview
1 parent acd7040 commit 318b442

File tree

1 file changed

+26
-6
lines changed

1 file changed

+26
-6
lines changed

vaadin-endpoint-common/src/main/java/io/imunity/vaadin/endpoint/common/plugins/attributes/ext/img/ImagePreviewDialogFactory.java

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,45 @@
88
import java.io.ByteArrayInputStream;
99
import java.util.UUID;
1010

11-
import com.vaadin.flow.component.confirmdialog.ConfirmDialog;
11+
import com.vaadin.flow.component.Unit;
12+
import com.vaadin.flow.component.button.Button;
13+
import com.vaadin.flow.component.dialog.Dialog;
14+
import com.vaadin.flow.component.html.H3;
1215
import com.vaadin.flow.component.html.Image;
16+
import com.vaadin.flow.component.orderedlayout.FlexComponent;
17+
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
1318
import com.vaadin.flow.server.StreamResource;
1419

1520
import pl.edu.icm.unity.base.attribute.image.UnityImage;
1621
import pl.edu.icm.unity.base.message.MessageSource;
1722

1823
class ImagePreviewDialogFactory
1924
{
20-
static ConfirmDialog getPreviewDialog(MessageSource msg, UnityImage value)
25+
static Dialog getPreviewDialog(MessageSource msg, UnityImage value)
2126
{
22-
ConfirmDialog confirmDialog = new ConfirmDialog();
23-
confirmDialog.setHeader(msg.getMessage("ImageAttributeHandler.image"));
24-
confirmDialog.setConfirmText(msg.getMessage("close"));
27+
Dialog confirmDialog = new Dialog();
28+
confirmDialog.setResizable(true);
2529
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(value.getImage());
2630
StreamResource streamResource = new StreamResource("imgattribute-" + UUID.randomUUID() + "." + value.getType().toExt(), () -> byteArrayInputStream);
2731
Image image = new Image(streamResource, "");
32+
image.setWidth(value.getWidth(), Unit.PIXELS);
33+
image.setHeight(value.getHeight(), Unit.PIXELS);
2834
confirmDialog.add(image);
29-
confirmDialog.addConfirmListener(event -> confirmDialog.close());
35+
VerticalLayout dialogLayout = createDialogLayout(confirmDialog, msg, image);
36+
confirmDialog.add(dialogLayout);
3037
return confirmDialog;
3138
}
39+
40+
private static VerticalLayout createDialogLayout(Dialog dialog, MessageSource msg, Image image) {
41+
H3 headline = new H3(msg.getMessage("ImageAttributeHandler.image"));
42+
Button closeButton = new Button(msg.getMessage("close"));
43+
closeButton.addClickListener(e -> dialog.close());
44+
VerticalLayout dialogLayout = new VerticalLayout(headline, image,
45+
closeButton);
46+
dialogLayout.setSizeFull();
47+
dialogLayout.setPadding(false);
48+
dialogLayout.setAlignItems(FlexComponent.Alignment.STRETCH);
49+
dialogLayout.setAlignSelf(FlexComponent.Alignment.END, closeButton);
50+
return dialogLayout;
51+
}
3252
}

0 commit comments

Comments
 (0)