- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Liste in ContentCreator anzeigen
Hallo Zusammen,
ich will ein Skritp schreiben, welche spรคter in ContentCreator ausgefรผhrt werden soll.
Hier mรถchte ich folgendes tun:
- hole mir alle Auftrรคge von dem Projekt in eine Liste
- Zeige diese Liste dem User an, damit er einen Auftrag auswรคhlen kann
- User wรคhlt Auftrag aus und den Auftrag wird ausgefรผhrt.
Im SiteArchitect kann ich ja ganz einfach einen JOptionPane.showInputDialog verwenden fรผr die Liste anzeigen.
String[] choices = new String[listString.size()];
choices = listString.toArray(choices);
String input = (String) JOptionPane.showInputDialog(null, "Bitte wรคhlen Sie den Auftrag aus.",
"The Choice of a Lifetime", JOptionPane.QUESTION_MESSAGE, null, choices, choices[0]);
Aber wie kann ich eine Liste im ContentCreator anzeigen und auch gleichzeitig den Rรผckgabe wert erhalten?
Gruร
Daniel
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Daniel,
soweit mir bekannt sollte das รผber den OperationAgent und der ShowFormDialogOperation funktionieren.
Wenn du ein Script erstellst, welches im ContentCreator genutzt werden kann, kannst du dem Formularkanal des Scriptes mit den notwendigen Eingabekomponeten erstellen oder dir in dem Script eine Eingabekomponente zusammenbauen:
/* Ungetestet als Script */
opAgent = context.requireSpecialist(OperationAgent.TYPE);
langAgent = context.requireSpecialist(LanguageAgent.TYPE);
masterLang = langAgent.getMasterLanguage();
formsAgent = context.requireSpecialist(FormsAgent.TYPE);
generateForm() {
formBuilder = new StringBuilder();
formBuilder.append("<CMS_MODULE>");
formBuilder.append("<CMS_LABEL>");
formBuilder.append("<LANGINFOS>");
formBuilder.append("<LANGINFO lang=\"*\" label=\"This Script copies all language dependend information from source language to target language(s)\"/>");
formBuilder.append("</LANGINFOS>");
formBuilder.append("</CMS_LABEL>");
formBuilder.append("<CMS_INPUT_COMBOBOX name=\"sc_sourceLanugage\" allowEmpty=\"no\" hFill=\"yes\" useLanguages=\"no\" singleLine=\"no\">");
formBuilder.append("<ENTRIES>");
for (lang : context.getProject().getLanguages()) {
formBuilder.append("<ENTRY value=\""+lang.getAbbreviation()+"\">");
formBuilder.append("<LANGINFOS>");
formBuilder.append("<LANGINFO lang=\"*\" label=\""+lang.getAbbreviation()+"\"/>");
formBuilder.append("</LANGINFOS>");
formBuilder.append("</ENTRY>");
}
formBuilder.append("</ENTRIES>");
formBuilder.append("<LANGINFOS>");
formBuilder.append("<LANGINFO lang=\"*\" label=\"Source Language\"/>");
formBuilder.append("</LANGINFOS>");
formBuilder.append("</CMS_INPUT_COMBOBOX>");
formBuilder.append("</CMS_MODULE>");
}
sfdOp = opAgent.getOperation(ShowFormDialogOperation.TYPE);
sfdOp.setTitle("Title");
inputData = null;
try {
inputData = sfdOp.perform(formsAgent.getForm(generateForm()), langAgent.getLanguages());
} catch(e) {
//error
}
if(inputData != null) {
sourceLang = inputData.get(masterLang, "sc_sourceLanugage").get();
}
Das dรผrfte in ContentCreator und SiteArchitect funktionieren.
Vielleicht kann das ja hier noch kurz jemand bestรคtigen, das habe ich nicht getestet.
Grรผรe,
Philipp
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Daniel,
soweit mir bekannt sollte das รผber den OperationAgent und der ShowFormDialogOperation funktionieren.
Wenn du ein Script erstellst, welches im ContentCreator genutzt werden kann, kannst du dem Formularkanal des Scriptes mit den notwendigen Eingabekomponeten erstellen oder dir in dem Script eine Eingabekomponente zusammenbauen:
/* Ungetestet als Script */
opAgent = context.requireSpecialist(OperationAgent.TYPE);
langAgent = context.requireSpecialist(LanguageAgent.TYPE);
masterLang = langAgent.getMasterLanguage();
formsAgent = context.requireSpecialist(FormsAgent.TYPE);
generateForm() {
formBuilder = new StringBuilder();
formBuilder.append("<CMS_MODULE>");
formBuilder.append("<CMS_LABEL>");
formBuilder.append("<LANGINFOS>");
formBuilder.append("<LANGINFO lang=\"*\" label=\"This Script copies all language dependend information from source language to target language(s)\"/>");
formBuilder.append("</LANGINFOS>");
formBuilder.append("</CMS_LABEL>");
formBuilder.append("<CMS_INPUT_COMBOBOX name=\"sc_sourceLanugage\" allowEmpty=\"no\" hFill=\"yes\" useLanguages=\"no\" singleLine=\"no\">");
formBuilder.append("<ENTRIES>");
for (lang : context.getProject().getLanguages()) {
formBuilder.append("<ENTRY value=\""+lang.getAbbreviation()+"\">");
formBuilder.append("<LANGINFOS>");
formBuilder.append("<LANGINFO lang=\"*\" label=\""+lang.getAbbreviation()+"\"/>");
formBuilder.append("</LANGINFOS>");
formBuilder.append("</ENTRY>");
}
formBuilder.append("</ENTRIES>");
formBuilder.append("<LANGINFOS>");
formBuilder.append("<LANGINFO lang=\"*\" label=\"Source Language\"/>");
formBuilder.append("</LANGINFOS>");
formBuilder.append("</CMS_INPUT_COMBOBOX>");
formBuilder.append("</CMS_MODULE>");
}
sfdOp = opAgent.getOperation(ShowFormDialogOperation.TYPE);
sfdOp.setTitle("Title");
inputData = null;
try {
inputData = sfdOp.perform(formsAgent.getForm(generateForm()), langAgent.getLanguages());
} catch(e) {
//error
}
if(inputData != null) {
sourceLang = inputData.get(masterLang, "sc_sourceLanugage").get();
}
Das dรผrfte in ContentCreator und SiteArchitect funktionieren.
Vielleicht kann das ja hier noch kurz jemand bestรคtigen, das habe ich nicht getestet.
Grรผรe,
Philipp
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Philipp,
vielen Dank. Jetzt starte ich anschlieรend noch einen Auftrag aus der Maske heraus. Leider kommt bei dem Status dann immer NOT_STARTED, obwohl der Auftrag durchlรคuft.
ScheduleEntryControl sec = scheduleEntry.execute(); |
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Puh, da bin ich รผberfragt.
ggf. hilft:
https://community.e-spirit.com/message/18059#18059
- hilft ein refresh() auf sec?
Ansonsten wรคre das fรผr mich ein Fall fรผr den helpdesk.
Grรผรe,
Philipp

