Search in sources :

Example 6 with Select

use of web.Select in project common by zenlunatics.

the class SelectRenderer method writeInput.

// --------------------------------------------------------------------------
@Override
public boolean writeInput(View view, Form form, ColumnBase<?> column, View.Mode mode, String default_value, Request request) throws IOException {
    String name = column.getName();
    Select select;
    if (m_options != null) {
        select = new Select(name, m_options).setType(m_type);
        if (mode == View.Mode.ADD_FORM)
            select.setSelectedOption(null, default_value);
        else if (mode != View.Mode.FILTER_FORM) {
            Iterator<? extends SelectOption> i = m_options.iterator();
            if (i.hasNext())
                if (i.next().getValue() == null)
                    select.setSelectedOption(view.data().getString(name), null);
                else
                    select.setSelectedOption(null, view.data().getString(name));
        }
    } else if (m_query != null) {
        select = new RowsSelect(name, m_query.toString(), m_option_column, m_value_col, request).setType(m_type);
        if (m_filter != null)
            ((RowsSelect) select).setFilter(m_filter);
        if (m_option_renderer != null)
            ((RowsSelect) select).setOptionRenderer(m_option_renderer);
        if (mode == View.Mode.ADD_FORM)
            select.setSelectedOption(null, default_value);
        else if (mode != View.Mode.FILTER_FORM)
            select.setSelectedOption(null, view.data().getString(name));
    } else {
        select = new Select(name, m_options_texts, m_option_values).setType(m_type);
        if (mode == View.Mode.ADD_FORM)
            select.setSelectedOption(default_value, null);
        else if (mode == View.Mode.EDIT_FORM)
            if (m_option_values == null)
                select.setSelectedOption(view.data().getString(name), null);
            else
                select.setSelectedOption(null, view.data().getString(name));
    }
    HTMLWriter writer = request.writer;
    if (m_is_required) {
        select.setIsRequired(true);
        writer.setAttribute("required", "yes");
        writer.setAttribute("title", column.getDisplayName(false));
    }
    if (m_first_option_text != null)
        select.addFirstOption(m_first_option_text, m_first_option_value);
    if (m_allow_no_selection || mode == View.Mode.FILTER_FORM)
        select.setAllowNoSelection(true);
    if (m_on_change != null)
        select.setOnChange(m_on_change);
    select.write(request);
    if (m_edit_view_def != null && mode != View.Mode.FILTER_FORM) {
        AccessPolicy access_policy = request.site.getViewDef(m_edit_view_def, request.db).getAccessPolicy();
        if (access_policy == null || access_policy.showEditButtons(view, request)) {
            writer.space();
            StringBuilder options = new StringBuilder("column:'");
            options.append(column.getName());
            options.append("',db_view_def:'");
            options.append(view.getViewDef().getName());
            options.append('\'');
            if (mode == View.Mode.EDIT_FORM) {
                options.append(",db_key_value:");
                options.append(view.data().getString("id"));
            }
            String title = "Edit " + request.site.getViewDef(m_query.getFirstTable(), request.db).getRecordNamePlural();
            writer.setAttribute("style", "vertical-align:baseline;");
            writer.setAttribute("title", title);
            writer.buttonIconOnClick("pencil", "new Dialog({title:'" + HTMLWriter.escapeJSString(title) + "',width:'auto',url:context+'/Views/" + m_edit_view_def + "/component'," + options.toString() + "})");
        }
    }
    return true;
}
Also used : HTMLWriter(web.HTMLWriter) SelectOption(web.SelectOption) Select(web.Select) Iterator(java.util.Iterator) AccessPolicy(db.access.AccessPolicy)

Aggregations

Select (web.Select)6 HTMLWriter (web.HTMLWriter)4 Page (app.Page)1 Person (app.Person)1 Form (db.Form)1 RowsSelect (db.RowsSelect)1 ViewState (db.ViewState)1 AccessPolicy (db.access.AccessPolicy)1 ArrayList (java.util.ArrayList)1 Iterator (java.util.Iterator)1 SelectOption (web.SelectOption)1