Search in sources :

Example 11 with Slider

use of org.olat.modules.forms.model.xml.Slider in project OpenOLAT by OpenOLAT.

the class CompareEvaluationsFormController method forgeRadarRubric.

private EvaluationFormElementWrapper forgeRadarRubric(Rubric element) {
    EvaluationFormElementWrapper wrapper = new EvaluationFormElementWrapper(element);
    wrapper.setRadarOverview(true);
    List<String> axisList = new ArrayList<>();
    List<Slider> sliders = element.getSliders();
    Map<EvaluationFormSession, RadarSeries> series = new HashMap<>();
    for (Slider slider : sliders) {
        String axis;
        if (StringHelper.containsNonWhitespace(slider.getEndLabel())) {
            axis = slider.getEndLabel();
        } else if (StringHelper.containsNonWhitespace(slider.getStartLabel())) {
            axis = slider.getStartLabel();
        } else {
            axis = "";
        }
        axisList.add(axis);
        String responseIdentifier = slider.getId();
        List<EvaluationFormResponse> responses = identifierToResponses.get(responseIdentifier);
        if (responses != null && responses.size() > 0) {
            for (EvaluationFormResponse response : responses) {
                EvaluationFormSession responseSession = response.getSession();
                if (!series.containsKey(responseSession)) {
                    Identity identity = responseSession.getIdentity();
                    String legend = getLegend(identity);
                    String color = evaluatorToColors.get(identity);
                    series.put(responseSession, new RadarSeries(legend, color));
                }
                if (response.getNumericalResponse() != null) {
                    double value = response.getNumericalResponse().doubleValue();
                    series.get(responseSession).addPoint(axis, value);
                }
            }
        }
    }
    String id = "radar_" + (count++);
    RadarChartElement radarEl = new RadarChartElement(id);
    radarEl.setSeries(new ArrayList<>(series.values()));
    radarEl.setShowLegend(true);
    radarEl.setAxis(axisList);
    if (element.getSliderType() == SliderType.discrete || element.getSliderType() == SliderType.discrete_slider) {
        radarEl.setLevels(element.getSteps());
        radarEl.setMaxValue(element.getSteps());
        radarEl.setFormat(Format.integer);
    } else if (element.getSliderType() == SliderType.continuous) {
        radarEl.setLevels(10);
        radarEl.setMaxValue(100);
        radarEl.setFormat(Format.integer);
    }
    wrapper.setRadarEl(radarEl);
    flc.add(id, radarEl);
    return wrapper;
}
Also used : Slider(org.olat.modules.forms.model.xml.Slider) EvaluationFormElementWrapper(org.olat.modules.forms.ui.model.EvaluationFormElementWrapper) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) RadarSeries(org.olat.core.gui.components.chart.RadarSeries) EvaluationFormSession(org.olat.modules.forms.EvaluationFormSession) RadarChartElement(org.olat.core.gui.components.chart.RadarChartElement) EvaluationFormResponse(org.olat.modules.forms.EvaluationFormResponse) Identity(org.olat.core.id.Identity)

Example 12 with Slider

use of org.olat.modules.forms.model.xml.Slider in project OpenOLAT by OpenOLAT.

the class CompareEvaluationsFormController method forgeRubric.

private EvaluationFormElementWrapper forgeRubric(Rubric element) {
    EvaluationFormElementWrapper wrapper = new EvaluationFormElementWrapper(element);
    wrapper.setSliderOverview(true);
    List<Slider> sliders = element.getSliders();
    List<SliderWrapper> sliderWrappers = new ArrayList<>(sliders.size());
    for (Slider slider : sliders) {
        String responseIdentifier = slider.getId();
        List<EvaluationFormResponse> responses = identifierToResponses.get(responseIdentifier);
        SliderWrapper sliderWrapper = forgeSliderStats(slider, element, responses);
        sliderWrappers.add(sliderWrapper);
    }
    wrapper.setSliders(sliderWrappers);
    return wrapper;
}
Also used : SliderWrapper(org.olat.modules.forms.ui.model.SliderWrapper) Slider(org.olat.modules.forms.model.xml.Slider) EvaluationFormElementWrapper(org.olat.modules.forms.ui.model.EvaluationFormElementWrapper) ArrayList(java.util.ArrayList) EvaluationFormResponse(org.olat.modules.forms.EvaluationFormResponse)

Example 13 with Slider

use of org.olat.modules.forms.model.xml.Slider in project OpenOLAT by OpenOLAT.

the class RubricEditorController method formOK.

@Override
protected void formOK(UserRequest ureq) {
    commitFields();
    commitStepLabels();
    String selectedType = typeEl.getSelectedKey();
    SliderType type = SliderType.valueOf(selectedType);
    rubric.setSliderType(type);
    if (type == SliderType.continuous) {
        rubric.setStart(1);
        rubric.setEnd(100);
        rubric.setSteps(100);
    } else {
        int steps = Integer.parseInt(stepsEl.getSelectedKey());
        rubric.setStart(1);
        rubric.setEnd(steps);
        rubric.setSteps(steps);
    }
    for (Iterator<Slider> sliderIt = rubric.getSliders().iterator(); sliderIt.hasNext(); ) {
        Slider slider = sliderIt.next();
        if (!StringHelper.containsNonWhitespace(slider.getStartLabel()) && !StringHelper.containsNonWhitespace(slider.getEndLabel())) {
            sliderIt.remove();
        }
    }
    rubricCtrl.updateForm();
    fireEvent(ureq, new ChangePartEvent(rubric));
    fireEvent(ureq, new ClosePartEvent(rubric));
}
Also used : ClosePartEvent(org.olat.modules.portfolio.ui.editor.event.ClosePartEvent) Slider(org.olat.modules.forms.model.xml.Slider) ChangePartEvent(org.olat.modules.portfolio.ui.editor.event.ChangePartEvent) SliderType(org.olat.modules.forms.model.xml.Rubric.SliderType)

Example 14 with Slider

use of org.olat.modules.forms.model.xml.Slider in project openolat by klemens.

the class RubricController method updateForm.

protected void updateForm() {
    EvaluationFormElementWrapper wrapper = new EvaluationFormElementWrapper(rubric);
    List<Slider> sliders = rubric.getSliders();
    List<SliderWrapper> sliderWrappers = new ArrayList<>(sliders.size());
    for (Slider slider : sliders) {
        SliderType type = rubric.getSliderType();
        SliderWrapper sliderWrapper = null;
        if (type == SliderType.discrete) {
            sliderWrapper = forgeDiscreteRadioButtons(slider, rubric);
        } else if (type == SliderType.discrete_slider) {
            sliderWrapper = forgeDiscreteSlider(slider, rubric);
        } else if (type == SliderType.continuous) {
            sliderWrapper = forgeContinuousSlider(slider, rubric);
        }
        if (sliderWrapper != null) {
            sliderWrappers.add(sliderWrapper);
        }
    }
    wrapper.setSliders(sliderWrappers);
    flc.contextPut("element", wrapper);
}
Also used : SliderWrapper(org.olat.modules.forms.ui.model.SliderWrapper) Slider(org.olat.modules.forms.model.xml.Slider) EvaluationFormElementWrapper(org.olat.modules.forms.ui.model.EvaluationFormElementWrapper) ArrayList(java.util.ArrayList) SliderType(org.olat.modules.forms.model.xml.Rubric.SliderType)

Example 15 with Slider

use of org.olat.modules.forms.model.xml.Slider in project openolat by klemens.

the class RubricEditorController method formOK.

@Override
protected void formOK(UserRequest ureq) {
    commitFields();
    commitStepLabels();
    String selectedType = typeEl.getSelectedKey();
    SliderType type = SliderType.valueOf(selectedType);
    rubric.setSliderType(type);
    if (type == SliderType.continuous) {
        rubric.setStart(1);
        rubric.setEnd(100);
        rubric.setSteps(100);
    } else {
        int steps = Integer.parseInt(stepsEl.getSelectedKey());
        rubric.setStart(1);
        rubric.setEnd(steps);
        rubric.setSteps(steps);
    }
    for (Iterator<Slider> sliderIt = rubric.getSliders().iterator(); sliderIt.hasNext(); ) {
        Slider slider = sliderIt.next();
        if (!StringHelper.containsNonWhitespace(slider.getStartLabel()) && !StringHelper.containsNonWhitespace(slider.getEndLabel())) {
            sliderIt.remove();
        }
    }
    rubricCtrl.updateForm();
    fireEvent(ureq, new ChangePartEvent(rubric));
    fireEvent(ureq, new ClosePartEvent(rubric));
}
Also used : ClosePartEvent(org.olat.modules.portfolio.ui.editor.event.ClosePartEvent) Slider(org.olat.modules.forms.model.xml.Slider) ChangePartEvent(org.olat.modules.portfolio.ui.editor.event.ChangePartEvent) SliderType(org.olat.modules.forms.model.xml.Rubric.SliderType)

Aggregations

Slider (org.olat.modules.forms.model.xml.Slider)20 ArrayList (java.util.ArrayList)8 EvaluationFormElementWrapper (org.olat.modules.forms.ui.model.EvaluationFormElementWrapper)8 EvaluationFormResponse (org.olat.modules.forms.EvaluationFormResponse)6 Rubric (org.olat.modules.forms.model.xml.Rubric)6 SliderType (org.olat.modules.forms.model.xml.Rubric.SliderType)6 SliderWrapper (org.olat.modules.forms.ui.model.SliderWrapper)6 HashMap (java.util.HashMap)2 RadarChartElement (org.olat.core.gui.components.chart.RadarChartElement)2 RadarSeries (org.olat.core.gui.components.chart.RadarSeries)2 FormLayoutContainer (org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer)2 Identity (org.olat.core.id.Identity)2 EvaluationFormSession (org.olat.modules.forms.EvaluationFormSession)2 ChangePartEvent (org.olat.modules.portfolio.ui.editor.event.ChangePartEvent)2 ClosePartEvent (org.olat.modules.portfolio.ui.editor.event.ClosePartEvent)2