Skip to main content

Drag&Drop

Mit Drag&Drop ist es möglich, ausgewählte Dokumenten-Seiten zwischen verschiedenen Produkten auszutauschen.

Um Drag&Drop nutzen zu können, muss das Addon webtoolkit-addon-dnd in das Projekt eingebunden werden:

<dependency>
<groupId>com.levigo.jadice.webtoolkit</groupId>
<artifactId>webtoolkit-addon-dnd</artifactId>
</dependency>
info

Die Client-seitige Implementierung ist aktuell nur für GWT verfügbar. Dies wird sich in Zukunft ändern.

Überblick

Das Addon unterstützt vier Hauptszenarien für Drag&Drop zwischen den jadice Produkten:

jadice web toolkit zu jadice web toolkit (gleicher Server)

Beim Draggen eines Dokuments erzeugt der Export-Handler eine UUID, speichert das Dokument auf dem Server und überträgt die UUID per Event. Der Import-Handler prüft die UUID und lädt das Dokument aus dem DnD-Repository.

jadice web toolkit zu jadice web toolkit (verschiedene Server)

Auch hier wird eine UUID erzeugt und gespeichert. Zusätzlich wird die URL des Quellservers im Event übertragen. Falls die Datei im lokalen DnD-Repo fehlt, greift der Import-Handler per HTTP auf die Datei des anderen Servers zu.

Hinweis: Dieses Szenario funktioniert aktuell nicht hinter einem Load-Balancer. Der Client muss die tatsächliche Serverinstanz kennen.

Jadice Viewer (Swing) zu jadice web toolkit

Im Swing Viewer wird das gesamte Open-Portfolio Base64-kodiert im Drop-Event abgelegt. Der Import-Handler sendet die Daten zusammen mit einer UUID an den Server und macht sie über jadice web toolkit abrufbar.

jadice web toolkit zu Jadice Viewer (Swing)

Im Gegensatz zum Swing Viewer wird beim jadice web toolkit-Export nur die Server-URL übertragen. Der Swing Viewer kann das gewünschte Dokument direkt aus dem jadice web toolkit-Backend laden; ein kompletter Portfolio-Export entfällt.

Technische Hinweise

  • Die Drag&Drop-Aktion wird sehr schnell ausgelöst und lässt wenig Zeit, die nötigen Daten serverseitig zu generieren.
  • Im Browser (jadice web toolkit) wird die UUID direkt am Client erzeugt; der Dokument-Snapshot wird im Hintergrund serverseitig gespeichert.
  • Im Swing Viewer besteht mehr Zeit – hier kann das komplette Open-Portfolio direkt im Event gespeichert werden.

Verwendung im jadice web toolkit

Backend

Nachdem das Maven-Modul hinzugefügt wurde ist nichts weiter zu tun.

Frontend (GWT)

Das SelectPageTool kann Export- und Import-Handler entgegennehmen. Durch das Addon stehen die Export- und Import-Handler für den Jadice Viewer (Swing) und das jadice web toolkit zur Verfügung. Diese können parallel genutzt werden:

ThumbnailPanel (Teil der Enterprise-Demo)

SelectPageTool selectPageTool = toolManager.register(SelectPageTool.class, true);
selectPageTool.getExportHandlers().addAll(Arrays.asList(new JWTExportHandler(), new DOCPExportHandler()));
selectPageTool.getImportHandlers().addAll(Arrays.asList(new JWTImportHandler(), new DOCPImportHandler()));

Jadice Viewer (Swing)

Für den Teil Swing Viewer existiert eine eigene Dokumentation.