01: /*
02: * $Id: ICellPopulator.java 458270 2005-12-09 07:43:11Z ivaynberg $
03: * $Revision: 458270 $
04: * $Date: 2005-12-09 08:43:11 +0100 (Fri, 09 Dec 2005) $
05: *
06: * ====================================================================
07: * Licensed under the Apache License, Version 2.0 (the "License");
08: * you may not use this file except in compliance with the License.
09: * You may obtain a copy of the License at
10: *
11: * http://www.apache.org/licenses/LICENSE-2.0
12: *
13: * Unless required by applicable law or agreed to in writing, software
14: * distributed under the License is distributed on an "AS IS" BASIS,
15: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16: * See the License for the specific language governing permissions and
17: * limitations under the License.
18: */
19: package wicket.extensions.markup.html.repeater.data.grid;
20:
21: import java.io.Serializable;
22:
23: import wicket.extensions.markup.html.repeater.refreshing.Item;
24: import wicket.model.IModel;
25:
26: /**
27: * Represents an object that is capable of populating an {@link Item} container
28: * representing a cell in a {@link DataGridView} with components.
29: * <p>
30: * Example
31: * <p>
32: *
33: * <pre>
34: * class NamePopulator implements ICellPopulator
35: * {
36: * void populateItem(final Item cellItem, final String componentId, final IModel rowModel) {
37: * User user=(User)rowModel.getObject(cellItem);
38: * String name=user.getFirstName()+" "+user.getLastName();
39: * cellItem.add(new Label(componentId, name);
40: * }}
41: * </pre>
42: *
43: * In this example the IDataProvider assigned to the DataGridView retrieves User
44: * objects from the database. The cell populator adds a label to the cell that
45: * will display the full name of the user.
46: *
47: * @see DataGridView
48: * @see Item
49: *
50: * @author Igor Vaynberg (ivaynberg)
51: *
52: */
53: public interface ICellPopulator extends Serializable {
54: /**
55: * Method used to populate a cell in the {@link DataGridView}
56: *
57: * <b>Implementation MUST add a component to the cellItem using the
58: * component id provided by componentId argument, otherwise a
59: * WicketRuntimeException will be thrown</b>
60: *
61: * @param cellItem
62: * the item representing the current table cell being rendered
63: * @param componentId
64: * the id of the component used to render the cell (only one
65: * component should be added to the cell)
66: * @param rowModel
67: * the model of the row item being rendered. this model usually
68: * contains the model provided by the data provider.
69: *
70: * @see Item
71: */
72: void populateItem(final Item cellItem, final String componentId,
73: final IModel rowModel);
74: }
|