diff --git a/OMDSServiceDefinition/pom.xml b/OMDSServiceDefinition/pom.xml
index 47b795df..31b0300a 100644
--- a/OMDSServiceDefinition/pom.xml
+++ b/OMDSServiceDefinition/pom.xml
@@ -118,48 +118,90 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- org.jvnet.jaxb
- jaxb-maven-plugin
- 4.0.0
+ org.apache.cxf
+ cxf-codegen-plugin
+ 4.1.3
+ generate-sources
+ generate-sources
+
+ ${project.build.directory}/generated-sources/cxf
+
+
+ ${project.basedir}/src/main/resources/def/${currentReleaseDir}/omds3Services.wsdl
+
+ -xjc-Xannotate
+ -client
+ -impl
+ -server
+ -p
+ at.vvo.omds.services
+
+
+ ${project.basedir}/src/main/resources/def/${currentReleaseDir}/binding.xjb
+
+
+
+
- generate
+ wsdl2java
-
- true
- en
- XMLSCHEMA
- ${project.basedir}/src/main/resources/def/${currentReleaseDir}
- ${project.basedir}/src/main/resources/def/${currentReleaseDir}
- ${project.basedir}/src/main/resources/def/${currentReleaseDir}
-
- *.xsd
-
-
- *.xjb
-
-
- -Xannotate
- -Xinheritance
-
-
-
- org.jvnet.jaxb
- jaxb-plugins
- 3.0.0
-
-
- org.jvnet.jaxb
- jaxb-plugin-annotate
- 3.0.0
-
-
-
+
+
+ org.jvnet.jaxb
+ jaxb-plugin-annotate
+ 3.0.0
+
+
@@ -167,7 +209,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
javafx-maven-plugin
0.0.8
- at.vvo.omds.client.gui.AllinOneView
+ at.vvo.omds.client.gui.AllinOneView
@@ -205,12 +247,77 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
-
+
org.openjfx
javafx-controls
23.0.1
+
+
+
+ org.controlsfx
+ controlsfx
+ 11.2.2
+
+
+
+
+ org.jvnet.jaxb2_commons
+ jaxb2-basics-annotate
+ 1.1.0
+
+
+
+
+ com.sun.xml.ws
+ jaxws-maven-plugin
+ 4.0.3
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-restclient
+ 4.0.0-M3
+
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.20.0
+
+
+
+
+
+ org.eclipse.rdf4j
+ rdf4j-model
+ 5.1.5
+
+
+
+
+ org.eclipse.rdf4j
+ rdf4j-rio-turtle
+ 5.1.5
+
+
+
+
+ org.eclipse.rdf4j
+ rdf4j-shacl
+ 5.1.5
+
+
+
+
+ org.eclipse.rdf4j
+ rdf4j-rio-jsonld
+ 5.1.5
+
diff --git a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/BuildRequestHelper.java b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/BuildRequestHelper.java
index cc80aa72..20a0e54b 100644
--- a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/BuildRequestHelper.java
+++ b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/BuildRequestHelper.java
@@ -37,8 +37,6 @@ public class BuildRequestHelper {
}
}
-
-
public static XMLGregorianCalendar aktuellesDatum() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss");
try {
diff --git a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/AllinOneView.java b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/AllinOneView.java
index dc40109c..dfc28ff4 100644
--- a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/AllinOneView.java
+++ b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/AllinOneView.java
@@ -18,10 +18,22 @@ import javafx.scene.layout.*;
import javafx.scene.paint.Paint;
import javafx.scene.text.*;
import javafx.stage.Stage;
+import javafx.util.Pair;
+import org.controlsfx.control.ToggleSwitch;
+import org.eclipse.rdf4j.model.Model;
+import org.eclipse.rdf4j.query.GraphQuery;
+import org.eclipse.rdf4j.query.QueryResults;
+import org.eclipse.rdf4j.repository.Repository;
+import org.eclipse.rdf4j.repository.RepositoryConnection;
+import org.eclipse.rdf4j.repository.sail.SailRepository;
+import org.eclipse.rdf4j.rio.RDFFormat;
+import org.eclipse.rdf4j.rio.Rio;
+import org.eclipse.rdf4j.sail.memory.MemoryStore;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
+import java.io.ByteArrayOutputStream;
import java.math.BigInteger;
import java.time.LocalDate;
import java.util.*;
@@ -31,10 +43,12 @@ import java.util.concurrent.atomic.AtomicReference;
public class AllinOneView extends Application {
Map timesItemisIncludedById = new HashMap<>();
- List> isNotIncluded = new ArrayList<>();
- Map, Map> infoBoxFromItem = new HashMap<>();
+ Map, Map> infoBoxFromItem = new HashMap<>();
+ List plausiList = new ArrayList<>();
+ RisikoobjektView risikoobjektView = new RisikoobjektView();
TreeHelper treeHelper = new TreeHelper();
+ RDFHelper rdfHelper = new RDFHelper();
public static void main(String[] args) {
launch(args);
@@ -42,11 +56,50 @@ public class AllinOneView extends Application {
@Override
public void start(Stage stage) {
- AprioriAuskunftService s = new AprioriAuskunftService(new SOAPConnector());
stage.setTitle("OMDS Client");
stage.getIcons().add(new Image(AllinOneView.class.getResourceAsStream("/logo/VVO_Logo_2024.png")));
+ TabPane tabPane = new TabPane();
+ Tab baumView = new Tab("Deckungsbaum");
+ Tab risikoView = new Tab("Risikoobjekte");
+
+ baumView.setClosable(false);
+ risikoView.setClosable(false);
+
+ tabPane.getTabs().addAll(baumView, risikoView);
+
+ BorderPane content = new BorderPane();
+ StackPane view = new StackPane();
+ GridPane risikoobjekt = risikoobjektView.risikoobjekte();
+ VBox deckungsbaum = deckungsbaum();
+
+ content.setTop(tabPane);
+ content.setCenter(view);
+
+ view.getChildren().addAll(risikoobjekt ,deckungsbaum);
+ risikoobjekt.setVisible(false);
+
+
+ tabPane.getSelectionModel().selectedItemProperty().addListener((obs, oldTab, newTab) -> {
+ if (newTab == risikoView) {
+ risikoobjekt.setVisible(true);
+ deckungsbaum.setVisible(false);
+ } else if (newTab == baumView) {
+ risikoobjekt.setVisible(false);
+ deckungsbaum.setVisible(true);
+ }
+ });
+
+ Scene scene = new Scene(content, 900, 600);
+ stage.setScene(scene);
+
+ stage.show();
+ }
+
+ public VBox deckungsbaum(){
+ AprioriAuskunftService s = new AprioriAuskunftService(new SOAPConnector());
+
final VBox[] controlBox = {new VBox()};
DatePicker dp = new DatePicker();
ChoiceBox vpBox = new ChoiceBox<>();
@@ -62,60 +115,107 @@ public class AllinOneView extends Application {
newCalcRequestControlBox.setVisible(false);
newCalcRequestControlBox.setPadding(new Insets(10, 10, 10, 10));
newCalcRequestControlBox.getChildren().add(newCalcRequestButton);
+
+ HBox servBox = new HBox();
+ ToggleSwitch serverBtn = new ToggleSwitch("Benutze RDF Messaging");
+ serverBtn.setSelected(true);
+ serverBtn.setDisable(true);
+
+ AtomicReference> responseproduct = new AtomicReference<>(new ArrayList<>());
+
dp.setOnAction(e -> {
try {
stichtag.set(stichtagEvent(dp));
if (stichtagEvent(dp) != null) {
try {
- response.set(s.aprioriAuskunft(stichtag.get(), "042"));
- } catch (NoSuchElementException ex) {
- controlBox[0].getChildren().clear();
- controlBox[0].getChildren().add(dp);
- vpBox.getItems().clear();
+ Pair, List> aprioriPair = s.aprioriRDFAuskunft(stichtag.get(), "042");
+ responseproduct.set(aprioriPair.getKey());
+ plausiList = aprioriPair.getValue();
- Label label = new Label("Kein Verkaufsoffenes Produkt an dem Datum: " +
- stichtag.get().toString().substring(0, stichtag.get().toString().length() - 1) +
- System.lineSeparator());
- controlBox[0].getChildren().add(3, label);
- throw new NoSuchElementException(ex.getMessage());
- } catch (SOAPExceptionImpl ex) {
- HBox errorBox = new HBox();
- errorBox.setAlignment(Pos.CENTER);
- errorBox.setPadding(new Insets(10, 10, 10, 10));
- errorBox.getChildren().add(new Text("Keine Verbindung zum Server möglich!"));
+ newCalcRequestControlBox.setVisible(true);
- controlBox[0].getChildren().add(errorBox);
- }
- newCalcRequestControlBox.setVisible(true);
+ if (responseproduct.get().size() > 1) {
+ if (!vpBox.getItems().isEmpty()) {
+ vpBox.getItems().clear();
+ }
+ for (APrioriVerkaufsproduktType vp : responseproduct.get()) {
+ vpBox.getItems().add(vp.getName());
+ }
+ vpBox.setVisible(true);
+ vpBox.setOnAction(ee -> {
+ for (int i = 0; i < responseproduct.get().size(); i++) {
+ if (vpBox.getSelectionModel().getSelectedItem() != null && vpBox.getSelectionModel()
+ .getSelectedItem().equals(responseproduct.get().get(i).getName())) {
+ try {
+ controlBox[0] = buttonAuskunft(responseproduct.get().get(i),
+ controlBox[0], newCalcRequestButton, stichtag, serverBtn);
+ controlBox[0].getChildren().add(newCalcRequestControlBox);
- if (response.get().getVerkaufsprodukt().size() > 1) {
-
- if (!vpBox.getItems().isEmpty()) {
- vpBox.getItems().clear();
- }
- for (APrioriVerkaufsproduktType vp : response.get().getVerkaufsprodukt()) {
- vpBox.getItems().add(vp.getName());
- }
- vpBox.setVisible(true);
- vpBox.setOnAction(ee -> {
- for (int i = 0; i < response.get().getVerkaufsprodukt().size(); i++) {
- if (vpBox.getSelectionModel().getSelectedItem() != null && vpBox.getSelectionModel()
- .getSelectedItem().equals(response.get().getVerkaufsprodukt().get(i).getName())) {
- try {
- controlBox[0] = buttonAuskunft(response.get().getVerkaufsprodukt().get(i),
- controlBox[0], newCalcRequestButton, stichtag);
- controlBox[0].getChildren().add(newCalcRequestControlBox);
-
- } catch (Exception ex) {
- throw new RuntimeException(ex);
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
}
}
+ });
+ } else {
+ controlBox[0] = buttonAuskunft(responseproduct.get().getFirst(),
+ controlBox[0], newCalcRequestButton, stichtag, serverBtn);
+ }
+ } catch (Exception rdfex) {
+ serverBtn.setSelected(false);
+
+ try {
+ response.set(s.aprioriAuskunft(stichtag.get(), "042"));
+
+ newCalcRequestControlBox.setVisible(true);
+ if (response.get() != null && response.get().getVerkaufsprodukt().size() > 1) {
+
+ if (!vpBox.getItems().isEmpty()) {
+ vpBox.getItems().clear();
+ }
+ for (APrioriVerkaufsproduktType vp : response.get().getVerkaufsprodukt()) {
+ vpBox.getItems().add(vp.getName());
+ }
+ vpBox.setVisible(true);
+ vpBox.setOnAction(ee -> {
+ for (int i = 0; i < response.get().getVerkaufsprodukt().size(); i++) {
+ if (vpBox.getSelectionModel().getSelectedItem() != null && vpBox.getSelectionModel()
+ .getSelectedItem().equals(response.get().getVerkaufsprodukt().get(i).getName())) {
+ try {
+ controlBox[0] = buttonAuskunft(response.get().getVerkaufsprodukt().get(i),
+ controlBox[0], newCalcRequestButton, stichtag, serverBtn);
+ controlBox[0].getChildren().add(newCalcRequestControlBox);
+
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+ }
+ });
+ } else {
+ controlBox[0] = buttonAuskunft(response.get().getVerkaufsprodukt().getFirst(),
+ controlBox[0], newCalcRequestButton, stichtag, serverBtn);
}
- });
- } else {
- controlBox[0] = buttonAuskunft(response.get().getVerkaufsprodukt().getFirst(),
- controlBox[0], newCalcRequestButton, stichtag);
+ } catch (NoSuchElementException ex) {
+ controlBox[0].getChildren().clear();
+ controlBox[0].getChildren().add(dp);
+ vpBox.getItems().clear();
+
+ Label label = new Label("Kein Verkaufsoffenes Produkt an dem Datum: " +
+ stichtag.get().toString().substring(0, stichtag.get().toString().length() - 1) +
+ System.lineSeparator());
+ controlBox[0].getChildren().add(3, label);
+ throw new NoSuchElementException(ex.getMessage());
+ } catch (SOAPExceptionImpl ex) {
+ HBox errorBox = new HBox();
+ errorBox.setAlignment(Pos.CENTER);
+ errorBox.setPadding(new Insets(10, 10, 10, 10));
+ errorBox.getChildren().add(new Text("Keine Verbindung zu einer Rdf oder SOAP Schnittstelle möglich!"));
+
+ controlBox[0].getChildren().add(errorBox);
+ }
}
+
if (!controlBox[0].getChildren().contains(newCalcRequestControlBox)) {
controlBox[0].getChildren().add(newCalcRequestControlBox);
}
@@ -139,19 +239,22 @@ public class AllinOneView extends Application {
VBox.setVgrow(newCalcRequestControlBox, Priority.ALWAYS);
newCalcRequestControlBox.setAlignment(Pos.BOTTOM_RIGHT);
+ newCalcRequestControlBox.setId("newCalcRequestControlBox");
+
+ servBox.getChildren().add(serverBtn);
+ servBox.setAlignment(Pos.TOP_RIGHT);
HBox aprioriControlBox = new HBox();
+ Region region = new Region();
+ HBox.setHgrow(region, Priority.ALWAYS);
aprioriControlBox.setPadding(new Insets(10, 10, 0, 10));
- aprioriControlBox.getChildren().addAll(dp, vpBox);
+ aprioriControlBox.getChildren().addAll(dp, vpBox, region, servBox);
+
controlBox[0].getChildren().addAll(aprioriControlBox);
- Scene scene = new Scene(controlBox[0], 900, 600);
- stage.setScene(scene);
-
- stage.show();
+ return controlBox[0];
}
-
public XMLGregorianCalendar stichtagEvent(DatePicker dp) throws DatatypeConfigurationException {
if (dp.getValue() == null) {
return null;
@@ -164,7 +267,7 @@ public class AllinOneView extends Application {
}
public VBox buttonAuskunft(APrioriVerkaufsproduktType verkaufsprodukt, VBox vbox, Button newCalcRequest,
- AtomicReference stichtag) throws Exception {
+ AtomicReference stichtag, ToggleSwitch serverBtn) throws Exception {
while (vbox.getChildren().size() > 1) {
vbox.getChildren().removeLast();
}
@@ -172,24 +275,28 @@ public class AllinOneView extends Application {
VBox treeBox = new VBox();
VBox infoBox = new VBox();
- TreeItem