Browse Source

Images: display image on Form Page (4)

Andrew Grant 2 months ago
parent
commit
1d454fdb4a

+ 1 - 1
src/main/java/scot/carricksoftware/grants/bootstrap/DataLoadImages.java

@@ -49,7 +49,7 @@ public class DataLoadImages {
         logger.debug("DataLoadCensus::loadImage");
         ImageCommand imageCommand = new ImageCommandImpl();
         imageCommand.setName("Dalkeith");
-        imageCommand.setImageData("Dalkeith".getBytes());
+        imageCommand.setImageData("Wilson Avenue");
         imageCommand.setFileName("Midlothian");
 
         imageService.saveImageCommand(imageCommand);

+ 2 - 2
src/main/java/scot/carricksoftware/grants/commands/images/ImageCommand.java

@@ -17,10 +17,10 @@ public interface ImageCommand {
     void setName(String name);
 
     @SuppressWarnings("unused")
-    byte[] getImageData();
+    String getImageData();
 
     @SuppressWarnings("unused")
-    void setImageData(byte[] imageData);
+    void setImageData(String imageData);
 
     String getFileName();
 

+ 3 - 3
src/main/java/scot/carricksoftware/grants/commands/images/ImageCommandImpl.java

@@ -12,7 +12,7 @@ public class ImageCommandImpl implements ImageCommand{
 
     Long Id;
     private String name;
-    private byte[] imageData;
+    private String imageData;
     private String fileName;
 
     @Override
@@ -36,12 +36,12 @@ public class ImageCommandImpl implements ImageCommand{
     }
 
     @Override
-    public byte[] getImageData() {
+    public String getImageData() {
         return imageData;
     }
 
     @Override
-    public void setImageData(byte[] imageData) {
+    public void setImageData(String imageData) {
         this.imageData = imageData;
     }
 

+ 5 - 8
src/main/java/scot/carricksoftware/grants/controllers/images/images/ImageFormControllerImpl.java

@@ -77,7 +77,7 @@ public class ImageFormControllerImpl implements ImageFormController {
         logger.debug("ImageFormControllerImpl::saveOrUpdate");
 
         imageCommand.setFileName(file.getOriginalFilename());
-        imageCommand.setImageData(file.getBytes());
+        imageCommand.setImageData(convertToBase64(file.getBytes()));
 
         imageCommandValidator.validate(imageCommand, bindingResult);
 
@@ -89,7 +89,7 @@ public class ImageFormControllerImpl implements ImageFormController {
 
         ImageCommand savedCommand = imageService.saveImageCommand(imageCommand);
         model.addAttribute(ImageAttributeConstants.IMAGE_COMMAND, savedCommand);
-        model.addAttribute("image", new ImageUtil().getImgData(savedCommand.getImageData()));
+        model.addAttribute("image", savedCommand.getImageData());
         return MappingConstants.REDIRECT + ImageMappingConstants.IMAGE_SHOW.replace("{id}", "" + savedCommand.getId());
     }
 
@@ -100,7 +100,7 @@ public class ImageFormControllerImpl implements ImageFormController {
         logger.debug("ImageFormControllerImpl::saveOrUpdate");
         ImageCommand savedCommand = imageConverter.convert(imageService.findById(Long.valueOf(id)));
         if (savedCommand != null) {
-            model.addAttribute("image", new ImageUtil().getImgData(savedCommand.getImageData()));
+            model.addAttribute("image", savedCommand.getImageData());
         } else {
             model.addAttribute("image", null);
         }
@@ -108,11 +108,8 @@ public class ImageFormControllerImpl implements ImageFormController {
         return ViewConstants.IMAGE_FORM;
     }
 
-    public static class ImageUtil {
-
-        public String getImgData(byte[] byteData) {
-            return Base64.getMimeEncoder().encodeToString(byteData);
-        }
+    private String convertToBase64(byte[] byteData) {
+        return Base64.getMimeEncoder().encodeToString(byteData);
     }
 }
 

+ 3 - 3
src/main/java/scot/carricksoftware/grants/domains/images/Image.java

@@ -25,7 +25,7 @@ public class Image extends BaseEntity {
     @SuppressWarnings("JpaDataSourceORMInspection")
     @Lob
     @Column(name = "`imageData`")
-    private byte[] imageData;
+    private String imageData;
 
     public String getName() {
         return name;
@@ -35,11 +35,11 @@ public class Image extends BaseEntity {
         this.name = name;
     }
 
-    public byte[] getImageData() {
+    public String getImageData() {
         return imageData;
     }
 
-    public void setImageData(byte[] imageData) {
+    public void setImageData(String imageData) {
         this.imageData = imageData;
     }
 

+ 1 - 1
src/test/java/scot/carricksoftware/grants/bootstrap/DataLoadImagesTest.java

@@ -63,7 +63,7 @@ class DataLoadImagesTest {
         dataLoadImages.load();
         verify(imageServiceMock).saveImageCommand(captor.capture());
         assertEquals("Dalkeith", captor.getValue().getName());
-        assertEquals("Dalkeith", new String(captor.getValue().getImageData()));
+        assertEquals("Wilson Avenue", captor.getValue().getImageData());
         assertEquals("Midlothian", captor.getValue().getFileName());
     }
 

+ 2 - 2
src/test/java/scot/carricksoftware/grants/commands/images/ImageCommandTest.java

@@ -53,8 +53,8 @@ class ImageCommandTest {
     @Test
     public void setImageDataTest() {
         String string = GetRandomString();
-        imageCommand.setImageData(string.getBytes());
-        assertArrayEquals(string.getBytes(), imageCommand.getImageData());
+        imageCommand.setImageData(string);
+        assertEquals(string, imageCommand.getImageData());
     }
 
     @Test

+ 1 - 3
src/test/java/scot/carricksoftware/grants/converters/images/image/ImageCommandConverterTest.java

@@ -28,8 +28,7 @@ class ImageCommandConverterTest {
     void covertTest() {
         Long Id = GetRandomLong();
         String name = GetRandomString();
-        String imageString = GetRandomString();
-        byte[] imageData = imageString.getBytes();
+        String imageData = GetRandomString();
         String filename = GetRandomString();
 
         ImageCommand source = new ImageCommandImpl();
@@ -45,7 +44,6 @@ class ImageCommandConverterTest {
         assertNotNull(target);
         assertEquals(Id, target.getId());
         assertEquals(name, target.getName());
-        assertArrayEquals(imageData, target.getImageData());
         assertEquals(filename,target.getFileName());
     }
 }

+ 2 - 3
src/test/java/scot/carricksoftware/grants/converters/images/image/ImageConverterTest.java

@@ -27,8 +27,7 @@ class ImageConverterTest {
     void covertTest() {
         Long Id = GetRandomLong();
         String name = GetRandomString();
-        String imageString = GetRandomString();
-        byte[] imageData = imageString.getBytes();
+        String imageData = GetRandomString();
         String filename = GetRandomString();
 
         Image source = new Image();
@@ -43,7 +42,7 @@ class ImageConverterTest {
         assertNotNull(target);
         assertEquals(Id, target.getId());
         assertEquals(name, target.getName());
-        assertArrayEquals(imageData, target.getImageData());
+        assertEquals(imageData, target.getImageData());
         assertEquals(filename, target.getFileName());
     }
 }

+ 2 - 2
src/test/java/scot/carricksoftware/grants/domains/images/ImageTest.java

@@ -53,8 +53,8 @@ class ImageTest {
     @Test
     public void setImageDataTest() {
         String string = GetRandomString();
-        image.setImageData(string.getBytes());
-        assertArrayEquals(string.getBytes(), image.getImageData());
+        image.setImageData(string);
+        assertEquals(string, image.getImageData());
     }
 
     @Test