View Javadoc
1   /*
2    * Copyright 2008 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.ole.sys.document.web;
17  
18  import java.util.List;
19  import java.util.Map;
20  import java.util.Set;
21  
22  import org.kuali.ole.sys.businessobject.AccountingLine;
23  import org.kuali.ole.sys.document.service.AccountingLineFieldRenderingTransformation;
24  
25  /**
26   * An interface which specifies the behaviors needed from layout elements to join tables
27   */
28  public interface TableJoining extends ElementNamable{
29      
30      /**
31       * Requests that this layout element property join a number of rows which will make up a table 
32       * @param rows the rows to join
33       * @param headerRowCount the number of header rows
34       */
35      public abstract void joinTable(List<AccountingLineTableRow> rows);
36      
37      /**
38       * Requests that this element join a table row
39       * @param headerLabelRow the header row which can be joined
40       * @param row the row which can be joined
41       */
42      public abstract void joinRow(AccountingLineTableRow headerLabelRow, AccountingLineTableRow row);
43      
44      /**
45       * The minimum number of rows this element needs if it is going to join a table
46       * @return the minimum number of rows
47       */
48      public abstract int getRequestedRowCount();
49      
50      /**
51       * Removes any action blocks from the given element
52       */
53      public abstract void removeAllActionBlocks();
54      
55      /**
56       * Removes any unviewable blocks within this this table joining element
57       * @param unviewableBlocks a Set of the names of blocks that should not be rendered
58       */
59      public abstract void removeUnviewableBlocks(Set<String> unviewableBlocks);
60      
61      /**
62       * Instructs the element to make any child readOnlyizable blocks named within the given Set to read only
63       * @param readOnlyBlocks the names of blocks to make read only
64       */
65      public abstract void readOnlyizeReadOnlyBlocks(Set<String> readOnlyBlocks);
66      
67      /**
68       * Instructs the element to make any child readOnlyizable blocks named within the given Set to read only
69       * @param readOnlyBlocks the names of blocks to make read only
70       */
71      public abstract void setEditableBlocks(Set<String> editableBlocks);
72  
73      /**
74       * Performs a transformations on any fields this TableJoining layout element knows about
75       * @param accountingDocument the document the field of the accounting line is associated with
76       * @param fieldTransformation a List of field transformations to perform on this element
77       * @param accountingLine the accounting line which is being rendering during the transformation
78       * @param unconvertedValues any unconverted values from the form
79       */
80      public abstract void performFieldTransformations(List<AccountingLineFieldRenderingTransformation> fieldTransformations, AccountingLine accountingLine, Map unconvertedValues);
81  }