package com.openerp.addons.message; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import android.content.Context; import com.openerp.base.ir.Ir_AttachmentDBHelper; import com.openerp.base.res.ResPartnerDB; import com.openerp.orm.OEColumn; import com.openerp.orm.OEDatabase; import com.openerp.orm.OEFields; import com.openerp.orm.OEFieldsHelper.ValueWatcher; import com.openerp.orm.OEValues; public class MessageDB extends OEDatabase { Context mContext = null; public MessageDB(Context context) { super(context); mContext = context; } @Override public String getModelName() { return "mail.message"; } @Override public List<OEColumn> getModelColumns() { List<OEColumn> columns = new ArrayList<OEColumn>(); columns.add(new OEColumn("partner_ids", "Partners", OEFields .manyToMany(new ResPartnerDB(mContext)))); columns.add(new OEColumn("subject", "Subject", OEFields.text())); columns.add(new OEColumn("type", "Type", OEFields.varchar(30))); columns.add(new OEColumn("body", "Body", OEFields.text())); columns.add(new OEColumn("email_from", "Email From", OEFields.text(), false)); columns.add(new OEColumn("parent_id", "Parent", OEFields.integer())); columns.add(new OEColumn("record_name", "Record Title", OEFields.text())); columns.add(new OEColumn("to_read", "To Read", OEFields.varchar(5))); ValueWatcher mValueWatcher = new ValueWatcher() { @Override public OEValues getValue(OEColumn col, Object value) { OEValues values = new OEValues(); try { if (value instanceof JSONArray) { JSONArray array = (JSONArray) value; if (array.getInt(0) == 0) { values.put(col.getName(), false); values.put("email_from", array.getString(1)); } else { values.put("email_from", false); } } } catch (Exception e) { e.printStackTrace(); } return values; } }; columns.add(new OEColumn("author_id", "author", OEFields .manyToOne(new ResPartnerDB(mContext)), mValueWatcher)); columns.add(new OEColumn("model", "Model", OEFields.varchar(50))); columns.add(new OEColumn("res_id", "Resouce Reference", OEFields.text())); columns.add(new OEColumn("date", "Date", OEFields.varchar(20))); columns.add(new OEColumn("has_voted", "Has Voted", OEFields.varchar(5))); columns.add(new OEColumn("vote_nb", "vote numbers", OEFields.integer())); columns.add(new OEColumn("starred", "Starred", OEFields.varchar(5))); columns.add(new OEColumn("attachment_ids", "Attachments", OEFields .manyToMany(new Ir_AttachmentDBHelper(mContext)))); return columns; } }