Search in sources :

Example 1 with WebRecordView

use of com.servoy.j2db.server.headlessclient.dataui.WebRecordView in project servoy-client by Servoy.

the class WebForm method initView.

/**
 * @see com.servoy.j2db.IFormUIInternal#initView(com.servoy.j2db.IApplication, com.servoy.j2db.FormController, int)
 */
public IView initView(IApplication app, FormController fp, int viewType) {
    boolean addHeaders = true;
    view = null;
    final Form f = fp.getForm();
    DataRendererRecordModel rendererModel = new DataRendererRecordModel();
    // int viewType = f.getView();
    if (viewType == IForm.LIST_VIEW || viewType == FormController.LOCKED_LIST_VIEW) {
        // list views do not have headers
        addHeaders = false;
    }
    // String orientation = OrientationApplier.getHTMLContainerOrientation(app.getLocale(), app.getSolution().getTextOrientation());
    IDataRenderer[] dataRenderers = fp.getDataRenderers();
    for (int i = 0; i < dataRenderers.length; i++) {
        if (i == Part.TITLE_HEADER || i == Part.HEADER || i == Part.LEADING_GRAND_SUMMARY || i == Part.TRAILING_GRAND_SUMMARY || i == Part.FOOTER) {
            if (dataRenderers[Part.HEADER] != null) {
                addHeaders = false;
            }
            WebDataRenderer dr = (WebDataRenderer) dataRenderers[i];
            if (dr != null) {
                dr.setDefaultModel(rendererModel);
                container.add(dr);
            }
        }
    }
    defaultNavigator = null;
    if (viewType == IForm.RECORD_VIEW || viewType == IForm.LOCKED_RECORD_VIEW) {
        // $NON-NLS-1$
        view = new WebRecordView("View");
        if (f.getNavigatorID() == Form.NAVIGATOR_DEFAULT) {
            defaultNavigator = new WebDefaultRecordNavigator(this);
            ((WebRecordView) view).add(defaultNavigator);
        }
        // Body
        WebDataRenderer body = (WebDataRenderer) dataRenderers[FormController.FORM_EDITOR];
        if (body != null) {
            ((WebRecordView) view).add(body);
            body.setDefaultModel(rendererModel);
            body.setParentView(view);
        } else {
        // ((WebRecordView)view).add(new WebMarkupContainer());
        }
    } else if (viewType == FormController.TABLE_VIEW || viewType == FormController.LOCKED_TABLE_VIEW || viewType == IForm.LIST_VIEW || viewType == FormController.LOCKED_LIST_VIEW) {
        // try
        // {
        // Iterator it = f.getParts();
        // while (it.hasNext())
        // {
        // Part p = (Part) it.next();
        // if (p.getPartType() == Part.HEADER)
        // {
        // addHeaders = false;
        // break;
        // }
        // }
        // }
        // catch (RepositoryException e)
        // {
        // Debug.error(e);
        // }
        Part body = null;
        Iterator<Part> e2 = fp.getForm().getParts();
        while (e2.hasNext()) {
            Part part = e2.next();
            if (part.getPartType() == Part.BODY) {
                body = part;
                break;
            }
        }
        if (body == null) {
            // Special case, form in tableview with no body. just create a default view object.
            // $NON-NLS-1$
            view = new WebRecordView("View");
            return view;
        } else {
            int startY = fp.getForm().getPartStartYPos(body.getID());
            int endY = body.getHeight();
            int sizeHint = endY;
            if (// small body and body is last
            (sizeHint - startY) <= 40 && fp.getForm().getSize().height == sizeHint) {
                sizeHint += Math.max(endY, 200 - sizeHint);
            }
            RuntimePortal viewScriptable = new RuntimePortal(new ChangesRecorder(null, null), app);
            view = new WebCellBasedView("View", app, viewScriptable, f, f, app.getFlattenedSolution().getDataproviderLookup(app.getFoundSetManager(), f), fp.getScriptExecuter(), addHeaders, startY, endY, sizeHint, viewType);
            viewScriptable.setComponent((WebCellBasedView) view, f);
            if (dataRenderers[FormController.FORM_EDITOR] != null)
                dataRenderers[FormController.FORM_EDITOR].destroy();
            dataRenderers[FormController.FORM_EDITOR] = (WebCellBasedView) view;
        }
    }
    if (container.get("View") != null) {
        container.replace((WebMarkupContainer) view);
    } else {
        container.add((WebMarkupContainer) view);
    }
    return view;
}
Also used : WebRecordView(com.servoy.j2db.server.headlessclient.dataui.WebRecordView) WebDataRenderer(com.servoy.j2db.server.headlessclient.dataui.WebDataRenderer) IForm(com.servoy.j2db.IForm) Form(com.servoy.j2db.persistence.Form) WebCellBasedView(com.servoy.j2db.server.headlessclient.dataui.WebCellBasedView) Point(java.awt.Point) ChangesRecorder(com.servoy.j2db.server.headlessclient.dataui.ChangesRecorder) IDataRenderer(com.servoy.j2db.ui.IDataRenderer) RuntimePortal(com.servoy.j2db.ui.scripting.RuntimePortal) WebDefaultRecordNavigator(com.servoy.j2db.server.headlessclient.dataui.WebDefaultRecordNavigator) Part(com.servoy.j2db.persistence.Part) Iterator(java.util.Iterator)

Aggregations

IForm (com.servoy.j2db.IForm)1 Form (com.servoy.j2db.persistence.Form)1 Part (com.servoy.j2db.persistence.Part)1 ChangesRecorder (com.servoy.j2db.server.headlessclient.dataui.ChangesRecorder)1 WebCellBasedView (com.servoy.j2db.server.headlessclient.dataui.WebCellBasedView)1 WebDataRenderer (com.servoy.j2db.server.headlessclient.dataui.WebDataRenderer)1 WebDefaultRecordNavigator (com.servoy.j2db.server.headlessclient.dataui.WebDefaultRecordNavigator)1 WebRecordView (com.servoy.j2db.server.headlessclient.dataui.WebRecordView)1 IDataRenderer (com.servoy.j2db.ui.IDataRenderer)1 RuntimePortal (com.servoy.j2db.ui.scripting.RuntimePortal)1 Point (java.awt.Point)1 Iterator (java.util.Iterator)1