staticeditgridbean.java

来自「OperaMasks是一种基于J2EE的Web开发技术」· Java 代码 · 共 106 行

JAVA
106
字号
package demo.grid.page;

import java.io.Serializable;
import java.util.List;
import java.util.UUID;

import javax.faces.FacesException;

import org.operamasks.faces.annotation.Action;
import org.operamasks.faces.annotation.Bind;
import org.operamasks.faces.annotation.ManagedBean;
import org.operamasks.faces.annotation.ManagedBeanScope;
import org.operamasks.faces.annotation.ManagedProperty;
import org.operamasks.faces.annotation.SelectItems;
import org.operamasks.faces.component.grid.impl.UIEditDataGrid;

import demo.grid.GridDataModel;
import demo.grid.GridDataModel.TrainRecord;
/** 
 * 
 * This managed bean is generated automatically
 */
@ManagedBean(name="StaticEditGridBean", scope=ManagedBeanScope.REQUEST)
public class StaticEditGridBean implements Serializable {

    @ManagedProperty("#{GridDataModel}")
    private GridDataModel model;

    @Bind(id="grid")
    private List data = GridDataModel.trainRecord;
    
   @Bind(id="grid")
    private UIEditDataGrid grid;
    
    @Bind(id="grid", attribute="addedData")
    private Object addedData;
    @Bind(id="grid", attribute="modifiedData")
    private Object modifiedData;
    @Bind(id="grid", attribute="removedData")
    private Object removedData;
    @Bind(id="grid", attribute="bindBean")
    private String bindBean = "demo.grid.GridDataModel$TrainRecord";
    
    @Bind(id = "trainSelectItems")
    @SelectItems
    javax.faces.model.SelectItem[] trainItems = {
            new javax.faces.model.SelectItem("Server Train", "应用服务器培训"),
            new javax.faces.model.SelectItem("MQ Train", "MQ服务器培训"),
            new javax.faces.model.SelectItem("Apusic Studio Train", "Apusic Studio培训"),
            new javax.faces.model.SelectItem("AOM Train", "AOM使用培训"),
    };
    
    @Action(id="add")
    public void insert() {
        grid.insertRow(0);
    }
    
    @Action(id="addWithData")
    public void insertWithData() {
        grid.insertRow(0, new TrainRecord("new item", "Server Train", 3));
    }
    
    @Action(id="remove")
    public void remove() {
        grid.remove();
    }
    
    @Action(id="save")
    public void save() {
        try {
            if (addedData != null) {
                add((TrainRecord[]) addedData);
            } 
            if (modifiedData != null) {
                update((TrainRecord[]) modifiedData);
            }
            if (removedData != null) {
                remove((TrainRecord[]) removedData);
            }
            grid.commit();
            grid.reload();
        } catch (Exception e) {
            throw new FacesException(e);
        }
    }
    
    private void remove(GridDataModel.TrainRecord[] data) {
        for (GridDataModel.TrainRecord record : data) {
            model.trainRecord.remove(model.getDataById(record.getId()));
        }
    }

    private void update(GridDataModel.TrainRecord[] data) {
        for (GridDataModel.TrainRecord record : data) {
            model.updateValue(record);
        }
    }

    private void add(GridDataModel.TrainRecord[] data) {
        for (GridDataModel.TrainRecord record : data) {
            record.setId(UUID.randomUUID().toString());
            model.trainRecord.add(record);
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?