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}