intial source from ttp://www.sf.net/projects/wdte
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.css.core / src / net / sourceforge / phpeclipse / css / core / profiles / Css1Profile.java
1 /*
2  * Copyright (c) 2003-2004 Christopher Lenz and others.
3  * All rights reserved. This program and the accompanying materials 
4  * are made available under the terms of the Common Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/cpl-v10.html
7  * 
8  * Contributors:
9  *     Christopher Lenz - initial API and implementation
10  * 
11  * $Id: Css1Profile.java,v 1.1 2004-09-02 18:07:14 jsurfer Exp $
12  */
13
14 package net.sourceforge.phpeclipse.css.core.profiles;
15
16 import net.sourceforge.phpeclipse.css.core.internal.CssCoreMessages;
17
18 /**
19  * Implementation of the CSS Level 1 profile
20  * (<a href="http://www.w3.org/TR/CSS1">http://www.w3.org/TR/CSS1</a>).
21  */
22 public class Css1Profile extends AbstractProfile {
23
24         // Constants ---------------------------------------------------------------
25
26         protected static final String CATEGORY_BOX =
27                 CssCoreMessages.getString("CssProfile.category.box"); //$NON-NLS-1$
28         protected static final String CATEGORY_COLOR_BACKGROUND =
29                 CssCoreMessages.getString(
30                         "CssProfile.category.colorAndBackground"); //$NON-NLS-1$
31         protected static final String CATEGORY_FONT =
32                 CssCoreMessages.getString("CssProfile.category.font"); //$NON-NLS-1$
33         protected static final String CATEGORY_TEXT =
34                 CssCoreMessages.getString("CssProfile.category.text"); //$NON-NLS-1$
35         protected static final String CATEGORY_VISUAL_FORMATTING =
36                 CssCoreMessages.getString(
37                         "CssProfile.category.visualFormatting"); //$NON-NLS-1$
38
39         // Constructors ------------------------------------------------------------
40
41         public Css1Profile(IProfileDescriptor descriptor) {
42                 super(descriptor);
43                 initializeAtKeywords();
44                 initializeProperties();
45                 initializePseudoClasses();
46         }
47
48         // Private Methods ---------------------------------------------------------
49
50         private void initializeAtKeywords() {
51                 addAtKeyword("import"); //$NON-NLS-1$
52         }
53
54         private void initializeProperties() {
55                 addProperty("font", CATEGORY_FONT, true); //$NON-NLS-1$
56                 addProperty("font-family", CATEGORY_FONT); //$NON-NLS-1$
57                 addProperty("font-size", CATEGORY_FONT); //$NON-NLS-1$
58                 addProperty("font-style", CATEGORY_FONT); //$NON-NLS-1$
59                 addProperty("font-variant", CATEGORY_FONT); //$NON-NLS-1$
60                 addProperty("font-weight", CATEGORY_FONT); //$NON-NLS-1$
61                 addProperty("background", //$NON-NLS-1$
62                         CATEGORY_COLOR_BACKGROUND, true);
63                 addProperty("background-attachment", //$NON-NLS-1$
64                         CATEGORY_COLOR_BACKGROUND);
65                 addProperty("background-color", //$NON-NLS-1$
66                         CATEGORY_COLOR_BACKGROUND);
67                 addProperty("background-image", //$NON-NLS-1$
68                         CATEGORY_COLOR_BACKGROUND);
69                 addProperty("background-position", //$NON-NLS-1$
70                         CATEGORY_COLOR_BACKGROUND);
71                 addProperty("background-repeat", //$NON-NLS-1$
72                         CATEGORY_COLOR_BACKGROUND);
73                 addProperty("color", CATEGORY_COLOR_BACKGROUND); //$NON-NLS-1$
74                 addProperty("border", CATEGORY_BOX, true); //$NON-NLS-1$
75                 addProperty("border-bottom", CATEGORY_BOX, true); //$NON-NLS-1$
76                 addProperty("border-bottom-width", CATEGORY_BOX); //$NON-NLS-1$
77                 addProperty("border-color", CATEGORY_BOX); //$NON-NLS-1$
78                 addProperty("border-left", CATEGORY_BOX, true); //$NON-NLS-1$
79                 addProperty("border-left-width", CATEGORY_BOX); //$NON-NLS-1$
80                 addProperty("border-right", CATEGORY_BOX, true); //$NON-NLS-1$
81                 addProperty("border-right-width", CATEGORY_BOX); //$NON-NLS-1$
82                 addProperty("border-style", CATEGORY_BOX); //$NON-NLS-1$
83                 addProperty("border-top", CATEGORY_BOX, true); //$NON-NLS-1$
84                 addProperty("border-top-width", CATEGORY_BOX); //$NON-NLS-1$
85                 addProperty("border-width", CATEGORY_BOX); //$NON-NLS-1$
86                 addProperty("clear", CATEGORY_BOX); //$NON-NLS-1$
87                 addProperty("float", CATEGORY_BOX); //$NON-NLS-1$
88                 addProperty("height", CATEGORY_BOX); //$NON-NLS-1$
89                 addProperty("margin", CATEGORY_BOX, true); //$NON-NLS-1$
90                 addProperty("margin-bottom", CATEGORY_BOX); //$NON-NLS-1$
91                 addProperty("margin-left", CATEGORY_BOX); //$NON-NLS-1$
92                 addProperty("margin-right", CATEGORY_BOX); //$NON-NLS-1$
93                 addProperty("margin-top", CATEGORY_BOX); //$NON-NLS-1$
94                 addProperty("padding", CATEGORY_BOX, true); //$NON-NLS-1$
95                 addProperty("padding-bottom", CATEGORY_BOX); //$NON-NLS-1$
96                 addProperty("padding-left", CATEGORY_BOX); //$NON-NLS-1$
97                 addProperty("padding-right", CATEGORY_BOX); //$NON-NLS-1$
98                 addProperty("padding-top", CATEGORY_BOX); //$NON-NLS-1$
99                 addProperty("width", CATEGORY_BOX); //$NON-NLS-1$
100                 addProperty("letter-spacing", CATEGORY_TEXT); //$NON-NLS-1$
101                 addProperty("line-height", CATEGORY_TEXT); //$NON-NLS-1$
102                 addProperty("text-align", CATEGORY_TEXT); //$NON-NLS-1$
103                 addProperty("text-decoration", CATEGORY_TEXT); //$NON-NLS-1$
104                 addProperty("text-indent", CATEGORY_TEXT); //$NON-NLS-1$
105                 addProperty("text-transform", CATEGORY_TEXT); //$NON-NLS-1$
106                 addProperty("vertical-align", CATEGORY_TEXT); //$NON-NLS-1$
107                 addProperty("white-space", CATEGORY_TEXT); //$NON-NLS-1$
108                 addProperty("word-spacing", CATEGORY_TEXT); //$NON-NLS-1$
109                 addProperty("display", //$NON-NLS-1$
110                         CATEGORY_VISUAL_FORMATTING);
111                 addProperty("list-style", //$NON-NLS-1$
112                         CATEGORY_VISUAL_FORMATTING, true);
113                 addProperty("list-style-image", //$NON-NLS-1$
114                         CATEGORY_VISUAL_FORMATTING);
115                 addProperty("list-style-position", //$NON-NLS-1$
116                         CATEGORY_VISUAL_FORMATTING);
117                 addProperty("list-style-type", //$NON-NLS-1$
118                         CATEGORY_VISUAL_FORMATTING);
119         }
120
121         private void initializePseudoClasses() {
122                 addPseudoClass("active"); //$NON-NLS-1$
123                 addPseudoClass("first-letter"); //$NON-NLS-1$
124                 addPseudoClass("first-line"); //$NON-NLS-1$
125                 addPseudoClass("link"); //$NON-NLS-1$
126                 addPseudoClass("visited"); //$NON-NLS-1$
127         }
128
129 }