1 /** 2 * Copyright 2005-2015 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/ecl2.php 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.kuali.rice.krad.uif.container; 17 18 import java.util.List; 19 20 import org.kuali.rice.krad.uif.element.BreadcrumbItem; 21 import org.kuali.rice.krad.uif.element.BreadcrumbOptions; 22 import org.kuali.rice.krad.uif.element.PageBreadcrumbOptions; 23 24 /** 25 * Interface for top-level page components, to be used as items in a multi-page view. 26 * 27 * @author Kuali Rice Team (rice.collab@kuali.org) 28 */ 29 public interface PageGroup extends Group { 30 31 /** 32 * When this is true, the first field of the kualiForm will be focused by 33 * default, unless the parameter focusId is set on the form (by an 34 * actionField), then that field will be focused instead. When this setting 35 * if false, no field will be focused. 36 * 37 * @return the autoFocus 38 */ 39 boolean isAutoFocus(); 40 41 /** 42 * @param autoFocus the autoFocus to set 43 */ 44 void setAutoFocus(boolean autoFocus); 45 46 /** 47 * The breadcrumbOptions specific to this page. 48 * 49 * <p> 50 * Important note: breadcrumbOptions for preViewBreadcrumbs, prePageBreadcrumbs, and 51 * breadcrumbOverrides are inherited from the View if not explicitly set from the PageGroup level's 52 * breadcrumbOptions 53 * (if they contain a value at the view level and the property is null at the page level - default behavior). 54 * Explicitly providing an empty list or setting these properties at the PageGroup level will 55 * override this inheritance. 56 * </p> 57 * 58 * @return the {@link BreadcrumbOptions} 59 */ 60 PageBreadcrumbOptions getBreadcrumbOptions(); 61 62 /** 63 * Set the breadcrumbOptions 64 * 65 * @param breadcrumbOptions 66 */ 67 void setBreadcrumbOptions(PageBreadcrumbOptions breadcrumbOptions); 68 69 /** 70 * Gets the breadcrumb items indicating a homeward path. 71 * 72 * @return breadcrumb items 73 */ 74 List<BreadcrumbItem> getHomewardPathBreadcrumbs(); 75 76 /** 77 * Gets the breadcrumb items leading to the current view. 78 * 79 * @return breadcrumb items 80 */ 81 List<BreadcrumbItem> getPreViewBreadcrumbs(); 82 83 /** 84 * Gets the breadcrumb items leading to the current page. 85 * 86 * @return breadcrumb items 87 */ 88 List<BreadcrumbItem> getPrePageBreadcrumbs(); 89 90 /** 91 * Gets the breadcrumb items overrides. 92 * 93 * @return breadcrumb items 94 */ 95 List<BreadcrumbItem> getBreadcrumbOverrides(); 96 97 /** 98 * The breadcrumbItem for this page. This is the item that (generally) appears last in the breadcrumb list. 99 * 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 }