*** MAYBE NOT WORKING ***
Added Hostname for Booth identification while Upload Removed Date Structure inside Images Folder --> CHECK IN BACKUP IF FILES GET OVERWRITTEN Changed Event date structure with upload Date structure in upload --> ALSO TESTING NECCESSARY Changed Splash Screen JPG for Logo PNG in Capture and Picture Panels --> Testing
@@ -82,10 +82,10 @@ public class CaptureCtl {
|
|||||||
image.setPreserveRatio(true);
|
image.setPreserveRatio(true);
|
||||||
|
|
||||||
// Set the image to the image View
|
// 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
|
// 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)
|
// 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 aspect = image.getImage().getWidth() / image.getImage().getHeight();
|
||||||
|
|||||||
@@ -138,7 +138,8 @@ public class GalleryCtl {
|
|||||||
imageView.setPreserveRatio(true);
|
imageView.setPreserveRatio(true);
|
||||||
|
|
||||||
// Set the image to the image View
|
// 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
|
// make it fit the height of the Screen
|
||||||
imageView.setFitHeight(SOMLayout.screenHeight / 3);
|
imageView.setFitHeight(SOMLayout.screenHeight / 3);
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import javafx.scene.image.ImageView;
|
|||||||
import javafx.scene.input.MouseEvent;
|
import javafx.scene.input.MouseEvent;
|
||||||
import javafx.scene.input.TouchEvent;
|
import javafx.scene.input.TouchEvent;
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
import javafx.scene.layout.Pane;
|
import javafx.scene.layout.StackPane;
|
||||||
import model.SOMEvent;
|
import model.SOMEvent;
|
||||||
import model.SOMImage;
|
import model.SOMImage;
|
||||||
import model.SOMLayout;
|
import model.SOMLayout;
|
||||||
@@ -23,7 +23,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class PictureCtl {
|
public class PictureCtl {
|
||||||
@FXML
|
@FXML
|
||||||
public Pane pane;
|
public StackPane pane;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
public GridPane grid;
|
public GridPane grid;
|
||||||
@@ -55,7 +55,7 @@ public class PictureCtl {
|
|||||||
|
|
||||||
private void setPane() {
|
private void setPane() {
|
||||||
pane.setPrefSize(SOMLayout.screenWidth, SOMLayout.screenHeight);
|
pane.setPrefSize(SOMLayout.screenWidth, SOMLayout.screenHeight);
|
||||||
pane.setBackground(SOMLayout.WHITE_BG);
|
pane.setBackground(SOMLayout.BLACK_BG);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setGrid() {
|
private void setGrid() {
|
||||||
@@ -240,15 +240,31 @@ public class PictureCtl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setImage() {
|
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
|
// Set the image aspect ratio to be preserved
|
||||||
image.setPreserveRatio(true);
|
image.setPreserveRatio(true);
|
||||||
|
|
||||||
// Set the image to the image View
|
// Set the image to the image View
|
||||||
Image splash = SOMLayout.SPLASH_IMAGE;
|
image.setImage(SOMLayout.LOGO_IMAGE);
|
||||||
image.setImage(splash);
|
|
||||||
|
|
||||||
// make it fit the height of the Screen
|
// 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
|
// Get the Event Images
|
||||||
List<SOMImage> somImageList = SOMEvent.getInstance().getImages();
|
List<SOMImage> somImageList = SOMEvent.getInstance().getImages();
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package model;
|
package model;
|
||||||
|
|
||||||
|
import workers.MachineWorker;
|
||||||
|
|
||||||
import javax.xml.bind.JAXBContext;
|
import javax.xml.bind.JAXBContext;
|
||||||
import javax.xml.bind.JAXBException;
|
import javax.xml.bind.JAXBException;
|
||||||
import javax.xml.bind.Marshaller;
|
import javax.xml.bind.Marshaller;
|
||||||
@@ -8,6 +10,8 @@ import javax.xml.bind.annotation.XmlElement;
|
|||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
|
||||||
@XmlRootElement(name = "Config")
|
@XmlRootElement(name = "Config")
|
||||||
@@ -17,10 +21,12 @@ public class SOMConfig {
|
|||||||
// important Paths
|
// important Paths
|
||||||
@XmlElement(name = "PICTURES_PATH")
|
@XmlElement(name = "PICTURES_PATH")
|
||||||
public static final File PICTURES_PATH = new File("images");
|
public static final File PICTURES_PATH = new File("images");
|
||||||
|
@XmlElement(name = "UPLOAD_PATH")
|
||||||
|
public static final String UPLOAD_PATH = getEventPicDir();
|
||||||
// The Box's ID
|
// The Box's ID
|
||||||
// Todo Throw out!! or by MAC Adress
|
// Todo Throw out!! or by MAC Adress
|
||||||
@XmlElement(name = "BOX_ID")
|
@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
|
// Number of pictures in series mode
|
||||||
@XmlElement(name = "SERIES_COUNTER")
|
@XmlElement(name = "SERIES_COUNTER")
|
||||||
public static final int SERIES_COUNTER = 4;
|
public static final int SERIES_COUNTER = 4;
|
||||||
@@ -59,6 +65,30 @@ public class SOMConfig {
|
|||||||
return config;
|
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
|
// Write Config
|
||||||
private void writeConfig() {
|
private void writeConfig() {
|
||||||
try {
|
try {
|
||||||
@@ -116,5 +146,4 @@ public class SOMConfig {
|
|||||||
java.sql.Timestamp c = new java.sql.Timestamp(now.getTime());
|
java.sql.Timestamp c = new java.sql.Timestamp(now.getTime());
|
||||||
return c.getTime();
|
return c.getTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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
|
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
|
//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 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 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));
|
public static final Background WHITE_BG = new Background(new BackgroundFill(WHITE, null, null));
|
||||||
// Screen
|
// Screen
|
||||||
|
|||||||
@@ -16,8 +16,6 @@ import java.io.IOException;
|
|||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.net.Socket;
|
import java.net.Socket;
|
||||||
import java.nio.file.*;
|
import java.nio.file.*;
|
||||||
import java.text.DateFormat;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -52,7 +50,7 @@ public class FilesWorker {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static File getSourcePath() {
|
public static File getSourcePath() {
|
||||||
File src = new File(getEventPicDir().toString() + "/src");
|
File src = new File(SOMConfig.PICTURES_PATH.toString() + "/src");
|
||||||
|
|
||||||
// TODO catch possible fail
|
// TODO catch possible fail
|
||||||
src.mkdirs();
|
src.mkdirs();
|
||||||
@@ -66,7 +64,7 @@ public class FilesWorker {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static File getPreviewPath() {
|
public static File getPreviewPath() {
|
||||||
File prv = new File(getEventPicDir().toString() + "/prv");
|
File prv = new File(SOMConfig.PICTURES_PATH.toString() + "/prv");
|
||||||
|
|
||||||
// TODO catch possible fail
|
// TODO catch possible fail
|
||||||
prv.mkdirs();
|
prv.mkdirs();
|
||||||
@@ -80,7 +78,7 @@ public class FilesWorker {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static File getThumbPath() {
|
public static File getThumbPath() {
|
||||||
File tmb = new File(getEventPicDir().toString() + "/tmb");
|
File tmb = new File(SOMConfig.PICTURES_PATH.toString() + "/tmb");
|
||||||
|
|
||||||
// TODO catch possible fail
|
// TODO catch possible fail
|
||||||
tmb.mkdirs();
|
tmb.mkdirs();
|
||||||
@@ -94,7 +92,7 @@ public class FilesWorker {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static File getFinalPath() {
|
public static File getFinalPath() {
|
||||||
File fnl = new File(getEventPicDir().toString() + "/fnl");
|
File fnl = new File(SOMConfig.PICTURES_PATH.toString() + "/fnl");
|
||||||
|
|
||||||
// TODO catch possible fail
|
// TODO catch possible fail
|
||||||
fnl.mkdirs();
|
fnl.mkdirs();
|
||||||
@@ -108,36 +106,13 @@ public class FilesWorker {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static File getTempPath() {
|
public static File getTempPath() {
|
||||||
File tmp = new File(getEventPicDir().toString() + "/tmp");
|
File tmp = new File(SOMConfig.PICTURES_PATH.toString() + "/tmp");
|
||||||
|
|
||||||
// TODO catch possible fail
|
// TODO catch possible fail
|
||||||
tmp.mkdirs();
|
tmp.mkdirs();
|
||||||
return tmp;
|
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() {
|
private static boolean internet() {
|
||||||
|
|
||||||
Socket sock = new Socket();
|
Socket sock = new Socket();
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,7 +3,8 @@
|
|||||||
<?import javafx.scene.control.Button?>
|
<?import javafx.scene.control.Button?>
|
||||||
<?import javafx.scene.image.ImageView?>
|
<?import javafx.scene.image.ImageView?>
|
||||||
<?import javafx.scene.layout.*?>
|
<?import javafx.scene.layout.*?>
|
||||||
<Pane xmlns:fx="http://javafx.com/fxml/1" fx:id="pane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity"
|
<StackPane xmlns:fx="http://javafx.com/fxml/1" fx:id="pane" maxHeight="-Infinity" maxWidth="-Infinity"
|
||||||
|
minHeight="-Infinity"
|
||||||
minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8"
|
minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8"
|
||||||
fx:controller="GUI.PictureCtl">
|
fx:controller="GUI.PictureCtl">
|
||||||
<ImageView fx:id="image" pickOnBounds="true" preserveRatio="true">
|
<ImageView fx:id="image" pickOnBounds="true" preserveRatio="true">
|
||||||
@@ -27,4 +28,4 @@
|
|||||||
<Button fx:id="seriesBtn" mnemonicParsing="false" prefHeight="183.0" prefWidth="221.0" text="Button"
|
<Button fx:id="seriesBtn" mnemonicParsing="false" prefHeight="183.0" prefWidth="221.0" text="Button"
|
||||||
GridPane.columnIndex="2" GridPane.rowIndex="2"/>
|
GridPane.columnIndex="2" GridPane.rowIndex="2"/>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
</Pane>
|
</StackPane>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 30 KiB |