Hallo,
ich bin inzwischen mal dazu gekommen eine eigene Handler-Klasse zu implementieren, die genau meine Wünsche erfüllt.
Es gibt allerdings noch ein kleines Problem beim Anzeigen des Formulars. Dazu erst einmal mein FS_BUTTON
<FS_BUTTON
name="pt_createNewsEntry"
hidden="yes"
icon="fs:new"
onClick="class:Content2ToListAppender"
style="firstspirit"
useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Create news entry and append to list"/>
<LANGINFO lang="DE" label="Meldung anlegen und hinzufügen"/>
</LANGINFOS>
<PARAMS>
<PARAM name="content2">pressreleases</PARAM>
<PARAM name="appendToList">db_news</PARAM>
</PARAMS>
</FS_BUTTON>
Der button öffnet das passende Formular zum übergebenen content2-Objekt (hier 'pressreleases'). Beim Speichern wird der neu angelegte Datensatz auch an die FS_LIST gehängt, die im Parameter appendToList übergeben wurde (hier 'db_news').
Nun zu meiner Frage. Das Formular zeige ich momentan so an, indem ich eine ShowFormDialogOperation nutze und das Formular übergebe tableTemplate.getGomSource().
...
// get the Content2 item which has been provided via FS_BUTTON parameter
Content2 destinationContent2 = (Content2) contentStoreRoot.getStoreElement(destinationContent2Uid, Content2.UID_TYPE);
TableTemplate tableTemplate = destinationContent2.getTemplate();
//context.logInfo(language.toString());
String formString = tableTemplate.getGomSource();
OperationAgent operationAgent = context.requireSpecialist(OperationAgent.TYPE);
ShowFormDialogOperation operation = operationAgent.getOperation(ShowFormDialogOperation.TYPE);
operation.setTitle("News anlegen und der Liste hinzufügen");
operation.setOkText("Speichern und schließen");
Form form = context.requireSpecialist(FormsAgent.TYPE).getForm(formString);
FormData formData = null;
try {
formData = operation.perform(form, Arrays.asList(language));
} catch (ShowFormDialogOperation.InvalidRulesetDefinition invalidRulesetDefinition) {
invalidRulesetDefinition.printStackTrace();
}
...
Wenn sich das Formular öffnet fehlen allerdings die Sprachumschalter. Geht das irgendwie noch besser? Also gibt es eine Möglichkeit das Formular so anzuzeigen, dass auch die Sprachumschalter erscheinen also so, als ob man die Klasse NewContentExecutable nutzt?
Gruß,
Sebastian