\caption{Das Erstellen eines CSD Tasks als Sequenz Diagramm.
Links der Ablauf im CSDPlugin des Geoviewer, Rechts im SBA.
Links der Ablauf im CSDPlugin des Geoviewer; Rechts im SBA.
Der alternative Block (Alt) steht nur zur Verfügung wenn der SBA mit dem Geoviewer verbunden ist. }
\label{figure:sequenzRequest}
\end{figure}
...
...
@@ -56,7 +56,7 @@ Zuerst wird die abstrakte Methode beforeTask aufgerufen, um Vorbereitungen zu tr
Die Ausführung der CSD-Abfrage erfolgt in 3 Schritten.
Erst wird der CSD Querry String generiert. \todo{Beispiel}
Anschließend folgt eine Abfrage über die Anzahl der erwarteten Ergebnisse.
Die Methode isValidTaskSize überprüft nun, ob der Task ausgeführt werden soll oder ob das Ergebnis zu groß und somit nicht sinnvoll ist.
Die Methode isValidTaskSize überprüft nun, ob der Task ausgeführt werden soll und ob das Ergebnis zu groß und somit nicht sinnvoll ist. % ich habe ``und'' statt ``oder'' geschrieben. ok?
Die Standard-Implementierung vergleicht die erwarteten Ergebnisse mit einem Wert aus der Konfigurationsdatei.
Ist der Task ``klein genug'', wird die abstrakte Methode queryCSD aufgerufen.
Die Methode wird implementiert von den beiden Klassen CSDRequst und CSDSubscription, die vom CSDTask erben.
...
...
@@ -70,7 +70,7 @@ Dieser lokale Request lässt sich im Konfigurationsdatei aktivieren und führt d
\caption{Vererbungs-Hierachie des CSDTasks. Die Ausführung des Task wird in der Superklasse gestartet.
Der Aufruf der CSDReadingClienst übernehmen Der CSDRequest und die CSDSubscription.
Der Aufruf der CSDReadingClienst übernehmen Der CSDRequest und die CSDSubscription.% Kauderwelsch - bitte korrigieren
Der SBA Request und der Adapter Request implementieren die Vor- und Nachbereitung des Tasks sowie das Userfeedback über den Fortschritt in den jeweiligen Programmen.
}
\label{figure:klassenTask}
...
...
@@ -83,19 +83,21 @@ Diese ist ein Teil des Interfaces isaac.lib ResultHandler.
Für den SBA und den CSD-Adapter müssen zunächst einige allgemeine Informationen aus dem XML-Dokument ausgelesen werden.
Deshalb wurde die abstrakte Klasse ResultHandler in der CSDCommon-Bibliothek angelegt (siehe Abbildung \ref{figure:klassenResult}).
Für jedes neue Ergebnis werden zunächst alle allgemeinen Felder ausgelesen und anschließend die abstrakte Methode newResult aufgerufen.
Diese Methode wird von den spezifischen ResultHandlern implementiert um ein Ergebnis zu verarbeiten.
Außerdem werden alle Java Exceptions abgefangen, der bei der Auswertung eines Ergebnisses geworfen werden.
Diese Methode wird von den spezifischen ResultHandlern implementiert, um ein Ergebnis zu verarbeiten.
Außerdem werden alle Java Exceptions abgefangen, die bei der Auswertung eines Ergebnisses geworfen werden.
Bricht die Verarbeitung eines Ergebnisses mit einer Exception ab, so wird die Methode storeErrorProduct aufgerufen.
In der Standard-Implementierung wird das XML Dokument dessen Verarbeitung fehlgeschlagen ist, in einem Ordner abgelegt.
Der Nutzer kann diese XML Dokument manuell einsehen und sich nötige Daten selber auslesen, falls die Verarbeitung fehlschlägt.
%VORHER: Der Nutzer kann dieses XML Dokument manuell einsehen und sich nötige Daten selber auslesen, falls die Verarbeitung fehlschlägt.
%Nachher (bitte prüfen)
Falls die Verarbeitung fehlschlägt, kann der Nutzer dieses XML Dokument einsehen und den Fehler korrigieren.
Ist ein Ergebnis verarbeitet, wird im zugehörigen Task die Methode resultFinished aufgerufen.
So kann der Task, nachdem alle Ergebnis ausgewertet sind, die Methode afterTask aufrufen, um einen eventuelle Nachbearbeitung durchzuführen (Abbildung \ref{figure:klassenTask}).
So kann der Task, nachdem alle Ergebnisse ausgewertet sind, die Methode afterTask aufrufen, um eine eventuelle Nachbearbeitung durchzuführen (Abbildung \ref{figure:klassenTask}).
@@ -121,23 +123,23 @@ Falls ein Vorschaubild vorhanden ist, wird dieses heruntergeladen.
Auch Vorschaubilder liegen in der CSD als NSIF-Bilder vor und werden deshalb in PNG-Bilder umgewandelt.
Alle Ergebnisse werden dem CSDDataStore hinzugefügt und der Nutzer kann sich in der ResultUI ein Bild aussuchen.
Sobald der Nutzer ein Bild aus der CSD laden möchte, wird dieses heruntergeladen und aus dem NSIF-Format in den SBA importiert.
Um das Bil0 zu importieren wird es zunächst in ein PNG umgewandelt.
Um das Bild zu importieren wird es zunächst in das PNG-Format umgewandelt.
\section{Bilder exportieren}
Das Exportieren von Daten auf das Dateisystem war im SBA im vorhanden.
Wie alle Funktionen im SBA wurde auch das Exportieren in einer Swing Action implementiert, die an mehre Nutzereingaben wie Buttons verknüpft werden kann.
Das Exportieren von Daten auf das Dateisystem war im SBA vorhanden.
Wie alle Funktionen im SBA wurde auch das Exportieren in einer Swing Action implementiert, die an mehrere Nutzereingaben wie z.B. Buttons verknüpft werden kann.
Diese ExportAction fragt den Nutzer nach einem Speicherort, rendert das Bild und legt es als Datei an den vom Nutzer ausgewählten Ort.
\subsection{Export in \rec}
Um den Export in den \rec zu gestalten, wurde das Rendern der ExportAction umgebaut, so dass es wiederverwendbar ist.
Die ExportAction in \rec erbt von der Standart ExportAciton, sodass die Hauptfunktionalität, das Rendern übernommen wird.
Um das Bild dem \rec zur verfügung zu stellen muss dieses in einem vordefinierten Ordner abgelegt werden.
Die ExportAction in \rec erbt von der Standard ExportAction, sodass die Hauptfunktionalität, das Rendern übernommen wird.
Um das Bild dem \rec zur Verfügung zu stellen, muss dieses in einem vordefinierten Ordner abgelegt werden.
Dieser Ordnerpfad wird aus der Konfigurationsdatei gelesen.
Der Nutzer muss also nicht jedes mal manuell den Pfad heraussuchen, sondern das Bild wird direkt an den richtigen Ort gelegt.
Der Nutzer muss nicht jedes Mal manuell den Pfad heraussuchen, sondern das Bild wird direkt an den richtigen Ort gelegt.
\subsection{Export in CSD}
Der Export in die CSD erbt auch von der ExportAction. \todo Bild referenzieren
Der Export in die CSD erbt auch von der ExportAction. \todo{ Bild referenzieren}
Zunächst muss der Nutzer alle nötigen Informationen zum Speichern in die CSD eingeben.
Die Informationen werden auf Richtigkeit und Notwendigkeit überprüft.
Wurde das editierte Bild aus der CSD geladen, so wird die Oberfläche mit den Informationen aus dem geladenen XML-File ausgefüllt.
...
...
@@ -148,14 +150,14 @@ Der NSIF-Creator ist eine Bibliothek, die aus diversen herkömmlichen Bildformat
Die nötigen Metadaten werden aus der Nutzeroberfläche geladen und in ein XML-Dokument geschrieben.
Sind im SBA Geoinformationen vorhanden, werden diese ebenfalls angefügt.
Das XML-Dokument für die CSD wird ebenfalls mit den Informationen aus der Nutzereingabe generiert und zusammen mit dem NSIF-Bild an die Isaac.lib übergeben.
Das XML-Dokument für die CSD wird auch mit den Informationen aus der Nutzereingabe generiert und zusammen mit dem NSIF-Bild an die Isaac.lib übergeben.
Ist das Bild aus der CSD geladen, wird darauf geachtet, dass alle Informationen aus dem alten XML-Dokument übernommen werden.
Die Eingabe umfasst nicht alle Felder, die in dem XML-Dokument vorhanden sein können.
Die Eingabe umfasst nicht alle Felder, die in dem XML-Dokument vorhanden sein können.
Bei der Erstellung des neuen Dokuments wird in diesem Fall das alte kopiert, alle Felder, die vom Server generiert werden, gelöscht und alle Änderungen aus der Nutzereingabe eingetragen.
Sind keine Informationen vom vorherigen Bild vorhanden, wird ein neues XML-Dokument generiert.
Das NSIF-Bild wird nicht direkt übertragen sondern wird in einem HTTP Server der isaac.lib zum download bereitgestellt.
Die URL des Bildes wird in das XML Dokument eingetragen ud dann mit dem CSDWritingClient an die CSD übertragen.
Der CSD-Server läd sich daraufhin das Bild aus dem HTTP-Server herunter.
Das NSIF-Bild wird nicht direkt übertragen, sondern wird in einem HTTP Server der isaac.lib zum Download bereitgestellt.
Die URL des Bildes wird in das XML Dokument eingetragen und dann mit dem CSDWritingClient an die CSD übertragen.
Der CSD-Server lädt sich daraufhin das Bild aus dem HTTP-Server herunter.