diff --git a/src/main/java/GUI/CaptureCtl.java b/src/main/java/GUI/CaptureCtl.java index 76bae89..0d6de4f 100644 --- a/src/main/java/GUI/CaptureCtl.java +++ b/src/main/java/GUI/CaptureCtl.java @@ -82,10 +82,10 @@ public class CaptureCtl { image.setPreserveRatio(true); // Set the image to the image View - image.setImage(SOMLayout.SPLASH_IMAGE); + image.setImage(SOMLayout.LOGO_IMAGE); // make it fit the height of the Screen - image.setFitHeight(SOMLayout.screenHeight); + image.setFitWidth(SOMLayout.screenHeight / 2); // Calculate the offset to center it horizontally if the image is wider than the screen (or narrower) double aspect = image.getImage().getWidth() / image.getImage().getHeight(); diff --git a/src/main/java/GUI/GalleryCtl.java b/src/main/java/GUI/GalleryCtl.java index 3ba8586..d1fe8fc 100644 --- a/src/main/java/GUI/GalleryCtl.java +++ b/src/main/java/GUI/GalleryCtl.java @@ -138,7 +138,8 @@ public class GalleryCtl { imageView.setPreserveRatio(true); // Set the image to the image View - imageView.setImage(SOMLayout.SPLASH_IMAGE); + // TODO ist this ever used? + imageView.setImage(SOMLayout.LOGO_IMAGE); // make it fit the height of the Screen imageView.setFitHeight(SOMLayout.screenHeight / 3); diff --git a/src/main/java/GUI/PictureCtl.java b/src/main/java/GUI/PictureCtl.java index ae49f65..5075685 100644 --- a/src/main/java/GUI/PictureCtl.java +++ b/src/main/java/GUI/PictureCtl.java @@ -10,7 +10,7 @@ import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; import javafx.scene.input.TouchEvent; import javafx.scene.layout.GridPane; -import javafx.scene.layout.Pane; +import javafx.scene.layout.StackPane; import model.SOMEvent; import model.SOMImage; import model.SOMLayout; @@ -23,7 +23,7 @@ import java.util.List; */ public class PictureCtl { @FXML - public Pane pane; + public StackPane pane; @FXML public GridPane grid; @@ -55,7 +55,7 @@ public class PictureCtl { private void setPane() { pane.setPrefSize(SOMLayout.screenWidth, SOMLayout.screenHeight); - pane.setBackground(SOMLayout.WHITE_BG); + pane.setBackground(SOMLayout.BLACK_BG); } private void setGrid() { @@ -240,15 +240,31 @@ public class PictureCtl { } private void setImage() { +// // Set the image aspect ratio to be preserved +// image.setPreserveRatio(true); +// +// // Set the image to the image View +// Image splash = SOMLayout.LOGO_IMAGE; +// image.setImage(splash); +// +// // make it fit the height of the Screen +// image.setFitWidth(SOMLayout.screenHeight/2); + // Set the image aspect ratio to be preserved image.setPreserveRatio(true); // Set the image to the image View - Image splash = SOMLayout.SPLASH_IMAGE; - image.setImage(splash); + image.setImage(SOMLayout.LOGO_IMAGE); // make it fit the height of the Screen - image.setFitHeight(SOMLayout.screenHeight); + image.setFitWidth(SOMLayout.screenHeight / 2); + + // Calculate the offset to center it horizontally if the image is wider than the screen (or narrower) + double aspect = image.getImage().getWidth() / image.getImage().getHeight(); + double scaledWidth = aspect * SOMLayout.screenHeight; + double offset = (scaledWidth - SOMLayout.screenWidth) / 2; + + image.setX(-offset); // Get the Event Images List somImageList = SOMEvent.getInstance().getImages(); diff --git a/src/main/java/model/SOMConfig.java b/src/main/java/model/SOMConfig.java index 79f3164..9e04409 100644 --- a/src/main/java/model/SOMConfig.java +++ b/src/main/java/model/SOMConfig.java @@ -1,5 +1,7 @@ package model; +import workers.MachineWorker; + import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; @@ -8,6 +10,8 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import java.io.File; import java.nio.file.Files; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.Calendar; @XmlRootElement(name = "Config") @@ -17,10 +21,12 @@ public class SOMConfig { // important Paths @XmlElement(name = "PICTURES_PATH") public static final File PICTURES_PATH = new File("images"); + @XmlElement(name = "UPLOAD_PATH") + public static final String UPLOAD_PATH = getEventPicDir(); // The Box's ID // Todo Throw out!! or by MAC Adress @XmlElement(name = "BOX_ID") - public static final String BOX_ID = "selfomat-42"; + public static final String BOX_ID = MachineWorker.getHostName(); // Number of pictures in series mode @XmlElement(name = "SERIES_COUNTER") public static final int SERIES_COUNTER = 4; @@ -59,6 +65,30 @@ public class SOMConfig { return config; } + /** + * Gets the Directory for the Event and Creates the Folders + * + * @return + */ + private static String getEventPicDir() { + // get current Date in String for Upload-dir + Calendar cal = Calendar.getInstance(); + DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); + String timeString = df.format(cal.getTime()); + + File picturesPath = SOMConfig.PICTURES_PATH; + +// File eventPicDir = new File(picturesPath.toString() + "/" + timeString +// + "/" + MachineWorker.getHostName()); + // TODO catch possible fail +// eventPicDir.mkdirs(); + + String eventPicDir = picturesPath.toString() + "/" + timeString + + "/" + MachineWorker.getHostName(); + + return eventPicDir; + } + // Write Config private void writeConfig() { try { @@ -116,5 +146,4 @@ public class SOMConfig { java.sql.Timestamp c = new java.sql.Timestamp(now.getTime()); return c.getTime(); } - } \ No newline at end of file diff --git a/src/main/java/model/SOMLayout.java b/src/main/java/model/SOMLayout.java index f8f5c9a..b83a233 100644 --- a/src/main/java/model/SOMLayout.java +++ b/src/main/java/model/SOMLayout.java @@ -25,7 +25,7 @@ public class SOMLayout { public static final javafx.scene.image.Image FORTH_IMAGE = new javafx.scene.image.Image(ClassLoader.class.getResource("/img/SOMIcons_Forth.png").toString()); //TODO LINK right image //CI public static final javafx.scene.image.Image LOGO_IMAGE = new javafx.scene.image.Image(ClassLoader.class.getResource("/img/SOMLogo.png").toString()); - public static final javafx.scene.image.Image SPLASH_IMAGE = new javafx.scene.image.Image(ClassLoader.class.getResource("/img/SOMSplash.jpg").toString()); + // public static final javafx.scene.image.Image SPLASH_IMAGE = new javafx.scene.image.Image(ClassLoader.class.getResource("/img/SOMSplash.jpg").toString()); public static final javafx.scene.paint.Color WHITE = new javafx.scene.paint.Color(1, 1, 1, 1); public static final Background WHITE_BG = new Background(new BackgroundFill(WHITE, null, null)); // Screen diff --git a/src/main/java/workers/FilesWorker.java b/src/main/java/workers/FilesWorker.java index 529db55..856d17c 100644 --- a/src/main/java/workers/FilesWorker.java +++ b/src/main/java/workers/FilesWorker.java @@ -16,8 +16,6 @@ import java.io.IOException; import java.net.InetSocketAddress; import java.net.Socket; import java.nio.file.*; -import java.text.DateFormat; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -52,7 +50,7 @@ public class FilesWorker { * @return */ public static File getSourcePath() { - File src = new File(getEventPicDir().toString() + "/src"); + File src = new File(SOMConfig.PICTURES_PATH.toString() + "/src"); // TODO catch possible fail src.mkdirs(); @@ -66,7 +64,7 @@ public class FilesWorker { * @return */ public static File getPreviewPath() { - File prv = new File(getEventPicDir().toString() + "/prv"); + File prv = new File(SOMConfig.PICTURES_PATH.toString() + "/prv"); // TODO catch possible fail prv.mkdirs(); @@ -80,7 +78,7 @@ public class FilesWorker { * @return */ public static File getThumbPath() { - File tmb = new File(getEventPicDir().toString() + "/tmb"); + File tmb = new File(SOMConfig.PICTURES_PATH.toString() + "/tmb"); // TODO catch possible fail tmb.mkdirs(); @@ -94,7 +92,7 @@ public class FilesWorker { * @return */ public static File getFinalPath() { - File fnl = new File(getEventPicDir().toString() + "/fnl"); + File fnl = new File(SOMConfig.PICTURES_PATH.toString() + "/fnl"); // TODO catch possible fail fnl.mkdirs(); @@ -108,36 +106,13 @@ public class FilesWorker { * @return */ public static File getTempPath() { - File tmp = new File(getEventPicDir().toString() + "/tmp"); + File tmp = new File(SOMConfig.PICTURES_PATH.toString() + "/tmp"); // TODO catch possible fail tmp.mkdirs(); return tmp; } - /** - * Gets the Directory for the Event and Creates the Folders - * - * @return - */ - private static File getEventPicDir() { - DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); - - String timeString = df.format(event.getDate()); - - String boxID = SOMConfig.BOX_ID; - - File picturesPath = SOMConfig.PICTURES_PATH; - - File eventPicDir = new File(picturesPath.toString() + "/" + timeString - + "/" + boxID); - - // TODO catch possible fail - eventPicDir.mkdirs(); - - return eventPicDir; - } - private static boolean internet() { Socket sock = new Socket(); diff --git a/src/main/java/workers/MachineWorker.java b/src/main/java/workers/MachineWorker.java new file mode 100644 index 0000000..066590c --- /dev/null +++ b/src/main/java/workers/MachineWorker.java @@ -0,0 +1,30 @@ +package workers; + +import java.net.InetAddress; +import java.net.UnknownHostException; + +/** + * This Class works through all kinds of Machine-Related Values such as Screen size, Machine Name, OS etc. + * Created by Simon on 12.12.2016. + */ +public class MachineWorker { + static int OperatingSystem; + static String HostName; + static int[] Screen; + + public static String getHostName() { + try { + InetAddress addr; + addr = InetAddress.getLocalHost(); + HostName = addr.getHostName(); + } catch (UnknownHostException ex) { + System.out.println("Hostname can not be resolved"); + } + return HostName; + } + + public static int[] getScreen() { + return Screen; + } + +} diff --git a/src/main/resources/fxml/picture.fxml b/src/main/resources/fxml/picture.fxml index c3fd3d1..83913b0 100644 --- a/src/main/resources/fxml/picture.fxml +++ b/src/main/resources/fxml/picture.fxml @@ -3,9 +3,10 @@ - + @@ -27,4 +28,4 @@