01: /*
02: * Copyright 2000,2005 wingS development team.
03: *
04: * This file is part of wingS (http://wingsframework.org).
05: *
06: * wingS is free software; you can redistribute it and/or modify
07: * it under the terms of the GNU Lesser General Public License
08: * as published by the Free Software Foundation; either version 2.1
09: * of the License, or (at your option) any later version.
10: *
11: * Please see COPYING for the complete licence.
12: */
13: package org.wings.style;
14:
15: import org.wings.Renderable;
16:
17: import java.io.Serializable;
18: import java.util.*;
19:
20: /**
21: * A CSS Style definition.
22: *
23: * <p>A Style is collection of CSS property/value pairs that are applied to a specified component or component
24: * element. This target is defined by the CSS selector.
25: * <p>So this object can be understood as the OO equivalent of a CSS style definition likw i.e.<br/>
26: * <code> A.myStyle { color: red; background: #fff; }</code><br/>
27: * which consists of a CSS selector before the braces and the CSS property/value list inside the braces.
28: *
29: * @author <a href="mailto:engels@mercatis.de">Holger Engels</a>
30: * @author <a href="mailto:B.Schmid@eXXcellent.de">Benjamin Schmid</a>
31: */
32: public interface Style extends Renderable, Serializable, Cloneable {
33:
34: /**
35: * A object defining on what this styles applies to.
36: * @return The CSS selector which defines to which elements this style applies to.
37: */
38: Selector getSelector();
39:
40: /**
41: * Defines a CSS property/value pair in this style.
42: * @return The previous style property value.
43: */
44: String put(CSSProperty styleProperty, String styleValue);
45:
46: /**
47: * Adds a set of CSS property/value pairs to this style definition.
48: *
49: * @param attributes Set of CSS property/value pairs to add to this style definition
50: * @return <code>true</code> if the style was changed, <code>false</code> if no modification was necessary
51: */
52: boolean putAll(CSSAttributeSet attributes);
53:
54: /**
55: * Removes an attribute from the list.
56: *
57: * @param name the attribute name
58: * @return The previous value for this CSS property
59: */
60: String remove(CSSProperty name);
61:
62: /**
63: * Gets the Map of defined CSS properties.
64: *
65: * @return the map of CSS properties
66: */
67: Map<CSSProperty, String> properties();
68:
69: }
70:
71: // We don't need the backlink.
72: /* *
73: * The style sheet owning this style.
74: * @param sheet The style sheet owning this style.
75: * /
76: void setSheet(StyleSheet sheet);
77:
78: /* *
79: * @return The style sheet owning this style.
80: * /
81: StyleSheet getSheet();
82: */
|