Package org.springmodules.xt.examples.ajax

Source Code of org.springmodules.xt.examples.ajax.LoadOfficesHandler

package org.springmodules.xt.examples.ajax;

import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import org.springmodules.xt.ajax.AbstractAjaxHandler;
import org.springmodules.xt.ajax.AjaxActionEvent;
import org.springmodules.xt.ajax.AjaxResponse;
import org.springmodules.xt.ajax.AjaxResponseImpl;
import org.springmodules.xt.ajax.action.ReplaceContentAction;
import org.springmodules.xt.ajax.component.Option;
import org.springmodules.xt.examples.domain.IOffice;
import org.springmodules.xt.examples.domain.MemoryRepository;

/**
* Ajax handler for loading offices.
*
* @author Sergio Bossa
*/
public class LoadOfficesHandler extends AbstractAjaxHandler {
   
    private MemoryRepository store;
   
    public AjaxResponse loadOffices(AjaxActionEvent event) {
        // Get offices:
        Collection<IOffice> offices = store.getOffices();
       
        // Create the component to render (a list of html option elements):
        List options = new LinkedList();
        Option first = new Option("-1", "Select one ...");
        options.add(first);
        for(IOffice office : offices) {
            Option option = new Option(office, "officeId", "name");
            options.add(option);
        }
        // Create an ajax action for replacing the content of the "offices" element with the components just created:
        ReplaceContentAction action = new ReplaceContentAction("offices", options);
       
        // Create a concrete ajax response:
        AjaxResponse response = new AjaxResponseImpl();
        // Add the action:
        response.addAction(action);
       
        return response;
    }

    public void setStore(MemoryRepository store) {
        this.store = store;
    }
}
TOP

Related Classes of org.springmodules.xt.examples.ajax.LoadOfficesHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.