Java 如何在网格(GXT 3)中创建复选框(我不想要整列)

Java 如何在网格(GXT 3)中创建复选框(我不想要整列),java,gxt,Java,Gxt,我试图在网格(GXT 3.0)中添加一个复选框(我不想要复选框列),同时从模型(VO/DTO)中获取值。如果我得到空值,那么我想添加复选框而不是空值 有什么想法吗 提前感谢您应该阅读数据阅读器 假设您有一个带有CheckColumnConfig的网格 CheckColumnConfig checkColumnConfig = new CheckColumnConfig ("myProperty" + prop.getId(), "myProperty" + pro

我试图在网格(GXT 3.0)中添加一个复选框(我不想要复选框列),同时从模型(VO/DTO)中获取值。如果我得到空值,那么我想添加复选框而不是空值

有什么想法吗


提前感谢

您应该阅读数据阅读器

假设您有一个带有CheckColumnConfig的网格

CheckColumnConfig checkColumnConfig = new CheckColumnConfig ("myProperty" + prop.getId(), "myProperty"
                + prop.getId(), 40);
关联的加载程序应该如下所示:

RpcProxy<BeanModel> proxy = new RpcProxy<BeanModel>() {
        @Override
        protected void load(Object loadConfig, AsyncCallback<BeanModel> callback) {
            //call your rpc service
        }
    };
    final ListLoader<BaseListLoadResult<BeanModel>> loader = new BaseListLoader<BaseListLoadResult<BeanModel>>(
        proxy, new CustomGridBeanModelReader());
    loader.load();
RpcProxy代理=新的RpcProxy(){
@凌驾
受保护的无效加载(对象加载配置、异步回调){
//调用您的rpc服务
}
};
最终列表加载器=新的BaseListLoader(
代理,新CustomGridBeanModelReader());
loader.load();
现在只需在DateReader中实现一些逻辑:

public class CustomGridBeanModelReader implements DataReader<List<BeanModel>> {

/** The reader. */
private BeanModelReader reader = new BeanModelReader();

/**
 * Checks if is factory for each bean.
 * 
 * @return true, if is factory for each bean
 */
public boolean isFactoryForEachBean() {
    return reader.isFactoryForEachBean();
}

/* (non-Javadoc)
 * @see com.extjs.gxt.ui.client.data.DataReader#read(java.lang.Object, java.lang.Object)
 */
public List<BeanModel> read(Object loadConfig, Object data) {
    ListLoadResult<ModelData> models = reader.read(loadConfig, data);
    List<ModelData> modelsData = models.getData();
    Iterator<ModelData> itModels = modelsData.iterator();
    List<BeanModel> newModelsData = new ArrayList<BeanModel>();
    while (itModels.hasNext()) {
        BeanModel model = (BeanModel) itModels.next();
        Mybean myBean = model.getBean();
        //add some logic
        if ((myBean.getMyProperty() == null){
            model.set("myProperty" + myBean.getId(), true);
        }
        //add more logic
        //...
        newModelsData.add(model);
    }
    return newModelsData;
}

/**
 * Sets the factory for each bean.
 * 
 * @param factoryForEachBean the new factory for each bean
 */
public void setFactoryForEachBean(boolean factoryForEachBean) {
    reader.setFactoryForEachBean(factoryForEachBean);
}
公共类CustomGridBeanModelReader实现DataReader{
/**读者*/
私有BeanModelReader=新BeanModelReader();
/**
*检查每个bean是否为工厂。
* 
*@return true,如果是每个bean的工厂
*/
公共布尔值isFactoryForEachBean(){
返回reader.isFactoryForEachBean();
}
/*(非Javadoc)
*@see com.extjs.gxt.ui.client.data.DataReader#read(java.lang.Object,java.lang.Object)
*/
公共列表读取(对象加载配置、对象数据){
ListLoadResult models=reader.read(loadConfig,数据);
List modelsData=models.getData();
迭代器itModels=modelsData.Iterator();
List newModelsData=newarraylist();
while(itModels.hasNext()){
BeanModel模型=(BeanModel)itModels.next();
Mybean Mybean=model.getBean();
//添加一些逻辑
if((myBean.getMyProperty()==null){
set(“myProperty”+myBean.getId(),true);
}
//添加更多逻辑
//...
newModelsData.add(模型);
}
返回newModelsData;
}
/**
*为每个bean设置工厂。
* 
*@param factoryForEachBean每个bean的新工厂
*/
public void setFactoryForEachBean(布尔factoryForEachBean){
setFactoryForEachBean(factoryForEachBean);
}
}