001: /*
002: * $Id: DataGridView.java 458885 2006-01-30 21:58:56Z ivaynberg $
003: * $Revision: 458885 $
004: * $Date: 2006-01-30 22:58:56 +0100 (Mon, 30 Jan 2006) $
005: *
006: * ====================================================================
007: * Licensed under the Apache License, Version 2.0 (the "License");
008: * you may not use this file except in compliance with the License.
009: * You may obtain a copy of the License at
010: *
011: * http://www.apache.org/licenses/LICENSE-2.0
012: *
013: * Unless required by applicable law or agreed to in writing, software
014: * distributed under the License is distributed on an "AS IS" BASIS,
015: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016: * See the License for the specific language governing permissions and
017: * limitations under the License.
018: */
019: package wicket.extensions.markup.html.repeater.data.grid;
020:
021: import java.util.List;
022:
023: import wicket.extensions.markup.html.repeater.data.IDataProvider;
024:
025: /**
026: * Simple concrete implementation of {@link AbstractDataGridView}
027: *
028: * <p>
029: * Example:
030: *
031: * <pre>
032: * <table>
033: * <tr wicket:id="rows">
034: * <td wicket:id="cells">
035: * <span wicket:id="cell"> </span>
036: * </td>
037: * </tr>
038: * </table>
039: * </pre>
040: *
041: * <p>
042: * Though this example is about a HTML table, DataGridView is not at all limited
043: * to HTML tables. Any kind of grid can be rendered using DataGridView.
044: * <p>
045: * And the related Java code:
046: *
047: * <pre>
048: *
049: * ICellPopulator[] columns = new ICellPopulator[2];
050: *
051: * columns[0] = new PropertyPopulator("firstName");
052: * columns[1] = new PropertyPopulator("lastName");
053: *
054: * add(new DataGridView("rows", columns, new UserProvider()));
055: *
056: * </pre>
057: *
058: * @see AbstractDataGridView
059: * @see IDataProvider
060: *
061: * @author Igor Vaynberg (ivaynberg)
062: *
063: */
064: public class DataGridView extends AbstractDataGridView {
065: private static final long serialVersionUID = 1L;
066:
067: /**
068: * Constructor
069: *
070: * Notice cells are created in the same order as cell populators in the list
071: *
072: * @param id
073: * component id
074: * @param populators
075: * list of ICellPopulators used to populate cells
076: * @param dataProvider
077: * data provider
078: */
079: public DataGridView(String id,
080: List/* <ICellPopulator> */populators,
081: IDataProvider dataProvider) {
082: super (id, (ICellPopulator[]) populators
083: .toArray(new ICellPopulator[populators.size()]),
084: dataProvider);
085: }
086:
087: /**
088: * Constructor
089: *
090: * Notice cells are created in the same order as cell populators in the
091: * array
092: *
093: * @param id
094: * component id
095: * @param populators
096: * array of ICellPopulators used to populate cells
097: * @param dataProvider
098: * data provider
099: */
100: public DataGridView(String id, ICellPopulator[] populators,
101: IDataProvider dataProvider) {
102: super (id, populators, dataProvider);
103: }
104:
105: /**
106: * Returns the array of cell populators
107: *
108: * @return the array of cell populators
109: */
110: public ICellPopulator[] getPopulators() {
111: return internalGetPopulators();
112: }
113:
114: /**
115: * Sets the number of items to be displayed per page
116: *
117: * @param items
118: * number of items to display per page
119: *
120: */
121: public void setRowsPerPage(int items) {
122: internalSetRowsPerPage(items);
123: }
124:
125: /**
126: * @return number of items displayed per page
127: */
128: public int getRowsPerPage() {
129: return internalGetRowsPerPage();
130: }
131:
132: /**
133: * Returns the data provider
134: *
135: * @return data provider
136: */
137: public IDataProvider getDataProvider() {
138: return internalGetDataProvider();
139: }
140:
141: }
|