001/** 002 * Copyright 2005-2016 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.uif.container; 017 018import java.util.List; 019 020import org.kuali.rice.krad.uif.element.BreadcrumbItem; 021import org.kuali.rice.krad.uif.element.BreadcrumbOptions; 022import org.kuali.rice.krad.uif.element.PageBreadcrumbOptions; 023 024/** 025 * Interface for top-level page components, to be used as items in a multi-page view. 026 * 027 * @author Kuali Rice Team (rice.collab@kuali.org) 028 */ 029public interface PageGroup extends Group { 030 031 /** 032 * When this is true, the first field of the kualiForm will be focused by 033 * default, unless the parameter focusId is set on the form (by an 034 * actionField), then that field will be focused instead. When this setting 035 * if false, no field will be focused. 036 * 037 * @return the autoFocus 038 */ 039 boolean isAutoFocus(); 040 041 /** 042 * @param autoFocus the autoFocus to set 043 */ 044 void setAutoFocus(boolean autoFocus); 045 046 /** 047 * The breadcrumbOptions specific to this page. 048 * 049 * <p> 050 * Important note: breadcrumbOptions for preViewBreadcrumbs, prePageBreadcrumbs, and 051 * breadcrumbOverrides are inherited from the View if not explicitly set from the PageGroup level's 052 * breadcrumbOptions 053 * (if they contain a value at the view level and the property is null at the page level - default behavior). 054 * Explicitly providing an empty list or setting these properties at the PageGroup level will 055 * override this inheritance. 056 * </p> 057 * 058 * @return the {@link BreadcrumbOptions} 059 */ 060 PageBreadcrumbOptions getBreadcrumbOptions(); 061 062 /** 063 * Set the breadcrumbOptions 064 * 065 * @param breadcrumbOptions 066 */ 067 void setBreadcrumbOptions(PageBreadcrumbOptions breadcrumbOptions); 068 069 /** 070 * Gets the breadcrumb items indicating a homeward path. 071 * 072 * @return breadcrumb items 073 */ 074 List<BreadcrumbItem> getHomewardPathBreadcrumbs(); 075 076 /** 077 * Gets the breadcrumb items leading to the current view. 078 * 079 * @return breadcrumb items 080 */ 081 List<BreadcrumbItem> getPreViewBreadcrumbs(); 082 083 /** 084 * Gets the breadcrumb items leading to the current page. 085 * 086 * @return breadcrumb items 087 */ 088 List<BreadcrumbItem> getPrePageBreadcrumbs(); 089 090 /** 091 * Gets the breadcrumb items overrides. 092 * 093 * @return breadcrumb items 094 */ 095 List<BreadcrumbItem> getBreadcrumbOverrides(); 096 097 /** 098 * The breadcrumbItem for this page. This is the item that (generally) appears last in the breadcrumb list. 099 * 100 * <p> 101 * If a label is not explicitly defined, the label is retrieved from the headerText of the PageGroup's header. 102 * If this is also not defined, the breadcrumbItem is NOT rendered. The url properties do not need to be provided 103 * for this breadcrumbItem because it is automatically determined based on the this PageGroup's pageId, viewId, 104 * and controllerMapping retrieved from the initial controller request. 105 * </p> 106 * 107 * @return the breadcrumbItem for this page 108 */ 109 BreadcrumbItem getBreadcrumbItem(); 110 111 /** 112 * Set the breadcrumbItem for this PageGroup 113 * 114 * @param breadcrumbItem 115 */ 116 void setBreadcrumbItem(BreadcrumbItem breadcrumbItem); 117 118 /** 119 * When true, this page's footer will become sticky (fixed) at the bottom of the window 120 * 121 * @return true if the page footer is sticky, false otherwise 122 */ 123 boolean isStickyFooter(); 124 125 /** 126 * Set to true to make this page's footer sticky 127 * 128 * @param stickyFooter 129 */ 130 void setStickyFooter(boolean stickyFooter); 131 132 /** 133 * Specifies the URL the view's form should post to 134 * 135 * <p> 136 * Any valid form post URL (full or relative) can be specified. If left 137 * empty, the form will be posted to the same URL of the preceding request 138 * URL. 139 * </p> 140 * 141 * @return post URL 142 */ 143 String getFormPostUrl(); 144 145 /** 146 * Setter for the form post URL 147 * 148 * @param formPostUrl 149 */ 150 void setFormPostUrl(String formPostUrl); 151 152}