lams:TextSearch
tag.
+ *
+ * @author Marcin Cieslak
+ *
+ *
+ */
+public class TextSearchForm {
+
+ public static final String formName = "TextSearchActionForm";
+ private String allWords;
+ private String phrase;
+ private String anyWords;
+ private String excludedWords;
+ private String sessionMapID;
+
+ public TextSearchForm() {
+ }
+
+ /**
+ * Fills the form with data provided by condition.
+ *
+ * @param condition
+ * condition to read the data from
+ */
+ public void populateForm(TextSearchCondition condition) {
+ allWords = condition.getAllWords();
+ phrase = condition.getPhrase();
+ anyWords = condition.getAnyWords();
+ excludedWords = condition.getExcludedWords();
+ }
+
+ public String getAllWords() {
+ return allWords;
+ }
+
+ public void setAllWords(String allWords) {
+ this.allWords = allWords;
+ }
+
+ public String getPhrase() {
+ return phrase;
+ }
+
+ public void setPhrase(String phrase) {
+ this.phrase = phrase;
+ }
+
+ public String getAnyWords() {
+ return anyWords;
+ }
+
+ public void setAnyWords(String anyWords) {
+ this.anyWords = anyWords;
+ }
+
+ public String getExcludedWords() {
+ return excludedWords;
+ }
+
+ public void setExcludedWords(String excludedWords) {
+ this.excludedWords = excludedWords;
+ }
+
+ public String getSessionMapID() {
+ return sessionMapID;
+ }
+
+ public void setSessionMapID(String sessionMapID) {
+ this.sessionMapID = sessionMapID;
+ }
+}
\ No newline at end of file
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringController.java
===================================================================
diff -u -rb9f506afc78a6f28e20a87ef15915076fd9d839f -rcad516bd852b193b61c821c5177cecacf3e5d016
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringController.java (.../AuthoringController.java) (revision b9f506afc78a6f28e20a87ef15915076fd9d839f)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringController.java (.../AuthoringController.java) (revision cad516bd852b193b61c821c5177cecacf3e5d016)
@@ -710,23 +710,23 @@
* @param form
* @param request
*/
- private void populateItemToForm(int itemIdx, TaskListItem item, TaskListItemForm form, HttpServletRequest request) {
- form.setDescription(item.getDescription());
- form.setTitle(item.getTitle());
+ private void populateItemToForm(int itemIdx, TaskListItem item, TaskListItemForm taskListItemForm, HttpServletRequest request) {
+ taskListItemForm.setDescription(item.getDescription());
+ taskListItemForm.setTitle(item.getTitle());
if (itemIdx >= 0) {
- form.setItemIndex(new Integer(itemIdx).toString());
+ taskListItemForm.setItemIndex(new Integer(itemIdx).toString());
}
- form.setRequired(item.isRequired());
- form.setCommentsAllowed(item.isCommentsAllowed());
- form.setCommentsRequired(item.isCommentsRequired());
- form.setFilesAllowed(item.isFilesAllowed());
- form.setFilesRequired(item.isFilesRequired());
+ taskListItemForm.setRequired(item.isRequired());
+ taskListItemForm.setCommentsAllowed(item.isCommentsAllowed());
+ taskListItemForm.setCommentsRequired(item.isCommentsRequired());
+ taskListItemForm.setFilesAllowed(item.isFilesAllowed());
+ taskListItemForm.setFilesRequired(item.isFilesRequired());
// The next 2 options always will be true (as it set in jsp). Waiting
// for the final decision -- if this options will be needed later.
- form.setCommentsFilesAllowed(item.isCommentsFilesAllowed());
- form.setShowCommentsToAll(item.getShowCommentsToAll());
- form.setChildTask(item.isChildTask());
- form.setParentTaskName(item.getParentTaskName());
+ taskListItemForm.setCommentsFilesAllowed(item.isCommentsFilesAllowed());
+ taskListItemForm.setShowCommentsToAll(item.getShowCommentsToAll());
+ taskListItemForm.setChildTask(item.isChildTask());
+ taskListItemForm.setParentTaskName(item.getParentTaskName());
}
/**
Fisheye: Tag cad516bd852b193b61c821c5177cecacf3e5d016 refers to a dead (removed) revision in file `lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringTaskListConditionAction.java'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringTaskListConditionController.java
===================================================================
diff -u
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringTaskListConditionController.java (revision 0)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringTaskListConditionController.java (revision cad516bd852b193b61c821c5177cecacf3e5d016)
@@ -0,0 +1,493 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+package org.lamsfoundation.lams.tool.taskList.web.controller;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.math.NumberUtils;
+import org.apache.struts.action.ActionErrors;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.ActionMessage;
+import org.apache.struts.action.ActionMessages;
+import org.apache.struts.util.LabelValueBean;
+import org.lamsfoundation.lams.tool.ToolAccessMode;
+import org.lamsfoundation.lams.tool.taskList.TaskListConstants;
+import org.lamsfoundation.lams.tool.taskList.model.TaskListCondition;
+import org.lamsfoundation.lams.tool.taskList.model.TaskListItem;
+import org.lamsfoundation.lams.tool.taskList.service.ITaskListService;
+import org.lamsfoundation.lams.tool.taskList.service.TaskListException;
+import org.lamsfoundation.lams.tool.taskList.util.TaskListConditionComparator;
+import org.lamsfoundation.lams.tool.taskList.util.TaskListItemComparator;
+import org.lamsfoundation.lams.tool.taskList.web.form.TaskListConditionForm;
+import org.lamsfoundation.lams.tool.taskList.web.form.TaskListForm;
+import org.lamsfoundation.lams.util.WebUtil;
+import org.lamsfoundation.lams.web.util.AttributeNames;
+import org.lamsfoundation.lams.web.util.SessionMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Controller;
+import org.springframework.validation.Errors;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+
+/**
+ * Auxiliary action in author mode. It contains operations with TaskListCondition. The rest of operations are located in
+ * AuthoringAction
action.
+ *
+ * @author Andrey Balan
+ * @see org.lamsfoundation.lams.tool.taskList.web.controller.AuthoringController
+ */
+
+@Controller
+@RequestMapping("/authoringCondition")
+public class AuthoringTaskListConditionController {
+
+
+ /**
+ * Display same entire authoring page content from HttpSession variable.
+ *
+ * @param taskListForm
+ * @param request
+ * @return
+ * @throws ServletException
+ */
+ @RequestMapping("/showConditions")
+ public String showConditions(@ModelAttribute TaskListForm taskListForm, HttpServletRequest request) throws ServletException {
+
+ String sessionMapID = WebUtil.readStrParam(request, TaskListConstants.ATTR_SESSION_MAP_ID);
+ SessionMapHttpSession
TaskListItemList. Notice, this save is not persist them into database, just save
+ * HttpSession
temporarily. Only they will be persist when the entire authoring page is being
+ * persisted.
+ *
+ * @param form
+ * @param request
+ * @param response
+ * @return
+ * @throws ServletException
+ */
+ @RequestMapping("/saveOrUpdateCondition")
+ public String saveOrUpdateCondition(@ModelAttribute TaskListConditionForm taskListConditionForm, Errors errors, HttpServletRequest request) {
+
+ validateTaskListCondition(taskListConditionForm, errors, request);
+ if (errors.hasErrors()) {
+ populateFormWithPossibleItems(taskListConditionForm, request);
+ return "pages/authoring/parts/addcondition";
+ }
+
+ try {
+ extractFormToTaskListCondition(request, taskListConditionForm);
+ } catch (Exception e) {
+ // any upload exception will display as normal error message rather then throw exception directly
+ errors.reject("error.condition.name.blank");
+ if (errors.hasErrors()) {
+ populateFormWithPossibleItems(taskListConditionForm, request);
+ return "pages/authoring/parts/addcondition";
+ }
+
+ }
+ // set session map ID so that itemlist.jsp can get sessionMAP
+ request.setAttribute(TaskListConstants.ATTR_SESSION_MAP_ID, taskListConditionForm.getSessionMapID());
+ // return null to close this window
+ return "pages/authoring/parts/conditionlist";
+ }
+
+
+ /**
+ * Remove taskList item from HttpSession list and update page display. As authoring rule, all persist only happen
+ * when user submit whole page. So this remove is just impact HttpSession values.
+ *
+ * @param form
+ * @param request
+ * @param response
+ * @return
+ */
+ @RequestMapping("/removeCondition")
+ public String removeCondition(@ModelAttribute TaskListConditionForm taskListConditionForm, HttpServletRequest request) {
+
+ // get back sessionMAP
+ String sessionMapID = WebUtil.readStrParam(request, TaskListConstants.ATTR_SESSION_MAP_ID);
+ SessionMapjava.util.List
from HttpSession by given name.
+ *
+ * @param request
+ * @param name
+ * @return
+ */
+ private List getListFromSession(SessionMapTaskListCondition
objects on a view layer.
@@ -33,7 +36,7 @@
*
*
*/
-public class TaskListConditionForm extends ActionForm {
+public class TaskListConditionForm extends TextSearchForm {
//tool access mode;
private String mode;
@@ -42,7 +45,7 @@
private String sequenceId;
private String name;
// private String taskListItemName;
- private LabelValueBean[] possibleItems;
+ private Map