Package org.apache.beehive.netui.databinding.datagrid.runtime.rendering.table

Examples of org.apache.beehive.netui.databinding.datagrid.runtime.rendering.table.TableRenderer


            JspFragment fragment = getJspBody();
            if(fragment != null) {

                StringWriter sw = new StringWriter();

                TableRenderer tableRenderer = dgm.getTableRenderer();
                assert tableRenderer != null;

                StyleModel styleModel = dgm.getStyleModel();
                assert styleModel != null;

                AbstractRenderAppender appender = new WriteRenderAppender(jspContext);

                if(dgm.isRenderRowGroups()) {
                    if(_tfootTag.styleClass == null)
                        _tfootTag.styleClass = styleModel.getTableFootClass();
                    tableRenderer.openTableFoot(_tfootTag, appender);
                }

                TrTag.State trState = null;
                if(_renderRow) {
                    trState = new TrTag.State();
                    trState.styleClass = styleModel.getFooterRowClass();
                    tableRenderer.openFooterRow(trState, appender);
                }

                fragment.invoke(sw);
                appender.append(sw.toString());

                if(_renderRow) {
                    assert trState != null;
                    tableRenderer.closeFooterRow(appender);
                }

                if(dgm.isRenderRowGroups()) {
                    tableRenderer.closeTableFoot(appender);

                    String tfootScript = null;
                    if(_tfootTag.id != null) {
                        HttpServletRequest request = JspUtil.getRequest(getJspContext());
                        tfootScript = renderNameAndId(request, _tfootTag, null);
View Full Code Here


                    HttpServletRequest request = JspUtil.getRequest(getJspContext());
                    captionScript = renderNameAndId(request, _captionTag, null);
                }

                StringWriter sw = new StringWriter();
                TableRenderer tableRenderer = dgm.getTableRenderer();
                StyleModel stylePolicy = dgm.getStyleModel();
                AbstractRenderAppender appender = new WriteRenderAppender(jspContext);

                if(_captionTag.styleClass == null)
                    _captionTag.styleClass = stylePolicy.getCaptionClass();

                tableRenderer.openCaption(_captionTag, appender);

                fragment.invoke(sw);
                appender.append(sw.toString());

                tableRenderer.closeCaption(appender);

                if(captionScript != null)
                    appender.append(captionScript);
            }
        }
View Full Code Here

            AbstractRenderAppender appender = new StringBuilderRenderAppender(content);

            StyleModel styleModel = dgm.getStyleModel();
            assert styleModel != null;

            TableRenderer tableRenderer = dgm.getTableRenderer();
            assert tableRenderer != null;

            if(dgm.isRenderRowGroups()) {
                _theadTag.styleClass = (_theadTag.styleClass != null ? _theadTag.styleClass : styleModel.getTableHeadClass());
                tableRenderer.openTableHead(_theadTag, appender);
            }

            TrTag.State trState = null;
            if(_renderRow) {
                trState = new TrTag.State();
                trState.styleClass = styleModel.getHeaderRowClass();
                tableRenderer.openHeaderRow(trState, appender);
            }

            JspFragment fragment = getJspBody();
            if(fragment != null) {
                StringWriter sw = new StringWriter();
                fragment.invoke(sw);
                appender.append(sw.toString());
            }

            if(_renderRow)
                tableRenderer.closeHeaderRow(appender);

            if(dgm.isRenderRowGroups()) {
                tableRenderer.closeTableHead(appender);
                String tfootScript = null;
                if(_theadTag.id != null) {
                    HttpServletRequest request = JspUtil.getRequest(getJspContext());
                    tfootScript = renderNameAndId(request, _theadTag, null);
                }
View Full Code Here

        HttpServletRequest request = JspUtil.getRequest(jspContext);

        if(_dataGridConfig == null)
            _dataGridConfig = DataGridConfigFactory.getInstance();

        TableRenderer tableRenderer = new TableRenderer(request);
        PagedDataSet dataSet = new PagedDataSet(dataSource, iterator);

        StyleModel styleModel = _dataGridConfig.getStyleModel(_stylePolicyName, _styleClassPrefix);

        DataGridResourceProvider resourceProvider = null;
        if(_resourceBundlePath == null)
            resourceProvider = _dataGridConfig.getDefaultResourceProvider();
        else
            resourceProvider = _dataGridConfig.getResourceProvider(_resourceBundlePath);
        resourceProvider.setLocale(JspUtil.getLocale(jspContext));

        _dataGridTagModel = new DataGridTagModel(_name, _dataGridConfig, jspContext);
        _dataGridTagModel.setDataSet(dataSet);
        _dataGridTagModel.setStyleModel(styleModel);
        _dataGridTagModel.setTableRenderer(tableRenderer);
        _dataGridTagModel.setResourceProvider(resourceProvider);
        _dataGridTagModel.setRenderRowGroups(_renderRowGroups);

        JspFragment fragment = getJspBody();
        if(fragment != null) {
            String javascript = null;
            /* render any JavaScript needed to support framework features */
            if (_tableState.id != null) {
                javascript = renderNameAndId(request, _tableState, null);
            }

            boolean addedDataAccessProvider = false;
            try {
                InternalStringBuilder builder = new InternalStringBuilder(2048);
                AbstractRenderAppender appender = new StringBuilderRenderAppender(builder);

                /* todo: perf -- this doesn't need to happen when the data set is empty */
                DataAccessProviderStack.addDataAccessProvider(this, getJspContext());
                DataGridUtil.putDataGridTagModel(getJspContext(), _dataGridTagModel);
                addedDataAccessProvider = true;

                StringWriter sw = new StringWriter();
                /*
                   allow sub-tags to do work during START before rendering
                   this makes it possible to have tags out of order and to
                   have rendering work correctly
                 */
                /* todo: perf -- should you be able to turn this off for perf? */
                fragment.invoke(sw);

                /* todo: this needs to move into the DataGridTagModel */
                PagerModel pm = _dataGridTagModel.getState().getPagerModel();
                _dataGridTagModel.getDataSet().createWindow(pm.getRow(), pm.getPageSize());

                /* now that the model objects have been initialized, it's time to start rendering */
                _dataGridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_START);

                if(!_dataGridTagModel.isDisableDefaultPagerRendering())
                    _dataGridTagModel.renderPager(appender);

                _tableState.styleClass = styleModel.getTableClass();
                tableRenderer.openTable(_tableState, appender);

                /* render the caption */
                _dataGridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_CAPTION);
                sw = new StringWriter();
                fragment.invoke(sw);
                String caption = sw.toString();
                if(caption != null)
                    appender.append(caption);

                /* render the header */
                _dataGridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_HEADER);
                sw = new StringWriter();
                fragment.invoke(sw);
                String header = sw.toString();
                if(header != null)
                    appender.append(header);

                /* intermediate storage for the body and footer content
                   these are required by the HTML spec:
                       http://www.w3.org/TR/REC-html40/struct/tables.html#h-11.2.3
                   as when the row groups are used, they must be re-ordered so that
                   <tfoot> preceeds <tbody>
                 */

                String tbody = null;
                String tfoot = null;

                /* render the body */
                _dataGridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_GRID);
                sw = new StringWriter();
                fragment.invoke(sw);
                tbody = sw.toString();

                /* render the footer */
                _dataGridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_FOOTER);
                sw = new StringWriter();
                fragment.invoke(sw);
                String footer = sw.toString();
                String trimmed = footer.trim();
                if(footer != null && !trimmed.trim().equals(""))
                    tfoot = footer;

                if(_dataGridTagModel.isRenderRowGroups()) {
                    if(tfoot != null)
                        appender.append(tfoot);
                    appender.append(tbody);
                }
                else {
                    appender.append(tbody);
                    if(tfoot != null)
                        appender.append(tfoot);
                }

                tableRenderer.closeTable(appender);

                if(javascript != null)
                    appender.append(javascript);

                _dataGridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_END);
View Full Code Here

            throws IOException, JspException {

        DataGridTagModel dataGridModel = DataGridUtil.getDataGridTagModel(getJspContext());
        assert dataGridModel != null;

        TableRenderer tableRenderer = dataGridModel.getTableRenderer();
        assert tableRenderer != null;

        ArrayList/*<String>*/ styleClasses = new ArrayList/*<String>*/();

        /* todo: refactor.  add a chain of style decorators here; easier to extend this way. */
        FilterModel filterModel = dataGridModel.getState().getFilterModel();
        if(filterModel.isFiltered(_headerCellModel.getFilterExpression()))
            styleClasses.add(dataGridModel.getStyleModel().getHeaderCellFilteredClass());

        SortModel sortModel = dataGridModel.getState().getSortModel();
        if(sortModel.isSorted(_headerCellModel.getSortExpression()))
            styleClasses.add(dataGridModel.getStyleModel().getHeaderCellSortedClass());

        if(_headerCellModel.isSortable())
            styleClasses.add(dataGridModel.getStyleModel().getHeaderCellSortableClass());

        if(_cellState.styleClass == null)
            styleClasses.add(dataGridModel.getStyleModel().getHeaderCellClass());
        else
            styleClasses.add(_cellState.styleClass);

        _cellState.styleClass = dataGridModel.getStyleModel().buildStyleClassValue(styleClasses);

        JspFragment fragment = getJspBody();
        StringWriter sw = new StringWriter();
        String jspFragmentOutput = null;
        if(fragment != null) {
            fragment.invoke(sw);
            jspFragmentOutput = sw.toString();
        }

        tableRenderer.openHeaderCell(_cellState, appender);
        renderHeaderCellContents(appender, jspFragmentOutput);
        tableRenderer.closeHeaderCell(appender);

        /* render any JavaScript needed to support framework features */
        if (_cellState.id != null) {
            HttpServletRequest request = JspUtil.getRequest(getJspContext());
            String script = renderNameAndId(request, _cellState, null);
View Full Code Here

        DataGridTagModel dataGridModel = DataGridUtil.getDataGridTagModel(getJspContext());
        if(dataGridModel == null)
            throw new JspException(Bundle.getErrorString("DataGridTags_MissingDataGridModel"));

        TableRenderer tableRenderer = dataGridModel.getTableRenderer();
        assert tableRenderer != null;

        /* todo: refactor. extensibility in supporting style decorators */
        ArrayList/*<String>*/ styleClasses = new ArrayList/*<String>*/();
        FilterModel filterModel = dataGridModel.getState().getFilterModel();
        if(_filterExpression != null && filterModel.isFiltered(_filterExpression))
            styleClasses.add(dataGridModel.getStyleModel().getDataCellFilteredClass());

        SortModel sortModel = dataGridModel.getState().getSortModel();
        if(_sortExpression != null && sortModel.isSorted(_sortExpression))
            styleClasses.add(dataGridModel.getStyleModel().getDataCellSortedClass());

        if(_cellState.styleClass == null)
            styleClasses.add(dataGridModel.getStyleModel().getDataCellClass());
        else
            styleClasses.add(_cellState.styleClass);

        _cellState.styleClass = dataGridModel.getStyleModel().buildStyleClassValue(styleClasses);

        /*
           note, this runs in order to allow any nested tags to do their work. 
           this provides support for formatters, parameters, etc
         */
        JspFragment fragment = getJspBody();
        StringWriter sw = new StringWriter();
        if(fragment != null)
            fragment.invoke(sw);

        tableRenderer.openTableCell(_cellState, appender);
        renderDataCellContents(appender, sw.toString());
        tableRenderer.closeTableCell(appender);

        /* todo: need to add the JavaScript rendering for any tagIds that were set on <td>s */
        if (_cellState.id != null) {
            HttpServletRequest request = JspUtil.getRequest(getJspContext());
            String script = renderNameAndId(request, _cellState, null);
View Full Code Here

        if(dataGridModel.getRenderState() == DataGridTagModel.RENDER_STATE_GRID) {

            StyleModel styleModel = dataGridModel.getStyleModel();
            assert styleModel != null;

            TableRenderer tableRenderer = dataGridModel.getTableRenderer();
            assert tableRenderer != null;

            InternalStringBuilder content = new InternalStringBuilder();
            AbstractRenderAppender appender = new StringBuilderRenderAppender(content);
            JspFragment fragment = getJspBody();

            if(dataGridModel.isRenderRowGroups())
                tableRenderer.openTableBody(_tbodyTag, appender);

            HttpServletRequest request = JspUtil.getRequest(getJspContext());
            while(dataGridModel.hasNextDataItem()) {

                StringWriter sw = new StringWriter();

                /* first things first -- advance to the next data item */
                dataGridModel.nextDataItem();

                fragment.invoke(sw);

                String trScript = null;
                if(_renderRow) {
                    TrTag.State trState = new TrTag.State();
                    int index = dataGridModel.getCurrentIndex();
                    if(index % 2 == 0)
                        trState.styleClass = styleModel.getRowClass();
                    else trState.styleClass = styleModel.getAltRowClass();

                    if(trState.id != null)
                        trScript = renderNameAndId(request, trState, null);

                    tableRenderer.openTableRow(trState, appender);
                }

                content.append(sw.toString());

                if(_renderRow) {
                    tableRenderer.closeTableRow(appender);

                    if(trScript != null)
                        appender.append(trScript);
                }
            }

            if(dataGridModel.isRenderRowGroups()) {
                tableRenderer.closeTableBody(appender);

                String tbodyScript = null;
                if(_tbodyTag.id != null) {
                    tbodyScript = renderNameAndId(request, _tbodyTag, null);
                }
View Full Code Here

        JspFragment fragment = getJspBody();

        StyleModel styleModel = dataGridModel.getStyleModel();
        assert styleModel != null;

        TableRenderer tableRenderer = dataGridModel.getTableRenderer();
        assert tableRenderer != null;

        HttpServletRequest request = JspUtil.getRequest(getJspContext());
        InternalStringBuilder content = new InternalStringBuilder();
        AbstractRenderAppender appender = new StringBuilderRenderAppender(content);

        if(_trState.styleClass == null) {
            if(renderState == DataGridTagModel.RENDER_STATE_GRID) {
                int index = dataGridModel.getCurrentIndex();
                if(index % 2 == 0)
                    _trState.styleClass = styleModel.getRowClass();
                else _trState.styleClass = styleModel.getAltRowClass();
            }
            else if(renderState == DataGridTagModel.RENDER_STATE_HEADER)
                _trState.styleClass = styleModel.getHeaderRowClass();
            else if(renderState == DataGridTagModel.RENDER_STATE_FOOTER)
                _trState.styleClass = styleModel.getFooterRowClass();
            else assert false : "Attempting to apply style information during an invalid render state";
        }

        String trScript = null;
        if(_trState.id != null)
            trScript = renderNameAndId(request, _trState, null);

        tableRenderer.openTableRow(_trState, appender);

        StringWriter sw = new StringWriter();
        if(fragment != null)
            fragment.invoke(sw);
        appender.append(sw.toString());

        tableRenderer.closeTableRow(appender);

        if(trScript != null)
            appender.append(trScript);

        jspContext.getOut().write(content.toString());
View Full Code Here

            throws IOException, JspException {

        DataGridTagModel dataGridModel = DataGridUtil.getDataGridTagModel(getJspContext());
        assert dataGridModel != null;

        TableRenderer tableRenderer = dataGridModel.getTableRenderer();
        assert tableRenderer != null;

        ArrayList/*<String>*/ styleClasses = new ArrayList/*<String>*/();

        /* todo: refactor.  add a chain of style decorators here; easier to extend this way. */
        FilterModel filterModel = dataGridModel.getState().getFilterModel();
        if(filterModel.isFiltered(_headerCellModel.getFilterExpression()))
            styleClasses.add(dataGridModel.getStyleModel().getHeaderCellFilteredClass());

        SortModel sortModel = dataGridModel.getState().getSortModel();
        if(sortModel.isSorted(_headerCellModel.getSortExpression()))
            styleClasses.add(dataGridModel.getStyleModel().getHeaderCellSortedClass());

        if(_headerCellModel.isSortable())
            styleClasses.add(dataGridModel.getStyleModel().getHeaderCellSortableClass());

        if(_cellState.styleClass == null)
            styleClasses.add(dataGridModel.getStyleModel().getHeaderCellClass());
        else
            styleClasses.add(_cellState.styleClass);

        _cellState.styleClass = dataGridModel.getStyleModel().buildStyleClassValue(styleClasses);

        JspFragment fragment = getJspBody();
        StringWriter sw = new StringWriter();
        String jspFragmentOutput = null;
        if(fragment != null) {
            fragment.invoke(sw);
            jspFragmentOutput = sw.toString();
        }

        tableRenderer.openHeaderCell(_cellState, appender);
        renderHeaderCellContents(appender, jspFragmentOutput);
        tableRenderer.closeHeaderCell(appender);

        /* render any JavaScript needed to support framework features */
        if (_cellState.id != null) {
            HttpServletRequest request = JspUtil.getRequest(getJspContext());
            String script = renderNameAndId(request, _cellState, null);
View Full Code Here

            JspFragment fragment = getJspBody();
            if(fragment != null) {

                StringWriter sw = new StringWriter();

                TableRenderer tableRenderer = dgm.getTableRenderer();
                assert tableRenderer != null;

                StyleModel styleModel = dgm.getStyleModel();
                assert styleModel != null;

                AbstractRenderAppender appender = new WriteRenderAppender(jspContext);

                if(dgm.isRenderRowGroups()) {
                    if(_tfootTag.styleClass == null)
                        _tfootTag.styleClass = styleModel.getTableFootClass();
                    tableRenderer.openTableFoot(_tfootTag, appender);
                }

                TrTag.State trState = null;
                if(_renderRow) {
                    trState = new TrTag.State();
                    trState.styleClass = styleModel.getFooterRowClass();
                    tableRenderer.openFooterRow(trState, appender);
                }

                fragment.invoke(sw);
                appender.append(sw.toString());

                if(_renderRow) {
                    assert trState != null;
                    tableRenderer.closeFooterRow(appender);
                }

                if(dgm.isRenderRowGroups()) {
                    tableRenderer.closeTableFoot(appender);

                    String tfootScript = null;
                    if(_tfootTag.id != null) {
                        HttpServletRequest request = JspUtil.getRequest(getJspContext());
                        tfootScript = renderNameAndId(request, _tfootTag, null);
View Full Code Here

TOP

Related Classes of org.apache.beehive.netui.databinding.datagrid.runtime.rendering.table.TableRenderer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.