01: /*
02: ItsNat Java Web Application Framework
03: Copyright (C) 2007 Innowhere Software Services S.L., Spanish Company
04: Author: Jose Maria Arranz Santamaria
05:
06: This program is free software: you can redistribute it and/or modify
07: it under the terms of the GNU Affero General Public License as published by
08: the Free Software Foundation, either version 3 of the License, or
09: (at your option) any later version. See the GNU Affero General Public
10: License for more details. See the copy of the GNU Affero General Public License
11: included in this program. If not, see <http://www.gnu.org/licenses/>.
12: */
13:
14: package org.itsnat.comp;
15:
16: import org.w3c.dom.Element;
17:
18: /**
19: * Is used to render column values of table headers as markup into DOM elements.
20: *
21: * @author Jose Maria Arranz Santamaria
22: * @see ItsNatComponentManager#createDefaultItsNatTableHeaderCellRenderer()
23: * @see ItsNatTableHeader#getItsNatTableHeaderCellRenderer()
24: * @see ItsNatTableHeader#setItsNatTableHeaderCellRenderer(ItsNatTableHeaderCellRenderer)
25: */
26: public interface ItsNatTableHeaderCellRenderer {
27: /**
28: * Renders as markup the specified column value of the table header into the specified element, usually
29: * as a text node.
30: *
31: * <p>Default implementation delegates to the default {@link org.itsnat.core.domutil.ElementRenderer}.</p>
32: *
33: * <p>Default implementation ignores <code>isSelected</code> and <code>hasFocus</code>
34: * (current implementation of ItsNat tables does not handle focus on table header columns, ever is false).</p>
35: *
36: * @param tableHeader the table header component, may be used to provide contextual information. Default implementation ignores it.
37: * @param column the column index.
38: * @param value the value to render.
39: * @param isSelected true if the column is selected.
40: * @param hasFocus true if the column has the focus.
41: * @param columnContentElem the table column content element to render the value into.
42: * Is a hint, if provided should be obtained by calling <code>tableHeader.getItsNatTableHeaderUI().getColumnContentElementAt(column)</code>.
43: * @param isNew true if this is the first time the markup is rendered. Default implementation ignores this parameter.
44: */
45: public void renderTableHeaderCell(ItsNatTableHeader tableHeader,
46: int column, Object value, boolean isSelected,
47: boolean hasFocus, Element columnContentElem, boolean isNew);
48:
49: /**
50: * Unrenders the markup of the specified header column. This method is called <i>before</i> the markup
51: * is removed.
52: *
53: * <p>Default implementation does nothing.</p>
54: *
55: * @param tableHeader the table header component, may be used to provide contextual information. Default implementation ignores it.
56: * @param column the column index.
57: * @param columnContentElem the table column content element to render the value into.
58: * Is a hint, if provided should be obtained by calling <code>tableHeader.getItsNatTableHeaderUI().getColumnContentElementAt(column)</code>.
59: */
60: public void unrenderTableHeaderCell(ItsNatTableHeader tableHeader,
61: int column, Element columnContentElem);
62: }
|