Process Indicator实现








public class ProgressIndicatorBean {
    SimpleBoundedRangeModel _simpleBoundedRangeModel;
    private long pollInterval = -1;

    public ProgressIndicatorBean() {
    }

    public SimpleBoundedRangeModel getSimpleBoundedRangeModel() {
        if (_simpleBoundedRangeModel == null)
            _simpleBoundedRangeModel = new SimpleBoundedRangeModel();
        return _simpleBoundedRangeModel;
    }


    public void pollMe(PollEvent pollEvent) {
        if (_simpleBoundedRangeModel != null) {
            BindingContext bcntxt = BindingContext.getCurrent();
            BindingContainer bc = bcntxt.getCurrentBindingsEntry();
            OperationBinding op = bc.getOperationBinding("incrementCount");
            op.getParamsMap().put("input",
                                  _simpleBoundedRangeModel.getValue());
            op.execute();
            long value = (Long)op.getResult();
            if (value <= _simpleBoundedRangeModel.getMaximum()) {
                _simpleBoundedRangeModel.setValue(value);
            } else {
                pollInterval = -1;
                AdfFacesContextImpl.getCurrentInstance().addPartialTarget(pollEvent.getComponent());
            }

        }

    }

    public void setPollInterval(long pollInterval) {
        this.pollInterval = pollInterval;
    }

    public long getPollInterval() {
        return pollInterval;
    }

    public void startAction(ActionEvent actionEvent) {
        pollInterval = 200;
        _simpleBoundedRangeModel.start(actionEvent);
    }

    public void cancelAction(ActionEvent actionEvent) {
        pollInterval = -1;
        _simpleBoundedRangeModel.cancelProcess(actionEvent);
    }
}

---------------------------------------------------------------

public class SimpleBoundedRangeModel extends DefaultBoundedRangeModel {
    public SimpleBoundedRangeModel() {
        super(0, 100);
    }

    public void start(ActionEvent event) {
      setValue(1);
    }

    public void cancelProcess(ActionEvent event) {

        setValue(0);
        setMaximum(100);
    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值