dluettel
Elite Observer

Drag & Drop Verhalten beim Report

Jump to solution

Hallo Zusammen,

wir möchten gerade einen Report erstellen, mit dem wir Objekte auf eine Seite fallen lassen können (Drag&Drop) und danach sollen Inhalte von dem Objekt in die FormData der Page geschrieben werden. Uns wurde gesagt, dass das kein Problem ist. Wir finden jedoch in den Beispielen und in der API nur eine Stelle, wo wir den Handler (registerSupplier) für das Drag&Drop registrieren können.

Könnt ihr uns einen Tipp geben, wo wir suchen müssen?

// Instantiate and register a supplier object that supplies data of type String, MIME type "text/html".
final TransferType<String> htmlObjectTransferType = transferAgent.getHtmlTextType();

host.registerSupplier(htmlObjectTransferType, new HTMLObjectSupplier());

Beste Grüße

Daniel Lüttel

1 Solution

Accepted Solutions
mbergmann
Crownpeak employee

Hallo Daniel,

wenn es um einen DataAccessPlugin-Report geht: Hier ist der Aspekt "TransferSupplying" der DataAccessSession die richtige Stelle, an der die Registrierung gemacht wird. Siehe hier im ODFS (ganz unten).

Als Drop-Target müsstest Du dann einen FS_BUTTON mit dahinterliegender Executable nutzen.

Viele Grüße

MIchael

View solution in original post

0 Kudos
11 Replies
mbergmann
Crownpeak employee

Hallo Daniel,

wenn es um einen DataAccessPlugin-Report geht: Hier ist der Aspekt "TransferSupplying" der DataAccessSession die richtige Stelle, an der die Registrierung gemacht wird. Siehe hier im ODFS (ganz unten).

Als Drop-Target müsstest Du dann einen FS_BUTTON mit dahinterliegender Executable nutzen.

Viele Grüße

MIchael

0 Kudos
Anonymous
Not applicable

Hi Michael,

das hilft uns schon mal weiter, vielen Dank dafür. Ich habe aktuell noch eine kleine Verständnisfrage zu den DataAccesObjects von dem Report, was damit zusammenhängt:

Verstehe ich es richtig, dass die Report-Objekte sprachunanhängig dargestellt werden, oder gibt es die Möglichkeit diese Objekte je nach aktueller Sprache anzuzeigen?

Idee war das Drag&Droppen eines Report-Records auf so einen Button, der dann für alle Sprachen direkt das richtige liefert. (Ich hab mich bestimmt wieder mal nur im Code und der Doku verirrt)

Gruß,

Danny

0 Kudos

Hallo Danny,

die Darstellung der Report-Objekte ist ja letztlich eine Eigenimplementierung (durch den SnippetProvider), d.h. hier kann man sich durchaus über die entsprechenden Agents im Report bzw. DataAccessPlugin die passende Sprache holen.

Ich persönlich baue mir z.B. immer Wrapper-Objekte (bzw. Interfaces) die dann das "D" bilden, auch wenn ich intern auf FirstSpirit-Objekten arbeite. Die haben dann Methoden wie getTitle(Language) die ich dann passend delegiere.

Viele Grüße

Michael

0 Kudos
Anonymous
Not applicable

Hi Michael,

den SnippetProvider habe ich natürlich übersehen (bzw. falsch interpretiert), vielen Dank!

Nur um nochmal sicher zu gehen: das heißt doch, dass meine angezeigten Einträge im Reports-Dialog in der Seite je nach ausgewählter Formularsprache dargestellt werden, richtig? Das heißt die aktualisieren sich immer, richtig?

Gruß,

Danny

0 Kudos

Hallo Danny,

von "alleine" nicht, Du musst irgendwo selber die Sprache übergeben und dann entsprechend dieser Sprache die Infos sprachabhängig über den SnippetProvider ziehen.

Nicht dass wir aneinander vorbei reden: Es geht Dir um die Darstellung der Reporteinträge (=Snippets), oder?

Letztlich ist also die Frage, wo Du die "aktuelle" Sprache herbekommst. Im CC kommt man z.B. soweit ich weiß aktuell nicht an die "Client-Sprache" (in der die allgemeine FS-Oberfläche beschriftet ist) heran sondern über den WebeditUiAgent nur an die Preview-Sprache.

Ich bin mir gerade nicht sicher, ob man - wenn man sich in einem CC-Formular befindet - an die dort selektierte (="aktive") Sprache im Formular herankommt... Im SA geht das über einen Umweg.

Viele Grüße

Michael

0 Kudos
Anonymous
Not applicable

Hi Michael,

damit ich die Nomenklatur richtig verstehe: Reporteinträge sind ja erstmal nur Java-Objekte. Die Darstellung im gerenderten HTML bekomme ich ja über die Absatzvorlagen richtig gerendert, weil ich hier die aktuell dargestellte Sprache aus der Seite bekomme (und dass dann über die Wrapper ermittelt bekomme).

Mir geht es um die Darstellung in dem Auswahldialog sowohl im SA als auch im CC. Die dort dargestellten Einträge (soweit ich das jetzt verstanden habe) laufen doch durch den SnippetProvider, welcher ja die Sprache mitbekommt:

@NotNull

    @Override

    public String getHeader(@NotNull final TextBlocksObject object, @Nullable final Language language) {

        return object.getTitle();

    }

Ich wollte nur sichergehen, ob hier die Anzeige im SA/CC immer die Liste dann aktualisiert. Wir reden vermutlich über das gleiche, aber aufgrund von Wissenslücken meinerseits ein wenig mit anderen Begrifflichkeiten. Mit "aktive Sprache" meine ich nicht die Sprache der Bedienelemente von SA/CC, sondern die der dargestellten Sprache in der Preview bzw. die im SA-Formular ausgewählte Sprache.

Gruß,

Danny

0 Kudos

Hallo Danny,

stimmt, die Sprache bekommst Du ja schon rein... Da hatte ich was verwechselt (und nicht mehr nachgeschaut) 😉

Hier wäre wohl die beste Variante, Deinen Objekten Mehrsprachigkeit beizubringen. Also statt einer Methode .getTitle() ein .getTitle(Language). Theoretisch könntest Du auch schon im Plugin über einen Agent die "aktuelle" Sprache ziehen und dann direkt nur immer die Sprachinfos nutzen, aber dann geht soweit ich mich erinnere genau der Fall "im Formular" nicht (weil es hierfür keinen Agent gibt). Mehr Sinn macht auf jeden Fall, die übergebene Sprache zu nutzen.

Die Liste (im Auswahldialog) sollte sich immer entsprechend der Sprache verhalten, nur falls Du einen Report hast wird der sich nicht automatisch aktualisieren nur wenn Du die Sprache wechselst. Hier weiß ich ehrlich gesagt nicht, welche Sprache der Report hier "hereingereicht" bekommt.

Viele Grüße

Michael

0 Kudos
Anonymous
Not applicable

Hi Michael,

das sind doch mal sehr gute Nachrichten Smiley Wink ich bau dann mal und schaue wo ich rauskomme, wollte aber sicherstellen, dass ich nicht direkt am Start in die falsche Richtung laufe.

Nur um GANZ sicher zu gehen: was ist dieses "Report" von dem wir hier alle sprechen? Mag doof klingen, aber ich fürchte ich verbinde mit dem Wort etwas ganz anderes.

Gruß,

Danny

0 Kudos

Hi Danny,

die "Reports" in FirstSpirit sind die "Suchbereiche" links (SA) bzw. rechts (im CC). Hier kann man quasi ein DataAccessPlugin "einhängen" und bekommt dann einen zusätzlichen Button. Siehe auch hier. Hier kann man dann zusätzlich noch Buttons auf den Snippets definieren und direkt aus dem Report heraus mit D&D arbeiten.

Sobald man ein DAP (auch) als Report nutzt, wird dadurch allerdings in der Lizenz ein Appcenter-Slot belegt.

Viele Grüße

Michael