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.