I have a code like this:

/**
 *
 * @author
 */
public class POS {

    @Inject
    private Request request;
    @Inject
    private BiznisLogika tiketDao;
    @Inject
    private Session session;
    @InjectComponent
    private Zone result;
    @SessionState
    @Property
    private SearchCriteria criteria;
    @SessionState
    @Property
    private SearchCriteriaTwo criteriaTwo;
    @SuppressWarnings("unused")
    @Property
    private GridDataSource source = new TicketDataSource(session, Tiket.class);
    @SuppressWarnings("unused")
    @Property
    private Tiket currentTicket;
    @Property
    @Persist
    private TiketStatus noviStatus;
    @Property
    private SelectModel tiketSelectModel;
    @Inject
    SelectModelFactory selectModelFactory;
    @Inject
    private Session hibernate;
    @Inject
    private GenericDao genericDao;

    void setupRender() {
        criteriaTwo = null;
        criteria = null;
    }

    private final class TicketDataSource extends HibernateGridDataSource {

        private TicketDataSource(Session session, @SuppressWarnings("rawtypes") 
Class entityType) {
            super(session, entityType);
        }

        @Override
        public int getAvailableRows() {
            return criteria.getSearchPattern() == null ? 0 : 
super.getAvailableRows();
        }

        @Override
        protected void applyAdditionalConstraints(Criteria crit) {
            crit.add(Restrictions.ilike("ticketSerial", 
criteria.getSearchPattern())).add(Restrictions.ilike("ticketDate", 
criteriaTwo.getSearchPattern()));
        }
    }

    void onValidateFromDelete() {
        // Unfortunately, this method is never called because Checkbox doesn't 
bubble up VALIDATE. It's a shame because
        // this would be the perfect place to validate whether deleting is OK, 
or to put an entry in deleteCopyByRowNum.
        // Please vote for https://issues.apache.org/jira/browse/TAP5-2075 .
    }
    // The Loop component will automatically call this for every row as it is 
rendered.

    public boolean isDelete() {
        return false;
    }

    // The Loop component will automatically call this for every row on submit.
    public void setDelete(boolean delete) {
    }

    @OnEvent(value = EventConstants.SUCCESS)
    Object searchTickets() {
        return request.isXHR() ? result.getBody() : null;
    }

    Object onAction() {

        return request.isXHR() ? result.getBody() : null;

    }

    public ValueEncoder<TiketStatus> getTiketStatusEncoder() {
        return new ValueEncoder<TiketStatus>() {
            @Override
            public String toClient(TiketStatus value) {
// return the given object's ID
                return String.valueOf(value);
            }

            @Override
            public TiketStatus toValue(String id) {
                return TiketStatus.valueOf(id);
                // return (Tiket) genericDao.getById(Tiket.class, 
Long.parseLong(id));
            }
        };
    }

    @CommitAfter
    Object onSaveThemAll() {
        for (int i = 0; i < source.getAvailableRows(); i++) {
            currentTicket.setTicketStatus(noviStatus);
            hibernate.merge(currentTicket);


        }
        return request.isXHR() ? result.getBody() : null;

    }
    
}



"

    

        
            
                
                    Buscar
                
                
                
            
            
                Resultados
                
            
        
        
             or cancel
            
        
    
    
        
            
                    
                        
                        
                    

                
                    ${message:no-result}
                
                
                

            

        

        
        
     Save"


Now, I want to update when checked checkbox each row of a grid with new Status. 
I have tried with a method onSaveThemAll, but it doesn't work, since I have no 
idea how to check if checkbox is checked and how to update each row(ticket) 
with a new state. Any help is appreciated.


P.S. I have provided an image for better understanding what I want to achieve 
here.

http://postimg.org/image/lnlwb7fkb/
                                          

Reply via email to