Hallo,
ich hänge an dem Problem, per Script ein GOM-Element (also eine Eingabemaske) zu erzeugen und darin auch Vorgabewerte zu setzen. Die Maskengenerierung geht auch schon (mühsam aufgrund unvollständiger GOM-Dokumentation
), aber bei den Vorgabewerten scheitere ich daran, dass setDefaultValue() einen Wert vom Typ "EditorValue" erwartet, aber ich keinen neuen EditorValue instantiieren kann, weil es sich um Interfaces handelt.
Folgender Script-Beispielcode soll das zeigen (arbeitet im Formular des gerade in Bearbeitung befindlichen Scripts):
// ********** Imports an dieser Stelle zugunsten der Kürze weggelassen ...
// Master language
masterlang = context.getProject().getMasterLanguage();
// Template-Store
ts = context.getUserService().getStore(Store.TEMPLATE_STORE, true, true);
// Aktuelles Script
sc = context.getScript();
// Dessen Formular = GomProvider
gp = sc.getGomProvider();
// Formular löschen
gp.clear();
// Neues Formularelement
fe = new GomText();
// Name setzen - war das mühsam, das rauszufinden ...
a = new ValueOfContractor.Invoke();
d = a.valueOf(Designator.class,"st_text_1");
fe.setName(d);
// Langinfos spare ich mir im Beispiel
// Sprachunabhängig
fe.setUseLanguages(YesNo.NO);
// Default Value ergibt NULL
print fe.getDefaultValue();
// ********* Hier hänge ich: Wie erzeuge ich eine Default-Vorgabe?
// ********* Anschlussfrage: Für einen CMS_INPUT_RADIOBUTTON?
// Element zum GomProvider hinzufügen
gp.add(fe);
// Template aktualisieren
sc.setGomProvider(gp);
// und Speichern
sc.save("Testscript hat sein eigenes Formular verändert");
Wie kann ich da den Default setzen?
Arndt Bär