表格接口

设计决策

    1. 表格组件部分的答案数据绑定在表格的单元格中,编辑器和播放器在设置、获取答案数据的时候是操作表格单元格
    2. 答案部分有单独的右键菜单栏,所以需要提供右键菜单的扩展接口,支持用户自定义配置右键菜单内容

右键菜单扩展接口

public class TableRightMenu
{
    /// <summary>
    /// 右键菜单扩展接口,自定义添加右键菜单
    /// </summary>
    /// <param name="menu"> 扩展内容 </param>
    /// <param name="callBack"> 该菜单项回调 </param>
    public void AddMenuItem(MenuItem menu, Action<string> callBack);

    /// <summary>
    /// 右键菜单扩展接口,自定义添加右键菜单
    /// </summary>
    /// <param name="code"> 菜单栏标识 </param>
    public void RemoveItem(string code);
}

public class MenuItem
{
    /// <summary>
    /// 当前菜单项名字
    /// </summary>
    public string Lable;
    /// <summary>
    /// 当前菜单唯一标识
    /// </summary>
    public string Code;
    /// <summary>
    /// 当前菜单项父菜单名称
    /// </summary>
    public string ParentCode;
    /// <summary>
    /// 当前菜单项是否为点击的方式触发
    /// </summary>
    public TriggerType Type;
}

public enum TriggerType
{
    //点击触发
    Click,
    //进入触发
    Enter
}

表格扩展数据接口

public class NDUGUITable
{
    /// <summary>
    /// 设置单元格扩展数据
    /// </summary>
    /// <param name="cell"> 需要设置的单元格 </param>
    /// <param name="jsonData"> 扩展内容 </param>
    public void SetExtendData(NDBaseCell cell, string jsonData);

    /// <summary>
    /// 获取单元格扩展数据
    /// 返回JsonData类型string数据
    /// </summary>
    /// <param name="cell"> 需要获取答案的单元格 </param>
    /// <returns></returns>
    public string GetExtendData(NDBaseCell cell);
}