package cn.estsh.i3plus.pojo.model.dynamic.table;

import java.util.Map;

/**
 * @Description :
 * @Reference :
 * @Author : Adair Peng
 * @CreateDate : 2018-12-11 16:43
 * @Modify:
 *      动态表单 工具类
 **/
public class DynTablePackTool {


    /**
     * 获取 Table 空行对象
     * @return
     */
    public static DynTableRow getTableRow(){
        return new DynTableRow();
    }

    /**
     * 获取 Table 空行对象
     * @return
     */
    public static DynTableRow getTableRow(String rowKey){
        DynTableRow row = getTableRow();
        row.setKey(rowKey);
        return row;
    }

    public static DynTableRow getDynTableRow(ImppDynTable table, String key){
        if(table != null && key != null){
            return table.getTable().get(key);
        }
        return null;
    }

    /**
     * 表单 中添加行数据
     * @param table
     * @param row
     * @return
     */
    public static DynTableRow putDynTableRow(ImppDynTable table,DynTableRow row){
        return table.getTable().put(row.getKey(),row);
    }

    /**
     * 创建单元格
     * @param seq
     * @param name
     * @param value
     * @return
     */
    public static DynTableCell getTableCell(Integer seq,String name,Object value) {
        return getTableCell(seq,seq.toString(), name, null, value,null);
    }

    public static DynTableCell getTableCell(Integer seq,String name,Object value,Integer valueType) {
        return getTableCell(seq,seq.toString(), name, null, value,valueType);
    }

    /**
     *  创建一个单元格
     * @param seq       单元格排序
     * @param key       单元格Key
     * @param name      单元格名称
     * @param nameEn    单元格名称En
     * @param value     单元格数据
     * @return
     */
    public static DynTableCell getTableCell(Integer seq,String key,String name,String nameEn,Object value,Integer valueType){
        DynTableCell cell = new DynTableCell();
        cell.setCellKey(key);
        cell.setCellSeq(seq);
        cell.setCellName(name);
        cell.setCellNameEn(nameEn);
        cell.setCellValue(value);
        cell.setCellValueType(valueType);
        return cell;
    }

    /**
     *  获取Table 中的单元格数据
     * @param table     要获取的Table
     * @param rowKey    要获取的行 Key
     * @param cellKey   要获取的列 Key
     * @return
     */
    public static DynTableCell getCell(ImppDynTable table,String rowKey,String cellKey){
        if(table != null && rowKey != null && cellKey != null){
            DynTableRow row = table.getTable().get(rowKey);
            if(row != null){
                return row.getCellMap().get(cellKey);
            }
        }
        return null;
    }

}
