Coverage Report - org.kuali.rice.krad.uif.container.Container
 
Classes in this File Line Coverage Branch Coverage Complexity
Container
N/A
N/A
1
 
 1  
 /**
 2  
  * Copyright 2005-2011 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 org.kuali.rice.krad.uif.component.Component;
 19  
 import org.kuali.rice.krad.uif.field.ErrorsField;
 20  
 import org.kuali.rice.krad.uif.field.HeaderField;
 21  
 import org.kuali.rice.krad.uif.field.MessageField;
 22  
 import org.kuali.rice.krad.uif.layout.LayoutManager;
 23  
 import org.kuali.rice.krad.uif.widget.Help;
 24  
 
 25  
 import java.util.List;
 26  
 import java.util.Set;
 27  
 
 28  
 /**
 29  
  * Type of component that contains a collection of other components. All
 30  
  * templates for <code> Container</code> components must use a
 31  
  * <code>LayoutManager</code> to render the contained components.
 32  
  *
 33  
  * Each container has the following parts in addition to the contained components:
 34  
  * <ul>
 35  
  * <li><code>HeaderField</code></li>
 36  
  * <li>Summary <code>MessageField</code></li>
 37  
  * <li>Help component</li>
 38  
  * <li>Errors container</li>
 39  
  * <li>Footer <code>Group</code></li>
 40  
  * </ul>
 41  
  * Container implementations are free to add additional content as needed.
 42  
  * 
 43  
  * @author Kuali Rice Team (rice.collab@kuali.org)
 44  
  * 
 45  
  * @see org.kuali.rice.krad.uif.component.Component
 46  
  */
 47  
 public interface Container extends Component {
 48  
 
 49  
         /**
 50  
          * <code>List</code> of <code>Component</code> instances that are held by
 51  
          * the container
 52  
          * 
 53  
          * <p>
 54  
          * Contained components are rendered within the section template by calling
 55  
          * the associated <code>LayoutManager</code>
 56  
          * </p>
 57  
          * 
 58  
          * @return List component instances
 59  
          */
 60  
         public List<? extends Component> getItems();
 61  
 
 62  
     /**
 63  
      * Setter for the containers list of components
 64  
      *
 65  
      * @param items - list of components to set in container
 66  
      */
 67  
     public void setItems(List<? extends Component> items);
 68  
 
 69  
         /**
 70  
          * <code>Set</code> of <code>Component</code> classes that may be placed
 71  
          * into the container
 72  
          * 
 73  
          * <p>
 74  
          * If an empty or null list is returned, it is assumed the container
 75  
          * supports all components. The returned set will be used by dictionary
 76  
          * validators and allows renders to make assumptions about the contained
 77  
          * components
 78  
          * </p>
 79  
          * 
 80  
          * @return Set component classes
 81  
          */
 82  
         public Set<Class<? extends Component>> getSupportedComponents();
 83  
 
 84  
         /**
 85  
          * <code>LayoutManager</code> that should be used to layout the components
 86  
          * in the container
 87  
          * 
 88  
          * <p>
 89  
          * The template associated with the layout manager will be invoked passing
 90  
          * in the List of components from the container. This list is exported under
 91  
          * the attribute name 'items'
 92  
          * </p>
 93  
          * 
 94  
          * @return LayoutManager instance
 95  
          */
 96  
         public LayoutManager getLayoutManager();
 97  
 
 98  
         /**
 99  
          * Setter for the containers layout manager
 100  
          * 
 101  
          * @param layoutManager
 102  
          */
 103  
         public void setLayoutManager(LayoutManager layoutManager);
 104  
 
 105  
         /**
 106  
          * <code>HeaderField</code> associated with the container
 107  
          * 
 108  
          * <p>
 109  
          * Header fields are generally rendered at the beginning of the container to
 110  
          * indicate a grouping, although this is determined by the template
 111  
          * associated with the container. The actual rendering configuration (style
 112  
          * and so on) is configured within the HeaderField instance
 113  
          * </p>
 114  
          * <p>
 115  
          * Header is only rendered if <code>Container#isRenderHeader</code> is true
 116  
          * and getHeader() is not null
 117  
          * </p>
 118  
          * 
 119  
          * @return HeaderField instance or Null
 120  
          */
 121  
         public HeaderField getHeader();
 122  
 
 123  
         /**
 124  
          * Setter for the containers header field
 125  
          * 
 126  
          * @param header
 127  
          */
 128  
         public void setHeader(HeaderField header);
 129  
 
 130  
         /**
 131  
          * Footer <code>Group</code> associated with the container
 132  
          * 
 133  
          * <p>
 134  
          * The footer is usually rendered at the end of the container. Often this is
 135  
          * a place to put actions (buttons) for the container.
 136  
          * </p>
 137  
          * <p>
 138  
          * Footer is only rendered if <code>Container#isRenderFooter</code> is true
 139  
          * and getFooter is not null
 140  
          * </p>
 141  
          * 
 142  
          * @return Group footer instance or Null
 143  
          */
 144  
         public Group getFooter();
 145  
 
 146  
         /**
 147  
          * Setter for the containers footer
 148  
          * 
 149  
          * @param footer
 150  
          */
 151  
         public void setFooter(Group footer);
 152  
 
 153  
         /**
 154  
          * Text for the container that provides a summary description or
 155  
          * instructions
 156  
          * 
 157  
          * <p>
 158  
          * Text is encapsulated in a <code>MessageField</code> that contains
 159  
          * rendering configuration.
 160  
          * </p>
 161  
          * <p>
 162  
          * Summary <code>MessageField</code> only rendered if this methods does not
 163  
          * return null
 164  
          * </p>
 165  
          * 
 166  
          * @return MessageField instance or Null
 167  
          */
 168  
         public MessageField getInstructionalMessageField();
 169  
 
 170  
         /**
 171  
          * Setter for the containers summary message field
 172  
          * 
 173  
          * @param summaryMessageField
 174  
          */
 175  
         public void setInstructionalMessageField(MessageField summaryMessageField);
 176  
 
 177  
         /**
 178  
          * Field that contains the error messages for the container
 179  
          * 
 180  
          * <p>
 181  
          * Containers can collect the errors for the contained component and display
 182  
          * either all the messages or counts. This <code>Field</code> is used to
 183  
          * render those messages. Styling and other configuration is done through
 184  
          * the <code>ErrorsField</code>
 185  
          * </p>
 186  
          * 
 187  
          * @return ErrorsField holding the container errors
 188  
          */
 189  
         public ErrorsField getErrorsField();
 190  
 
 191  
         /**
 192  
          * Setter for the containers errors field
 193  
          * 
 194  
          * @param errorsField
 195  
          */
 196  
         public void setErrorsField(ErrorsField errorsField);
 197  
 
 198  
         /**
 199  
          * Help configuration object for the container
 200  
          * 
 201  
          * <p>
 202  
          * External help information can be configured for the container. The
 203  
          * <code>Help</code> object can the configuration for rendering a link to
 204  
          * that help information.
 205  
          * </p>
 206  
          * 
 207  
          * @return Help for container
 208  
          */
 209  
         public Help getHelp();
 210  
 
 211  
         /**
 212  
          * Setter for the containers help content
 213  
          * 
 214  
          * @param help
 215  
          */
 216  
         public void setHelp(Help help);
 217  
 
 218  
         /**
 219  
          * This property is true if the container is used to display a group of fields that is visually a single
 220  
          * field - this has an effect on where errors will show up for these fields.
 221  
          * @return the fieldContainer
 222  
          */
 223  
         public boolean isFieldContainer();
 224  
 
 225  
         /**
 226  
          * @param fieldContainer the fieldContainer to set
 227  
          */
 228  
         public void setFieldContainer(boolean fieldContainer);
 229  
 
 230  
 }