View Javadoc
1   /*
2    * Copyright (c) 2011-2024 PrimeFaces Extensions
3    *
4    *  Permission is hereby granted, free of charge, to any person obtaining a copy
5    *  of this software and associated documentation files (the "Software"), to deal
6    *  in the Software without restriction, including without limitation the rights
7    *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8    *  copies of the Software, and to permit persons to whom the Software is
9    *  furnished to do so, subject to the following conditions:
10   *
11   *  The above copyright notice and this permission notice shall be included in
12   *  all copies or substantial portions of the Software.
13   *
14   *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15   *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16   *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17   *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18   *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19   *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20   *  THE SOFTWARE.
21   */
22  package org.primefaces.extensions.model.dynaform;
23  
24  import java.io.Serializable;
25  import java.util.Objects;
26  
27  /**
28   * Abstract class representing a control (typically input element or label) inside of <code>DynaForm</code>.
29   *
30   * @author Oleg Varaksin / last modified by $Author$
31   * @version $Revision$
32   * @since 0.5
33   */
34  public abstract class AbstractDynaFormElement implements Serializable {
35  
36      private static final long serialVersionUID = 20120514L;
37  
38      private int colspan = 1;
39      private int rowspan = 1;
40      private int row;
41      private int column;
42      private boolean extended;
43  
44      /**
45       * This constructor is required for serialization. Please do not remove.
46       */
47      public AbstractDynaFormElement() {
48      }
49  
50      protected AbstractDynaFormElement(int colspan, int rowspan, int row, int column, boolean extended) {
51          this.colspan = colspan;
52          this.rowspan = rowspan;
53          this.row = row;
54          this.column = column;
55          this.extended = extended;
56      }
57  
58      public int getColspan() {
59          return colspan;
60      }
61  
62      public int getRowspan() {
63          return rowspan;
64      }
65  
66      public int getRow() {
67          return row;
68      }
69  
70      void setRow(int row) {
71          this.row = row;
72      }
73  
74      public int getColumn() {
75          return column;
76      }
77  
78      public boolean isExtended() {
79          return extended;
80      }
81  
82      @Override
83      public boolean equals(Object o) {
84          if (this == o) {
85              return true;
86          }
87          if (!(o instanceof AbstractDynaFormElement)) {
88              return false;
89          }
90          AbstractDynaFormElement that = (AbstractDynaFormElement) o;
91          return getRow() == that.getRow() &&
92                      getColumn() == that.getColumn() &&
93                      isExtended() == that.isExtended();
94      }
95  
96      @Override
97      public int hashCode() {
98          return Objects.hash(getRow(), getColumn(), isExtended());
99      }
100 }