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
9 * Christopher Lenz - initial API and implementation
11 * $Id: Css1Profile.java,v 1.1 2004-09-02 18:07:14 jsurfer Exp $
14 package net.sourceforge.phpeclipse.css.core.profiles;
16 import net.sourceforge.phpeclipse.css.core.internal.CssCoreMessages;
19 * Implementation of the CSS Level 1 profile
20 * (<a href="http://www.w3.org/TR/CSS1">http://www.w3.org/TR/CSS1</a>).
22 public class Css1Profile extends AbstractProfile {
24 // Constants ---------------------------------------------------------------
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$
39 // Constructors ------------------------------------------------------------
41 public Css1Profile(IProfileDescriptor descriptor) {
43 initializeAtKeywords();
44 initializeProperties();
45 initializePseudoClasses();
48 // Private Methods ---------------------------------------------------------
50 private void initializeAtKeywords() {
51 addAtKeyword("import"); //$NON-NLS-1$
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);
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$