Search the FirstSpirit Knowledge Base
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.
Hat echt keiner ne Idee?
Viele Grüße,
Emil.
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
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.
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
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
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.
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.
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.
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;
}