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.core.domutil;
15:
16: import org.w3c.dom.Element;
17:
18: /**
19: * Is used to render values as markup into DOM elements.
20: *
21: * @see org.itsnat.core.ItsNatDocument#createDefaultElementRenderer()
22: * @author Jose Maria Arranz Santamaria
23: */
24: public interface ElementRenderer {
25: /**
26: * Renders as markup the specified value into the specified element, usually
27: * as a text node.
28: *
29: * <p>Default implementation renders the specified value inside the first text node found below the
30: * specified element.</p>
31: *
32: * @param userObj a context object used to provide contextual information. Default implementation ignores it.
33: * @param value the value to render.
34: * @param elem the element to render the value into.
35: * @param isNew true if this is the first time the markup is rendered. Default implementation ignores this parameter.
36: */
37: public void render(Object userObj, Object value, Element elem,
38: boolean isNew);
39:
40: /**
41: * Unrenders the markup used to render previously. This method is called <i>before</i> the markup
42: * is removed.
43: *
44: * <p>Default implementation does nothing.</p>
45: *
46: * @param userObj a context object used to provide contextual information. Default implementation ignores it.
47: * @param elem the element to render the value into.
48: */
49: public void unrender(Object userObj, Element elem);
50: }
|