001/** 002 * Copyright 2005-2018 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.kuali.rice.krad.web.service; 017 018import org.kuali.rice.krad.web.form.UifFormBase; 019import org.springframework.web.servlet.ModelAndView; 020 021/** 022 * Controller service that provides methods for working with collection groups. 023 * 024 * @author Kuali Rice Team (rice.collab@kuali.org) 025 */ 026public interface CollectionControllerService { 027 028 /** 029 * Invoked by the add line action to add the add line instance to the model collection. 030 * 031 * @param form form instance containing the model data 032 * @return ModelAndView instance for rendering the view 033 */ 034 ModelAndView addLine(UifFormBase form); 035 036 /** 037 * Invoked by the add blank line action to add a new line instance to the model mollection. 038 * 039 * @param form form instance containing the model data 040 * @return ModelAndView instance for rendering the view 041 */ 042 ModelAndView addBlankLine(UifFormBase form); 043 044 /** 045 * Invoked by the edit line action to show the edit line dialog for the edit line instance to the model collection. 046 * 047 * @param form form instance containing the model data 048 * @return ModelAndView instance for rendering the view 049 */ 050 ModelAndView retrieveEditLineDialog(UifFormBase form); 051 052 /** 053 * Invoked by the edit line action to edit the edit line instance to the model collection. 054 * 055 * @param form form instance containing the model data 056 * @return ModelAndView instance for rendering the view 057 */ 058 ModelAndView editLine(UifFormBase form); 059 060 /** 061 * Invoked by the edit line modal's hidden event to close the edit line dialog. 062 * 063 * @param form form instance containing the model data 064 * @return ModelAndView instance for rendering the view 065 */ 066 ModelAndView closeEditLineDialog(UifFormBase form); 067 068 /** 069 * Invoked by the save line action to save an item within the model collection. 070 * 071 * @param form form instance containing the model data 072 * @return ModelAndView instance for rendering the view 073 */ 074 ModelAndView saveLine(UifFormBase form); 075 076 /** 077 * Invoked by the delete line action to delete an item within the model collection. 078 * 079 * @param form form instance containing the model data 080 * @return ModelAndView instance for rendering the view 081 */ 082 ModelAndView deleteLine(UifFormBase form); 083 084 /** 085 * Invoked by the table paging widget to retrieve a page for a collection group. 086 * 087 * @param form form instance containing the model data 088 * @return ModelAndView instance for rendering the view 089 */ 090 ModelAndView retrieveCollectionPage(UifFormBase form); 091 092 /** 093 * Get method for getting aaData for jquery datatables which are using sAjaxSource option. 094 * 095 * <p>This will render the aaData JSON for the displayed page of the table matching the tableId passed in the 096 * request parameters.</p> 097 * 098 * @param form form instance containing the model data 099 * @return ModelAndView instance for rendering the view 100 */ 101 ModelAndView tableJsonRetrieval(UifFormBase form); 102}