/**
*
*/
package org.sakaiproject.tool.gradebook.ui;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.sakaiproject.content.api.FilePickerHelper;
import org.sakaiproject.entity.api.Reference;
import org.sakaiproject.entity.api.ResourceProperties;
import org.sakaiproject.jsf.util.HelperAwareJsfTool;
import org.sakaiproject.tool.api.ToolSession;
import org.sakaiproject.tool.cover.SessionManager;
/**
* @author bsawert
*
*/
public class GradebookFilePickerServlet extends HelperAwareJsfTool {
protected boolean sendToHelper(HttpServletRequest req, HttpServletResponse res, String target) {
ToolSession toolSession = SessionManager.getCurrentToolSession();
ToolSession session = SessionManager.getCurrentToolSession();
if (session.getAttribute(FilePickerHelper.FILE_PICKER_CANCEL) == null &&
session.getAttribute(FilePickerHelper.FILE_PICKER_ATTACHMENTS) != null) {
// attachments are References, which cannot be Serialized
// get reference strings and store those instead
List refs = (List) session.getAttribute(FilePickerHelper.FILE_PICKER_ATTACHMENTS);
if (refs != null && refs.size() > 0) {
// we are only processing a single reference - the first one
Reference ref = (Reference) refs.get(0);
// save reference string
String refString = ref.getReference();
session.setAttribute(SpreadsheetUploadBean.PICKED_FILE_REFERENCE, refString);
// save display name
ResourceProperties rp = ref.getProperties();
String pickedFileDesc = (String) rp.get(rp.getNamePropDisplayName());
session.setAttribute(SpreadsheetUploadBean.PICKED_FILE_DESC, pickedFileDesc);
}
session.removeAttribute(FilePickerHelper.FILE_PICKER_ATTACHMENTS);
session.removeAttribute(FilePickerHelper.FILE_PICKER_CANCEL);
}
return super.sendToHelper(req, res, target);
}
}