Search in sources :

Example 1 with PictureColumn

use of db.column.PictureColumn in project common by zenlunatics.

the class Pictures method _newViewDef.

// --------------------------------------------------------------------------
@Override
public ViewDef _newViewDef(String name, Site site) {
    if (name.equals(m_table)) {
        ViewDef view_def = new ViewDef(name) {

            @Override
            public View newView(Request p) {
                return new PicturesView(this, m_where, p);
            }

            @Override
            public void afterInsert(NameValuePairs name_value_pairs, int row_id, Request request) {
                ViewState.setFilter(m_name, null, request);
                super.afterInsert(name_value_pairs, row_id, request);
            }
        };
        view_def.setAccessPolicy(new RecordOwnerAccessPolicy().add().delete().edit());
        view_def.setCenter(false);
        view_def.setDefaultOrderBy("_timestamp_ DESC");
        view_def.setDialogModes(View.Mode.ADD_FORM, View.Mode.EDIT_FORM);
        view_def.setOnDelete("document.location=document.location");
        view_def.setOnSuccessAfter("XHR_post(context+'/db','db_cmd=clear_filter&db_view_def=pictures',function(){var p=$('c_pictures');if(p)p.replace();}.bind(this))");
        view_def.setRecordName("Picture");
        view_def.setRowWindowSize(25);
        view_def.setTimestampRecords(true);
        ArrayList<String> columns = new ArrayList<String>();
        columns.add("file");
        columns.add("caption");
        columns.add("tags");
        for (JDBCColumn column : m_additional_columns) columns.add(column.name);
        view_def.setColumnNamesForm(columns.toArray(new String[columns.size()]));
        view_def.setColumnNamesFormTable(new String[] { "caption" });
        PictureColumn picture_column = new PictureColumn("file", view_def, m_table, m_thumb_size, 1024).setSizeIsMaxSide(false);
        if (m_base_file_path != null)
            picture_column.setBaseFilePath(m_base_file_path);
        view_def.setColumn(picture_column.setGenerateFileNames(true).setIsRequired(true));
        view_def.setColumn(new TagsColumn("tags", "pictures", view_def));
        view_def.setColumn(new LookupColumn("_owner_", "people", "first,last").setOnClick("XHR_post(context+'/ViewStates/pictures','filter=_owner_=", "',function(){$('c_pictures').replace(context + '/Views/pictures?db_mode=" + View.Mode.LIST + "');Gallery.close();})"));
        view_def.addRelationshipDef(new ManyToMany(m_table + "_tags", m_table + "_" + m_table + "_tags", "tag").setManyTableColumn("tag").setShowOnForm(false));
        view_def.getViewTheme().setDeleteImg("delete.png").setEditImg("pencil.png");
        return addHooks(view_def);
    }
    if (name.equals(m_table + " add"))
        return _newViewDef(m_table, site).setFrom(m_table).setName(m_table + " add").setOnSuccessAfter(null);
    if (name.equals(m_table + " owners"))
        return new ViewDef(name).setAccessPolicy(new AccessPolicy()).setFrom(m_table + " JOIN people ON people.id=" + m_table + "._owner_").setDefaultOrderBy("first,last").setShowColumnHeads(false).setShowHead(false).setCenter(false).setColumnNamesTable(new String[] { "_owner_" }).setColumn(new Column("_owner_").setValueRenderer(new LinkValueRenderer().setHrefColumn("_owner_").setOnClick("XHR_post(context+'/ViewStates/pictures','filter=_owner_=", "',function(){$('c_pictures').replace(context + '/Views/pictures?db_mode=" + View.Mode.LIST + "');})").setValueRenderer(new MultiColumnRenderer(new String[] { "first", "last" }, true, false)), false));
    if (// for nav list
    name.equals(m_table + " tags"))
        return new ViewDef(name) {

            @Override
            public View newView(Request request) {
                return super.newView(request).setSelectDistinct(true, "tag");
            }
        }.setAccessPolicy(new AccessPolicy()).setDefaultOrderBy("lower(tag)").setFrom(m_table + "_tags").setRecordName("Tag").setShowColumnHeads(false).setShowHead(false).setCenter(false).setColumnNamesTable(new String[] { "tag" }).setColumn(new Column("tag").setValueRenderer(new LinkValueRenderer().setHrefColumn("id").setOnClick("XHR_post(context+'/ViewStates/pictures','filter=pictures_tags_id=", "',function(){$('c_pictures').replace(context + '/Views/pictures?db_mode=" + View.Mode.LIST + "');})").setTextColumn("tag"), false));
    if (name.equals(m_table + "_tags"))
        return new ViewDef(name).setDefaultOrderBy("lower(tag)").setRecordName("Tag").setColumn(new Column("tag").setValueRenderer(new LinkValueRenderer().setHrefColumn("id").setOnClick("XHR_post(context+'/ViewStates/pictures','filter=pictures_tags_id=", "',function(){$('c_pictures').replace(context + '/Views/pictures?db_mode=" + View.Mode.LIST + "');Gallery.close();})").setTextColumn("tag"), false));
    return null;
}
Also used : LinkValueRenderer(db.LinkValueRenderer) NameValuePairs(db.NameValuePairs) Request(app.Request) ArrayList(java.util.ArrayList) ManyToMany(db.ManyToMany) JDBCColumn(db.JDBCColumn) ViewDef(db.ViewDef) AccessPolicy(db.access.AccessPolicy) RecordOwnerAccessPolicy(db.access.RecordOwnerAccessPolicy) RecordOwnerAccessPolicy(db.access.RecordOwnerAccessPolicy) LookupColumn(db.column.LookupColumn) JDBCColumn(db.JDBCColumn) LookupColumn(db.column.LookupColumn) PictureColumn(db.column.PictureColumn) Column(db.column.Column) PictureColumn(db.column.PictureColumn) MultiColumnRenderer(db.column.MultiColumnRenderer)

Aggregations

Request (app.Request)1 JDBCColumn (db.JDBCColumn)1 LinkValueRenderer (db.LinkValueRenderer)1 ManyToMany (db.ManyToMany)1 NameValuePairs (db.NameValuePairs)1 ViewDef (db.ViewDef)1 AccessPolicy (db.access.AccessPolicy)1 RecordOwnerAccessPolicy (db.access.RecordOwnerAccessPolicy)1 Column (db.column.Column)1 LookupColumn (db.column.LookupColumn)1 MultiColumnRenderer (db.column.MultiColumnRenderer)1 PictureColumn (db.column.PictureColumn)1 ArrayList (java.util.ArrayList)1