commit 411c04f26ebdcbd1495cd0cb56d10ea9ab10d726 Author: Michael Hayder Date: Sun Jan 5 15:12:26 2025 +0100 first commit diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..24eca4c --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..b3cf2e0 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/templateLanguages.xml b/.idea/templateLanguages.xml new file mode 100644 index 0000000..ff8ecb8 --- /dev/null +++ b/.idea/templateLanguages.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.mvn/jvm.config b/.mvn/jvm.config new file mode 100644 index 0000000..e69de29 diff --git a/.mvn/maven.config b/.mvn/maven.config new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..36b7050 --- /dev/null +++ b/pom.xml @@ -0,0 +1,124 @@ + + + 4.0.0 + + net.altimate.app + superclass-app + 1.0-SNAPSHOT + + superclass-app + + http://www.example.com + + + UTF-8 + 21 + 0.0.8 + + + + + + + + + + + org.junit + junit-bom + 5.11.0 + pom + import + + + + + + + org.junit.jupiter + junit-jupiter-api + test + + + + org.junit.jupiter + junit-jupiter-params + test + + + + + org.openjfx + javafx-controls + ${javafx.version} + + + + + + + + + + + + + org.openjfx + javafx-maven-plugin + ${javafx.maven.plugin.version} + + net.altimate.app.App + + + + + + + + + + maven-clean-plugin + 3.4.0 + + + + maven-resources-plugin + 3.3.1 + + + maven-compiler-plugin + 3.13.0 + + + maven-surefire-plugin + 3.3.0 + + + maven-jar-plugin + 3.4.2 + + + maven-install-plugin + 3.1.2 + + + maven-deploy-plugin + 3.1.2 + + + + maven-site-plugin + 3.12.1 + + + maven-project-info-reports-plugin + 3.6.1 + + + + + + + + diff --git a/src/main/java/net/altimate/app/App.java b/src/main/java/net/altimate/app/App.java new file mode 100644 index 0000000..5daa5d8 --- /dev/null +++ b/src/main/java/net/altimate/app/App.java @@ -0,0 +1,308 @@ +package net.altimate.app; +import java.lang.Object; +import java.lang.Class; +import java.time.format.DateTimeFormatter; + +import javafx.application.Application; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.event.ActionEvent; +import javafx.event.Event; +import javafx.event.EventHandler; +import javafx.geometry.HPos; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Group; +import javafx.scene.Node; +import javafx.scene.Scene; +import javafx.scene.control.*; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; + + +public class App extends Application { + + Scene sceneHome; + Scene sceneCreate; + Scene sceneList; + + public final String filesDirectory = "/tmp/files"; + + + + + + public static void main(String args[]){ + launch(args); + } + + + + @Override + public void start(Stage primaryStage) throws Exception { + //GridPane grid = new GridPane(); + //grid.setPadding(new Insets(10, 10, 10, 10)); + //grid.setVgap(5); + //grid.setHgap(5); + + //Start = new Scene(grid, 600, 300); + + setupSceneList(primaryStage); + setupSceneHome(primaryStage); + setupSceneCreate(primaryStage); + + + primaryStage.setTitle("Work out a S.M.A.R.T. Target "); + primaryStage.setScene(sceneHome); + primaryStage.show(); + } + + + private void navigationButtons(Stage primaryStage, GridPane grid, Label label) { + + boolean reloadValue = false; + + Button home = new Button("Home"); + GridPane.setConstraints(home, 0, 0); + home.setOnAction(e -> primaryStage.setScene(sceneHome)); + grid.getChildren().add(home); + + Button create = new Button("Create"); + GridPane.setConstraints(create, 1, 0); + create.setOnAction(e -> primaryStage.setScene(sceneCreate)); + grid.getChildren().add(create); + + Button list = new Button("List"); + GridPane.setConstraints(list, 2, 0); + //list.setOnAction(e -> primaryStage.setScene(sceneList)); + grid.getChildren().add(list); + + list.setOnAction(new EventHandler() { + @Override + public void handle(ActionEvent e) { + primaryStage.setScene(sceneList); + } + }); + + } +// grid, textfieldname , textfield, TextPrefColumnCount, rowColumn, rowIndex + private void addTextfield(GridPane grid, String textFieldName, String textFieldText, int prefColumnCount, int rowColumn, int rowIndex) { + + + final TextField nameSmartZiel = new TextField(); + nameSmartZiel.setPromptText(textFieldText); + nameSmartZiel.setPrefColumnCount(1); + GridPane.setConstraints(nameSmartZiel,rowColumn,rowIndex); + grid.getChildren().add(nameSmartZiel); + + } + + + + public void setupSceneHome(Stage primaryStage) throws Exception { + GridPane grid = new GridPane(); + grid.setPadding(new Insets(10, 10, 10, 10)); + grid.setVgap(5); + grid.setHgap(5); + + sceneHome = new Scene(grid, 600, 300); + + Label label = new Label("This is the Home Scene"); + + navigationButtons(primaryStage, grid, label); + + //Button button = new Button("Forward"); + //button.setOnAction(e -> primaryStage.setScene(sceneList)); + + //TextField text = new TextField(); + //text.setMaxWidth(100); + + //layout.getChildren().addAll(label1, button); + + } + + public void setupSceneCreate(Stage primaryStage) throws Exception { + GridPane grid = new GridPane(); + grid.setPadding(new Insets(10, 10, 10, 10)); + grid.setVgap(5); + grid.setHgap(5); + + sceneCreate = new Scene(grid, 600, 300); + + + Label label = new Label(); + + navigationButtons(primaryStage, grid, label); + + DatePicker checkInDatePicker; + checkInDatePicker = new DatePicker(); + + + final TextField nameSmartZiel = new TextField(); + nameSmartZiel.setPromptText("Gib dm Smart Ziel einen Namen"); + nameSmartZiel.setPrefColumnCount(1); + GridPane.setConstraints(nameSmartZiel,0,1); + grid.getChildren().add(nameSmartZiel); + + final TextField sinnesSpezifisch = new TextField(); + sinnesSpezifisch.setPromptText("wie ist es sinnespezifisch wahrnehmbar"); + sinnesSpezifisch.setPrefColumnCount(1); + //sinnesSpezifisch.getText(); + GridPane.setConstraints(sinnesSpezifisch, 0, 2); + grid.getChildren().add(sinnesSpezifisch); + + final TextField messBar = new TextField(); + messBar.setPrefColumnCount(20); + messBar.setPromptText("Wie ist es messabr, wenn Du es erreicht hat"); + GridPane.setConstraints(messBar, 0, 3); + grid.getChildren().add(messBar); + + final TextField attraktiv = new TextField(); + attraktiv.setPrefColumnCount(20); + attraktiv.setPromptText("Ist es attraktiv?"); + GridPane.setConstraints(attraktiv, 0, 4); + grid.getChildren().add(attraktiv); + + final TextField realistisch = new TextField(); + realistisch.setPrefColumnCount(20); + realistisch.setPromptText("Ist es realistisch selbst erreichbar ?"); + GridPane.setConstraints(realistisch, 0, 5); + grid.getChildren().add(realistisch); + + + final Label checkInlabel = new Label("Terminiert bis"); + grid.add(checkInlabel, 0, 6); + grid.add(checkInDatePicker, 0, 7); + + Button submit = new Button("Submit"); + GridPane.setConstraints(submit, 0, 8); + grid.getChildren().add(submit); + + Button clear = new Button("Clear"); + GridPane.setConstraints(clear, 1, 8); + grid.getChildren().add(clear); + + submit.setOnAction(new EventHandler() { + @Override + public void handle(ActionEvent e) { + if ( + (nameSmartZiel.getText() != null && !nameSmartZiel.getText().isEmpty()) + && (sinnesSpezifisch.getText() != null && !sinnesSpezifisch.getText().isEmpty()) + && (messBar.getText() != null && !messBar.getText().isEmpty()) + && (attraktiv.getText() != null && !attraktiv.getText().isEmpty()) + && (realistisch.getText() != null && !realistisch.getText().isEmpty()) + ) { + label.setText( nameSmartZiel.getText() + " " + sinnesSpezifisch.getText() + " " + + messBar.getText() + " " + attraktiv.getText() + " " + realistisch.getText() + ", " + + "thanks" + checkInDatePicker.getValue()); + String date = checkInDatePicker.getValue().format(DateTimeFormatter.ofPattern("dd.MM.yyyy")); + + String[] createSmart = { + nameSmartZiel.getText() + "|" + + sinnesSpezifisch.getText() + "|" + + messBar.getText() + "|" + + attraktiv.getText() + "|" + + realistisch.getText() + "|" + + date + }; + + long seconds = System.currentTimeMillis() / 1000l; + CreateFile.writeFile(filesDirectory + "/" + seconds + ".smart", createSmart); + + } else { + label.setText("You have not filed out the complete form"); + } + } + }); + + clear.setOnAction(new EventHandler() { + @Override + public void handle(ActionEvent e) { + nameSmartZiel.clear(); + sinnesSpezifisch.clear(); + messBar.clear(); + attraktiv.clear(); + realistisch.clear(); + checkInlabel.setText(null); + label.setText(null); + } + }); + + + + + + //addTextfield(grid, "sinnesSpezifisch", "blash", 1, 1, 1); + //Button button = new Button("Home"); + //button.setOnAction(e -> primaryStage.setScene(sceneHome)); + //TextField text = new TextField(); + //text.setMaxWidth(100); + //layout.getChildren().addAll(label1, button); + + } + + + + public void setupSceneList(Stage primaryStage) throws Exception { + + + GridPane grid = new GridPane(); + grid.setPadding(new Insets(10, 10, 10, 10)); + grid.setVgap(5); + grid.setHgap(5); + + //layout.setAlignment(Pos.CENTER); + + sceneList = new Scene(grid, 600, 300); + + Label label = new Label(); + + navigationButtons(primaryStage, grid, label); + + Button reload = new Button("Reload"); + GridPane.setConstraints(reload, 1, 8); + grid.getChildren().add(reload); + + reload.setOnAction(new EventHandler() { + @Override + public void handle(ActionEvent e) { + + ListFilesInDir.listFilesInDir(filesDirectory); + ListView list1 = new ListView(); + ObservableList items = FXCollections.observableArrayList (ListFilesInDir.listFilesInDir(filesDirectory)); + list1.setItems(items); + GridPane.setConstraints(list1, 0, 1); + grid.getChildren().add(list1); + + String fileName = "/tmp/files/1735938766.smart"; + //ReadFile.readFile(fileName); + + System.out.println(ReadFile.readFile(fileName)); + + } + }); + + + + //ListFilesInDir.listFilesInDir(filesDirectory); + //ListView list1 = new ListView(); + //ObservableList items = FXCollections.observableArrayList (ListFilesInDir.listFilesInDir(filesDirectory)); + //list1.setItems(items); + //GridPane.setConstraints(list1, 0, 1); + //grid.getChildren().add(list1); + + + //Button button = new Button("Backward"); + //button.setOnAction(e -> primaryStage.setScene(sceneHome)); + + //TextField text = new TextField(); + //text.setMaxWidth(100); + + //grid.getChildren().addAll(label, button); + + + + } + +} diff --git a/src/main/java/net/altimate/app/CreateFile.java b/src/main/java/net/altimate/app/CreateFile.java new file mode 100644 index 0000000..e64dc9d --- /dev/null +++ b/src/main/java/net/altimate/app/CreateFile.java @@ -0,0 +1,26 @@ +package net.altimate.app; + + +// write file +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Arrays; + + +public class CreateFile { + public static void writeFile (String filename, String[] createSmart ) { + try { + FileWriter myWriter = new FileWriter(filename); +// myWriter.write("Files in Java might be tricky, but it is fun enough!"); + myWriter.write(Arrays.toString(createSmart)); + myWriter.close(); + + + } catch (IOException e) { + System.out.println("An error occurred."); + e.printStackTrace(); + + } + } +} \ No newline at end of file diff --git a/src/main/java/net/altimate/app/ListFilesInDir.java b/src/main/java/net/altimate/app/ListFilesInDir.java new file mode 100644 index 0000000..8ee706a --- /dev/null +++ b/src/main/java/net/altimate/app/ListFilesInDir.java @@ -0,0 +1,29 @@ +package net.altimate.app; +import java.io.File; + + +public class ListFilesInDir { + public static String[] listFilesInDir ( String directory ) { + + File filesInDir = null; + File[] paths; + + try { + filesInDir = new File(directory); + paths = filesInDir.listFiles(); + + + for(File path:paths) { + System.out.println(path.getName()); + } + + + + + } catch(Exception efile) { + + efile.printStackTrace(); + } + return filesInDir.list(); + } +} diff --git a/src/main/java/net/altimate/app/ReadFile.java b/src/main/java/net/altimate/app/ReadFile.java new file mode 100644 index 0000000..5e180b6 --- /dev/null +++ b/src/main/java/net/altimate/app/ReadFile.java @@ -0,0 +1,24 @@ +package net.altimate.app; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; + +public class ReadFile { + + public static String readFile(String fileName) { + try { + String s = Files.readString(Path.of(fileName)); + String s1 = s; + System.out.println(s1); + return s1; + } catch (IOException e) { + e.printStackTrace(); + } + String o = null; + return o; + } + +} + + diff --git a/src/test/java/net/altimate/app/AppTest.java b/src/test/java/net/altimate/app/AppTest.java new file mode 100644 index 0000000..8b60926 --- /dev/null +++ b/src/test/java/net/altimate/app/AppTest.java @@ -0,0 +1,19 @@ +package net.altimate.app; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +/** + * Unit test for simple App. + */ +public class AppTest { + + /** + * Rigorous Test :-) + */ + @Test + public void shouldAnswerWithTrue() { + assertTrue(true); + } +} diff --git a/target/classes/net/altimate/app/App$1.class b/target/classes/net/altimate/app/App$1.class new file mode 100644 index 0000000..1177e22 Binary files /dev/null and b/target/classes/net/altimate/app/App$1.class differ diff --git a/target/classes/net/altimate/app/App$2.class b/target/classes/net/altimate/app/App$2.class new file mode 100644 index 0000000..7ff629a Binary files /dev/null and b/target/classes/net/altimate/app/App$2.class differ diff --git a/target/classes/net/altimate/app/App$3.class b/target/classes/net/altimate/app/App$3.class new file mode 100644 index 0000000..0b36636 Binary files /dev/null and b/target/classes/net/altimate/app/App$3.class differ diff --git a/target/classes/net/altimate/app/App$4.class b/target/classes/net/altimate/app/App$4.class new file mode 100644 index 0000000..4c59472 Binary files /dev/null and b/target/classes/net/altimate/app/App$4.class differ diff --git a/target/classes/net/altimate/app/App.class b/target/classes/net/altimate/app/App.class new file mode 100644 index 0000000..68e4e50 Binary files /dev/null and b/target/classes/net/altimate/app/App.class differ diff --git a/target/classes/net/altimate/app/CreateFile.class b/target/classes/net/altimate/app/CreateFile.class new file mode 100644 index 0000000..f905e12 Binary files /dev/null and b/target/classes/net/altimate/app/CreateFile.class differ diff --git a/target/classes/net/altimate/app/ListFilesInDir.class b/target/classes/net/altimate/app/ListFilesInDir.class new file mode 100644 index 0000000..9b07935 Binary files /dev/null and b/target/classes/net/altimate/app/ListFilesInDir.class differ diff --git a/target/classes/net/altimate/app/ReadFile.class b/target/classes/net/altimate/app/ReadFile.class new file mode 100644 index 0000000..6e8c386 Binary files /dev/null and b/target/classes/net/altimate/app/ReadFile.class differ diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..eb1c0b7 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1 @@ +/home/mic/DM/workspaces/tmp/superclass-app/src/main/java/net/altimate/app/App.java