ESalimov
I'm new here

eigene Eingabekomponent in WebEdit

Hallo Zusammen,

die selbstimplementierte Eingabekomponent funktioniert einwandfrei in JavaClient.

Wie kann man diese in WebEdit auch zur Verfügung stellen, damit die Redakteuren über WebEdit die Absätze bearbeiten können?

Die folgende Meldung kriege ich in WebEdit:

"Der Editor 'st_url' vom Typ 'CMS_IS_EDITOR' wird nicht unterstützt."

Viele Grüße,

Emil.

0 Kudos
10 Replies
ESalimov
I'm new here

Hat echt keiner ne Idee?

Viele Grüße,

Emil.

0 Kudos

Hallo Emil,

du musst deine Eingabekomponente auch für den ContentCreator implementieren, indem du die entsprechenden Interfaces implementiertst. Für den SiteArchitekt hast du ja eine Java-Swing Oberfläche implementiert, die funktioniert so natürlich nicht im ContentCreator. Da brauchst du eine HTML/JS Variante. In der Javadoc findest du die notwendigen Interfaces und in den Beispielmodulen ist die Geolocation-Komponente für dich sicher interessant.

Viele Grüße

Christoph

0 Kudos

Hallo Christoph,

Danke für die Rückmeldung.

Ich habe "geolocation" installiert um das zu testen, aber leider kriege ich die gleiche Meldung bei diesem Modul auch.

Viele Grüße,

Emil.

0 Kudos

Hallo Emil,

um die Geolocation Eingabekomponente zu testen musst du neben der Modulinstallation auch die Web-Komponente (im Reiter ContentCreator) auf einem Webserver installieren und aktivieren.

Viele Grüße

Rene

0 Kudos
MichaelaReydt
Community Manager

Hallo Emil,

benötigst du noch weitere Hilfe oder konnten dir Christophs und Renes Antworten bereits weiterhelfen? In diesem Fall wäre es super, wenn du die "richtige Antwort" entsprechend markierst.

Viele Grüße

Michaela

0 Kudos

Hallo Michaela,

Leider war ich im Ausland und endlich habe ich jetzt Zeit es weiterzumachen.

Das "geolocation" Beispiel funktioniert im WebEdit immer noch nicht.

Die folgende Fehlermeldung erhalte ich:

"Failed to create gadget type 'CUSTOM_GEOLOCATION', due to missing JavaScript controller 'GeolocationWebGadget'. Make sure to install all necessary module components into your project-local ContentCreator instance."

Viele Grüße,

Emil.

0 Kudos

Hallo,

Die Swinggadget Klasse enthält getValue und setValue Methoden, die sich um die gespeicherte Werte kümmern sollen. Aber die werten werden nicht gespeichert und bei jedem Aufruf alles verschwindet.

public void setValue(@Nullable HDItem hditem) {

              

       if(hditem == null){

            hditem = new HDItemImpl();

       }

         _search = hditem.getSearch();   

            _subscribe = hditem.getSubscribe();

            _result = hditem.getResult();

            _template = hditem.getTemplate();

            _overlay = hditem.getSuffix();

            _url = hditem.getUrl();

        if (_fsEditorPanel.isShowing()) {

            add(hditem);

        }

        _valueSet = true;

    }

Die Methode liefert null zurück.

z.B Log-Ausgabe:

INFO  19.02.2015 08:44:13.245 (de.espirit.firstspirit.opt.gom.hditem.HDItemSwingGadget):  - Search : 30000001 - Subscribe : pic - SelectedImage : 300000_04 - Template : Box - suffix : &tmp=BoxAdt - URL : .........Box

INFO  19.02.2015 08:44:13.245 (de.espirit.firstspirit.opt.gom.hditem.HDItemSwingGadget): nicht equals

INFO  19.02.2015 08:44:13.245 (de.espirit.firstspirit.opt.gom.hditem.HDItemSwingGadget): test:true

INFO  19.02.2015 08:44:13.245 (de.espirit.firstspirit.opt.gom.hditem.HDItemSwingGadget): ADD:  :  :  :  :  :

INFO  19.02.2015 08:44:13.245 (de.espirit.firstspirit.opt.gom.hditem.HDItemSwingGadget): HDItemSwingGadget SetValue

INFO  19.02.2015 08:44:13.245 (de.espirit.firstspirit.opt.gom.hditem.HDItemSwingGadget):  - _search :  - _subscribe :  - _result :  - _template :  - _overlay :  - _url :

INFO  19.02.2015 08:44:13.323 (de.espirit.firstspirit.opt.gom.hditem.HDItemSwingGadget): HDItemSwingGadget run

Die Werte werden gespeichert und nachdem man die Bearbeitungsstatus ändert verschwindet alles und wird null zurückgegeben.

Viele Grüße,

Emil.

0 Kudos

Die setValue Methode ist dazu gedacht den Wert im Formular zu setzen. Also in einer Swing-Komponente (jtextfield oder so). GetValue liest entsprechend den Wert aus der Komponente.

Das Auslesen/Speichern des Wertes aus der Persistenzschicht passiert im ValueEngineer.

0 Kudos

Ja, die ValueEngineer hat read- und write-Methoden, die trotz nach der Ausführung immer null zurückliefern.

@NotNull

    public List<Node> write(@NotNull final HDItem hditem) {

        final List<Node> result = new ArrayList<Node>();

       

        final String search = hditem.getSearch();

        if (search != null) {

            result.add(Node.create(SEARCH_KEY, search));

        }

      .....................

      ............

       Logging.logInfo("HDItemValueEnginner write", LOGGER);

        return result;

    }

    public HDItem read(@NotNull final List<Node> nodes) {

        final HDItemImpl hditem = new HDItemImpl();

       

        try {

            for (final Node node : nodes) {

                final String nodeName = node.getName();

                if (SEARCH_KEY.equals(nodeName)) {

                    hditem.setSearch(node.getText());

                }

                ........................

                .......................

            }

        } catch (NumberFormatException e) {

            return null;

        }

       

        Logging.logInfo("HDItemValueEngineer read", LOGGER);

        return hditem;

    }

0 Kudos