Search in sources :

Example 21 with Renderer

use of org.olat.core.gui.render.Renderer in project OpenOLAT by OpenOLAT.

the class CourseCreationConfiguration method getSinglePageText.

/**
 * @param translator
 * @return single page content
 */
public String getSinglePageText(Translator translator) {
    VelocityContainer vc = new VelocityContainer("singlePageTemplate", CourseCreationHelper.class, "singlePageTemplate", translator, null);
    vc.contextPut("coursetitle", courseTitle);
    // prepare rendering of velocity page for the content of the single page node
    GlobalSettings globalSettings = new GlobalSettings() {

        public int getFontSize() {
            return 100;
        }

        public AJAXFlags getAjaxFlags() {
            return new EmptyAJAXFlags();
        }

        public boolean isIdDivsForced() {
            return false;
        }
    };
    Context context = vc.getContext();
    Renderer fr = Renderer.getInstance(vc, translator, null, new RenderResult(), globalSettings);
    StringOutput wOut = new StringOutput(10000);
    VelocityRenderDecorator vrdec = new VelocityRenderDecorator(fr, vc, wOut);
    context.put("r", vrdec);
    VelocityHelper.getInstance().mergeContent(vc.getPage(), context, wOut, null);
    // free the decorator
    context.remove("r");
    IOUtils.closeQuietly(vrdec);
    return WysiwygFactory.createXHtmlFileContent(wOut.toString(), courseTitle);
}
Also used : Context(org.apache.velocity.context.Context) Renderer(org.olat.core.gui.render.Renderer) RenderResult(org.olat.core.gui.render.RenderResult) GlobalSettings(org.olat.core.gui.GlobalSettings) StringOutput(org.olat.core.gui.render.StringOutput) VelocityContainer(org.olat.core.gui.components.velocity.VelocityContainer) VelocityRenderDecorator(org.olat.core.gui.render.velocity.VelocityRenderDecorator)

Example 22 with Renderer

use of org.olat.core.gui.render.Renderer in project OpenOLAT by OpenOLAT.

the class TextElementImpl method initInlineEditing.

private void initInlineEditing(String predefinedValue) {
    // init the inline editing element component.
    transientValue = predefinedValue;
    AbstractInlineElementComponent aiec = new AbstractInlineElementComponent(this, new ComponentRenderer() {

        public void renderHeaderIncludes(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderingState rstate) {
        // nothing to do here
        }

        public void renderBodyOnLoadJSFunctionCall(Renderer renderer, StringOutput sb, Component source, RenderingState rstate) {
        // nothing to do here
        }

        public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) {
            AbstractInlineElementComponent aiec = (AbstractInlineElementComponent) source;
            InlineTextElement itei = (InlineTextElement) aiec.getInlineElement();
            StringBuilder htmlVal = new StringBuilder();
            /**
             * in case of an error show the test which caused the error which must be stored by the textelement in the transientValue.
             * the last valid value is always set over setValue(..) by the textelement, and thus can be retrieved as such here.
             */
            String tmpVal;
            String emptyVal = (itei.isInlineEditingOn() ? "" : itei.getEmptyDisplayText());
            if (itei.hasError()) {
                tmpVal = StringHelper.containsNonWhitespace(transientValue) ? transientValue : emptyVal;
            } else {
                tmpVal = StringHelper.containsNonWhitespace(getValue()) ? getValue() : emptyVal;
            }
            // append the html safe value
            htmlVal.append(StringEscapeUtils.escapeHtml(tmpVal));
            if (!itei.isEnabled()) {
                // RO view and not clickable
                String id = aiec.getFormDispatchId();
                sb.append("<div class='form-control-static' id=\"").append(id).append("\" ").append(" >").append(htmlVal).append("</div>");
            } else {
                // .......presssing ESC -> restore previous value and submit this one.
                if (itei.isInlineEditingOn()) {
                    String id = aiec.getFormDispatchId();
                    // read write view
                    sb.append("<input type=\"").append("input").append("\" class=\"form-control\" id=\"");
                    sb.append(id);
                    sb.append("\" name=\"");
                    sb.append(id);
                    sb.append("\" size=\"");
                    sb.append("30");
                    // if(itei.maxlength > -1){
                    // sb.append("\" maxlength=\"");
                    // sb.append(itei.maxlength);
                    // }
                    sb.append("\" value=\"");
                    sb.append(htmlVal);
                    sb.append("\" ");
                    sb.append(" />");
                    // Javascript
                    sb.append(FormJSHelper.getJSStart());
                    // clicking outside or pressing enter -> OK, pressing ESC -> Cancel
                    FormJSHelper.getInlineEditOkCancelJS(sb, id, StringEscapeUtils.escapeHtml(getValue()), itei.getRootForm());
                    sb.append(FormJSHelper.getJSEnd());
                } else {
                    // RO<->RW view which can be clicked
                    Translator trans = Util.createPackageTranslator(TextElementImpl.class, translator.getLocale(), translator);
                    String id = aiec.getFormDispatchId();
                    sb.append("<div id='").append(id).append("' class='form-control-static' title=\"").append(StringEscapeUtils.escapeHtml(trans.translate("inline.edit.help"))).append("\" ").append(FormJSHelper.getRawJSFor(itei.getRootForm(), id, itei.getAction())).append("> ").append(htmlVal).append(" <i class='o_icon o_icon_inline_editable'> </i></div>");
                }
            }
        // endif
        }
    });
    setInlineEditingComponent(aiec);
}
Also used : RenderingState(org.olat.core.gui.render.RenderingState) RenderResult(org.olat.core.gui.render.RenderResult) StringOutput(org.olat.core.gui.render.StringOutput) URLBuilder(org.olat.core.gui.render.URLBuilder) InlineTextElement(org.olat.core.gui.components.form.flexible.elements.InlineTextElement) ComponentRenderer(org.olat.core.gui.components.ComponentRenderer) Translator(org.olat.core.gui.translator.Translator) ComponentRenderer(org.olat.core.gui.components.ComponentRenderer) Renderer(org.olat.core.gui.render.Renderer) Component(org.olat.core.gui.components.Component)

Example 23 with Renderer

use of org.olat.core.gui.render.Renderer in project OpenOLAT by OpenOLAT.

the class QTI21ResultsExportMediaResource method createResultHTML.

private String createResultHTML(Component results) {
    String pagePath = Util.getPackageVelocityRoot(this.getClass()) + "/qti21results.html";
    URLBuilder ubu = new URLBuilder("auth", "1", "0");
    // generate VelocityContainer and put Component
    VelocityContainer mainVC = new VelocityContainer("html", pagePath, translator, null);
    mainVC.contextPut("rootTitle", translator.translate("table.grading"));
    mainVC.put("results", results);
    // render VelocityContainer to StringOutPut
    Renderer renderer = Renderer.getInstance(mainVC, translator, ubu, new RenderResult(), new EmptyGlobalSettings());
    try (StringOutput sb = new StringOutput(32000);
        VelocityRenderDecorator vrdec = new VelocityRenderDecorator(renderer, mainVC, sb)) {
        mainVC.contextPut("r", vrdec);
        renderer.render(sb, mainVC, null);
        vrdec.close();
        return sb.toString();
    } catch (Exception e) {
        log.error("", e);
        return "";
    }
}
Also used : Renderer(org.olat.core.gui.render.Renderer) RenderResult(org.olat.core.gui.render.RenderResult) StringOutput(org.olat.core.gui.render.StringOutput) IOException(java.io.IOException) URLBuilder(org.olat.core.gui.render.URLBuilder) VelocityContainer(org.olat.core.gui.components.velocity.VelocityContainer) VelocityRenderDecorator(org.olat.core.gui.render.velocity.VelocityRenderDecorator)

Example 24 with Renderer

use of org.olat.core.gui.render.Renderer in project OpenOLAT by OpenOLAT.

the class AssessmentObjectComponentRenderer method renderVelocity.

private void renderVelocity(AssessmentRenderer renderer, StringOutput sb, QtiNode interaction, Context ctx, String page, ResolvedAssessmentItem resolvedAssessmentItem, ItemSessionState itemSessionState, AssessmentObjectComponent component, URLBuilder ubu, Translator translator) {
    ctx.put("localName", interaction.getQtiClassName());
    ctx.put("assessmentItem", resolvedAssessmentItem.getRootNodeLookup().extractIfSuccessful());
    ctx.put("itemSessionState", itemSessionState);
    ctx.put("isItemSessionOpen", component.isItemSessionOpen(itemSessionState, renderer.isSolutionMode()));
    ctx.put("isItemSessionEnded", component.isItemSessionEnded(itemSessionState, renderer.isSolutionMode()));
    Renderer fr = Renderer.getInstance(component, translator, ubu, new RenderResult(), renderer.getGlobalSettings());
    AssessmentRenderer fHints = renderer.newHints(fr);
    try (AssessmentObjectVelocityRenderDecorator vrdec = new AssessmentObjectVelocityRenderDecorator(fHints, sb, component, resolvedAssessmentItem, itemSessionState, ubu, translator)) {
        ctx.put("r", vrdec);
        VelocityHelper vh = VelocityHelper.getInstance();
        vh.mergeContent(page, ctx, sb, null);
        ctx.remove("r");
    } catch (IOException e) {
        log.error("", e);
    }
}
Also used : Renderer(org.olat.core.gui.render.Renderer) DefaultComponentRenderer(org.olat.core.gui.components.DefaultComponentRenderer) RenderResult(org.olat.core.gui.render.RenderResult) VelocityHelper(org.olat.core.gui.render.velocity.VelocityHelper) IOException(java.io.IOException)

Example 25 with Renderer

use of org.olat.core.gui.render.Renderer in project OpenOLAT by OpenOLAT.

the class ProjectListController method createTableController.

private TableController createTableController(final UserRequest ureq, WindowControl wControl) {
    numberOfCustomFieldInTable = 0;
    numberOfEventInTable = 0;
    TableGuiConfiguration tableConfig = new TableGuiConfiguration();
    tableConfig.setTableEmptyMessage(translate("projectlist.no.projects"));
    tableConfig.setPreferencesOffered(true, "projectbrokerList");
    // Do not allow show all because many entries takes too long to render
    tableConfig.setShowAllLinkEnabled(false);
    removeAsListenerAndDispose(tableController);
    tableController = new TableController(tableConfig, ureq, wControl, this.getTranslator(), true);
    listenTo(tableController);
    int dataColumn = 0;
    tableController.addColumnDescriptor(new DefaultColumnDescriptor("projectlist.tableheader.title", dataColumn++, TABLE_ACTION_SHOW_DETAIL, getLocale()));
    CustomRenderColumnDescriptor projectManagerDescriptor = new CustomRenderColumnDescriptor("projectlist.tableheader.account.manager", dataColumn++, TABLE_ACTION_ACCOUNT_MANAGER, ureq.getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, new ProjectManagerColumnRenderer()) {

        /**
         * @see org.olat.core.gui.components.table.DefaultColumnDescriptor#compareTo(int, int)
         */
        @Override
        public int compareTo(int rowa, int rowb) {
            return super.compareTo(rowa, rowb);
        }

        /**
         * @see org.olat.core.gui.components.table.CustomRenderColumnDescriptor#renderValue(org.olat.core.gui.render.StringOutput, int, org.olat.core.gui.render.Renderer)
         */
        @Override
        public void renderValue(StringOutput sb, int row, Renderer renderer) {
            Object val = getModelData(row);
            // to get info about row in Renderer!
            String rowSt = Integer.toString(row);
            getCustomCellRenderer().render(sb, renderer, val, getLocale(), getAlignment(), rowSt);
        }
    };
    tableController.addColumnDescriptor(projectManagerDescriptor);
    // Custom-Fields
    List<CustomField> customFieldList = moduleConfig.getCustomFields();
    for (Iterator<CustomField> iterator = customFieldList.iterator(); iterator.hasNext(); ) {
        CustomField customField = iterator.next();
        if (customField.isTableViewEnabled()) {
            numberOfCustomFieldInTable++;
            DefaultColumnDescriptor columnDescriptor = new DefaultColumnDescriptor(customField.getName(), dataColumn++, null, getLocale());
            columnDescriptor.setTranslateHeaderKey(false);
            tableController.addColumnDescriptor(columnDescriptor);
        }
    }
    // Project Events
    for (Project.EventType eventType : Project.EventType.values()) {
        if (moduleConfig.isProjectEventEnabled(eventType) && moduleConfig.isProjectEventTableViewEnabled(eventType)) {
            numberOfEventInTable++;
            tableController.addColumnDescriptor(new CustomRenderColumnDescriptor("projectlist.tableheader.event." + eventType.getI18nKey(), dataColumn++, null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, new ProjectEventColumnRenderer()));
        }
    }
    tableController.addColumnDescriptor(new CustomRenderColumnDescriptor("projectlist.tableheader.state", dataColumn++, null, ureq.getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, new ProjectStateColumnRenderer()));
    tableController.addColumnDescriptor(new DefaultColumnDescriptor("projectlist.tableheader.numbers", dataColumn++, null, getLocale()) {

        @Override
        public int compareTo(int rowa, int rowb) {
            Object a = table.getTableDataModel().getValueAt(rowa, dataColumn);
            Object b = table.getTableDataModel().getValueAt(rowb, dataColumn);
            if (a == null || b == null) {
                boolean bb = (b == null);
                return (a == null) ? (bb ? 0 : -1) : (bb ? 1 : 0);
            }
            try {
                Long la = new Long((String) a);
                Long lb = new Long((String) b);
                return la.compareTo(lb);
            } catch (NumberFormatException e) {
                return super.compareTo(rowa, rowb);
            }
        }
    });
    String selectCmd = userCourseEnv.isCourseReadOnly() ? null : TABLE_ACTION_SELECT;
    tableController.addColumnDescriptor(new BooleanColumnDescriptor("projectlist.tableheader.select", dataColumn++, selectCmd, translate("table.action.select"), "-"));
    String cancelCmd = userCourseEnv.isCourseReadOnly() ? null : TABLE_ACTION_CANCEL_SELECT;
    tableController.addColumnDescriptor(new BooleanColumnDescriptor("projectlist.tableheader.cancel.select", dataColumn++, cancelCmd, translate("projectlist.tableheader.cancel.select"), "-"));
    return tableController;
}
Also used : CustomRenderColumnDescriptor(org.olat.core.gui.components.table.CustomRenderColumnDescriptor) TableController(org.olat.core.gui.components.table.TableController) StringOutput(org.olat.core.gui.render.StringOutput) BooleanColumnDescriptor(org.olat.core.gui.components.table.BooleanColumnDescriptor) Project(org.olat.course.nodes.projectbroker.datamodel.Project) Renderer(org.olat.core.gui.render.Renderer) CustomField(org.olat.course.nodes.projectbroker.datamodel.CustomField) TableGuiConfiguration(org.olat.core.gui.components.table.TableGuiConfiguration) DefaultColumnDescriptor(org.olat.core.gui.components.table.DefaultColumnDescriptor)

Aggregations

Renderer (org.olat.core.gui.render.Renderer)30 StringOutput (org.olat.core.gui.render.StringOutput)26 RenderResult (org.olat.core.gui.render.RenderResult)24 URLBuilder (org.olat.core.gui.render.URLBuilder)20 IOException (java.io.IOException)12 VelocityRenderDecorator (org.olat.core.gui.render.velocity.VelocityRenderDecorator)10 Component (org.olat.core.gui.components.Component)8 ComponentRenderer (org.olat.core.gui.components.ComponentRenderer)8 Translator (org.olat.core.gui.translator.Translator)8 ArrayList (java.util.ArrayList)6 Context (org.apache.velocity.context.Context)6 GlobalSettings (org.olat.core.gui.GlobalSettings)6 VelocityContainer (org.olat.core.gui.components.velocity.VelocityContainer)6 RenderingState (org.olat.core.gui.render.RenderingState)6 VelocityHelper (org.olat.core.gui.render.velocity.VelocityHelper)6 DefaultComponentRenderer (org.olat.core.gui.components.DefaultComponentRenderer)4 DelegatingComponent (org.olat.core.gui.components.delegating.DelegatingComponent)4 InvalidRequestParameterException (org.olat.core.gui.components.form.flexible.impl.InvalidRequestParameterException)4 Command (org.olat.core.gui.control.winmgr.Command)4 JSCommand (org.olat.core.gui.control.winmgr.JSCommand)4