Package org.springmodules.xt.examples.ajax

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

package org.springmodules.xt.examples.ajax;

import java.util.Arrays;
import java.util.LinkedList;
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.AppendContentAction;
import org.springmodules.xt.ajax.component.Component;
import org.springmodules.xt.ajax.component.InputField;
import org.springmodules.xt.ajax.component.ListItem;
import org.springmodules.xt.ajax.component.SimpleText;
import org.springmodules.xt.ajax.component.support.BindStatusHelper;
import org.springmodules.xt.examples.domain.IEmployee;
import org.springmodules.xt.examples.domain.IOffice;
import org.springmodules.xt.examples.domain.MemoryRepository;

/**
* Ajax handler for filling an office using dragging.
*
* @author Sergio Bossa
*/
public class FillOfficeWithDraggingHandler extends AbstractAjaxHandler {
   
    private static final String EMPLOYEE_ID = "employeeId";
    private static final String OFFICE_ID = "officeId";
   
    private MemoryRepository store;
   
    public AjaxResponse dragEmployee(AjaxActionEvent event) {
        IEmployee draggedEmployee = store.getEmployee(event.getParameters().get(EMPLOYEE_ID));
        IOffice droppableOffice = store.getOffice(event.getHttpRequest().getParameter(OFFICE_ID));
       
        if (! droppableOffice.getEmployees().contains(draggedEmployee)) {
            BindStatusHelper helper = new BindStatusHelper("command.employees");
           
            ListItem item = new ListItem(new SimpleText(draggedEmployee.getFirstname() + " " + draggedEmployee.getSurname()));
            InputField hidden = new InputField(helper.getStatusExpression(), draggedEmployee.getMatriculationCode(), InputField.InputType.HIDDEN);
           
            AppendContentAction appendAction = new AppendContentAction("employees", new LinkedList<Component>(Arrays.asList(item, hidden)));
           
            AjaxResponse response = new AjaxResponseImpl();
            response.addAction(appendAction);
           
            return response;
        }
        else {
            return null;
        }
    }
   
    public void setStore(MemoryRepository store) {
        this.store = store;
    }
}
TOP

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

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.