Hallo Leute,
ich wende mich jetzt mal an das Forum, da ich mit anderen Beispielen im Web, auch die von Book of Vaadin, nicht ganz klar komm.
Ich lass mir in meinem Java-Programm, was übrigens auf Spring basiert, bestimmte Informationen aus der Datenbank holen. Anhand dieser Informationen erstelle ich bestimmte HTML-Eingabeelemente z.B. Radio-Buttons oder Checkboxen.
Zum Verständnis, die Informationen die ich bekomme, sind Fragen und Antworttypen (z.B. SingleChoice oder MultipleChoice) für einer Umfrage.
Zum Schluß erstelle ich einen Button der das Form abschicken soll, und wo ich danach die gewählten Antworten in die DB speichern kann.
Doch wie funktioniert das?
Darauf zu achten ist auch, dass die HTML-Elemente dynamisch erzeugt werden, d.h. die Anzahl der Elemente stehen vorher nie fest!
Wie würde ihr das machen? Ich hoffe ich hab es verständlich erklärt?
VIELEN VIELEN DANK!
ich wende mich jetzt mal an das Forum, da ich mit anderen Beispielen im Web, auch die von Book of Vaadin, nicht ganz klar komm.
Ich lass mir in meinem Java-Programm, was übrigens auf Spring basiert, bestimmte Informationen aus der Datenbank holen. Anhand dieser Informationen erstelle ich bestimmte HTML-Eingabeelemente z.B. Radio-Buttons oder Checkboxen.
Zum Verständnis, die Informationen die ich bekomme, sind Fragen und Antworttypen (z.B. SingleChoice oder MultipleChoice) für einer Umfrage.
Zum Schluß erstelle ich einen Button der das Form abschicken soll, und wo ich danach die gewählten Antworten in die DB speichern kann.
Doch wie funktioniert das?
Darauf zu achten ist auch, dass die HTML-Elemente dynamisch erzeugt werden, d.h. die Anzahl der Elemente stehen vorher nie fest!
Wie würde ihr das machen? Ich hoffe ich hab es verständlich erklärt?
VIELEN VIELEN DANK!
Java:
// Form erstellen
Form form = new Form();
// Container mit den Fragen und Antworttypen durchlaufen und anzeigen
for(int a=0; a<surveyContainer.size(); a++) {
// Frage darstellen
label = new Label(surveyContainer.getIdByIndex(a).getQuestionContent());
label.setSizeUndefined();
form.getLayout().addComponent(label);
// Auswahl darstellen
if (surveyContainer.getIdByIndex(a).getAnswerType().toString() == "SingleChoice") {
// SingleChoice
splitAnswerValue = surveyContainer.getIdByIndex(a).getAnswerTypeValue().split(";");
if (splitAnswerValue.length > 0) {
optionGroup = new OptionGroup();
optionGroup.setMultiSelect(false);
optionGroup.setNullSelectionAllowed(false);
for(int b=0; b<splitAnswerValue.length; b++) {
optionGroup.addItem(splitAnswerValue[b]);
}
form.addField("sc", optionGroup);
}
} else if (surveyContainer.getIdByIndex(a).getAnswerType().toString() == "MultipleChoice") {
// MultipleChoice
splitAnswerValue = surveyContainer.getIdByIndex(a).getAnswerTypeValue().split(";");
if (splitAnswerValue.length > 0) {
optionGroup = new OptionGroup();
optionGroup.setMultiSelect(true);
optionGroup.setNullSelectionAllowed(true);
for(int b=0; b<splitAnswerValue.length; b++) {
optionGroup.addItem(splitAnswerValue[b]);
}
form.addField("mc", optionGroup);
}
}
// Trennlinie
label = new Label("<hr style=\"margin: 10px 0;\" />", Label.CONTENT_XHTML);
form.getLayout().addComponent(label);
}
// Buttons
button = new Button();
button.setCaption("Umfrage abschließen");
form.getLayout().addComponent(button);