Search in sources :

Example 6 with CSSMMNode

use of org.eclipse.wst.css.core.internal.metamodel.CSSMMNode in project webtools.sourceediting by eclipse.

the class CSSMetaModelTest method testDisplayPropertyValues2r1.

public void testDisplayPropertyValues2r1() {
    CSSMetaModel model = CSSProfileRegistry.getInstance().getDefaultProfile().getMetaModel();
    if (model != null) {
        CSSMetaModelUtil util = new CSSMetaModelUtil(model);
        CSSMMProperty property = util.getProperty(PropCMProperty.P_DISPLAY);
        Iterator it = property.getValues();
        Set set = new HashSet(1);
        set.add(IValID.V_INLINE_BLOCK);
        while (it.hasNext()) {
            CSSMMNode node = (CSSMMNode) it.next();
            if (set.contains(node.getName())) {
                assertEquals("Property should be a keyword", CSSMMNode.TYPE_KEYWORD, node.getType());
                set.remove(node.getName());
            }
        }
        assertTrue("The content property is missing values added for CSS 2 revision 1.", set.isEmpty());
    }
}
Also used : CSSMMNode(org.eclipse.wst.css.core.internal.metamodel.CSSMMNode) HashSet(java.util.HashSet) Set(java.util.Set) CSSMetaModelUtil(org.eclipse.wst.css.core.internal.metamodel.util.CSSMetaModelUtil) CSSMMProperty(org.eclipse.wst.css.core.internal.metamodel.CSSMMProperty) CSSMetaModel(org.eclipse.wst.css.core.internal.metamodel.CSSMetaModel) Iterator(java.util.Iterator) HashSet(java.util.HashSet)

Example 7 with CSSMMNode

use of org.eclipse.wst.css.core.internal.metamodel.CSSMMNode in project webtools.sourceediting by eclipse.

the class CSSMetaModelTest method testWhitespacePropertyValues2r1.

public void testWhitespacePropertyValues2r1() {
    CSSMetaModel model = CSSProfileRegistry.getInstance().getDefaultProfile().getMetaModel();
    if (model != null) {
        CSSMetaModelUtil util = new CSSMetaModelUtil(model);
        CSSMMProperty property = util.getProperty(PropCMProperty.P_WHITE_SPACE);
        Iterator it = property.getValues();
        Set set = new HashSet(1);
        set.add(IValID.V_PRE_LINE);
        set.add(IValID.V_PRE_WRAP);
        while (it.hasNext()) {
            CSSMMNode node = (CSSMMNode) it.next();
            if (set.contains(node.getName())) {
                assertEquals("Property should be a keyword", CSSMMNode.TYPE_KEYWORD, node.getType());
                set.remove(node.getName());
            }
        }
        assertTrue("The content property is missing values added for CSS 2 revision 1.", set.isEmpty());
    }
}
Also used : CSSMMNode(org.eclipse.wst.css.core.internal.metamodel.CSSMMNode) HashSet(java.util.HashSet) Set(java.util.Set) CSSMetaModelUtil(org.eclipse.wst.css.core.internal.metamodel.util.CSSMetaModelUtil) CSSMMProperty(org.eclipse.wst.css.core.internal.metamodel.CSSMMProperty) CSSMetaModel(org.eclipse.wst.css.core.internal.metamodel.CSSMetaModel) Iterator(java.util.Iterator) HashSet(java.util.HashSet)

Example 8 with CSSMMNode

use of org.eclipse.wst.css.core.internal.metamodel.CSSMMNode in project webtools.sourceediting by eclipse.

the class CSSProposalGeneratorForDeclarationValue method getCandidates.

/**
 * getCandidates method comment.
 */
protected Iterator getCandidates() {
    List candidates = new ArrayList();
    // check should add semi-colon or not
    checkSemiColon();
    String name = getPropertyName();
    if (name != null) {
        CSSMetaModelUtil util = new CSSMetaModelUtil(fContext.getMetaModel());
        Iterator i = Collections.EMPTY_LIST.iterator();
        if (isFontFaceRule()) {
            CSSMMDescriptor desc = util.getDescriptor(name);
            if (desc != null) {
                i = desc.getValues();
            }
        } else {
            CSSMMProperty prop = util.getProperty(name);
            if (prop != null) {
                i = prop.getValues();
            }
        }
        while (i.hasNext()) {
            CSSMMNode val = (CSSMMNode) i.next();
            String valueType = val.getType();
            if (valueType == CSSMMNode.TYPE_KEYWORD) {
                addString(candidates, val.toString());
            } else if (valueType == CSSMMNode.TYPE_NUMBER) {
                addNumber(candidates, (CSSMMNumber) val);
            } else if (valueType == CSSMMNode.TYPE_FUNCTION) {
                addFunction(candidates, (CSSMMFunction) val);
            }
        }
    }
    addImportant(candidates);
    addSemiColon(candidates);
    return candidates.iterator();
}
Also used : CSSMMNode(org.eclipse.wst.css.core.internal.metamodel.CSSMMNode) CSSMetaModelUtil(org.eclipse.wst.css.core.internal.metamodel.util.CSSMetaModelUtil) CSSMMProperty(org.eclipse.wst.css.core.internal.metamodel.CSSMMProperty) ArrayList(java.util.ArrayList) RegionIterator(org.eclipse.wst.css.core.internal.util.RegionIterator) Iterator(java.util.Iterator) ArrayList(java.util.ArrayList) List(java.util.List) CSSMMDescriptor(org.eclipse.wst.css.core.internal.metamodel.CSSMMDescriptor) CSSMMNumber(org.eclipse.wst.css.core.internal.metamodel.CSSMMNumber)

Example 9 with CSSMMNode

use of org.eclipse.wst.css.core.internal.metamodel.CSSMMNode in project webtools.sourceediting by eclipse.

the class CSSProposalGeneratorForDeclarationName method getCandidates.

/**
 * getCandidates method comment.
 */
protected Iterator getCandidates() {
    List candidates = new ArrayList();
    Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
    // $NON-NLS-1$
    String preDelim = "";
    for (int i = 0; i < preferences.getInt(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM); i++) {
        // $NON-NLS-1$
        preDelim += ' ';
    }
    // $NON-NLS-1$
    String postDelim = "";
    for (int i = 0; i < preferences.getInt(CSSCorePreferenceNames.FORMAT_PROP_POST_DELIM); i++) {
        // $NON-NLS-1$
        postDelim += ' ';
    }
    ICSSNode targetNode = fContext.getTargetNode();
    boolean bFontRule = false;
    for (ICSSNode node = targetNode; node != null; node = node.getParentNode()) {
        if (node instanceof org.w3c.dom.css.CSSFontFaceRule) {
            bFontRule = true;
            break;
        }
    }
    List names = new ArrayList();
    CSSMetaModelUtil util = new CSSMetaModelUtil(fContext.getMetaModel());
    Iterator iNames = util.collectNodesByType((bFontRule) ? CSSMMNode.TYPE_DESCRIPTOR : CSSMMNode.TYPE_PROPERTY);
    while (iNames.hasNext()) {
        CSSMMNode node = (CSSMMNode) iNames.next();
        names.add(node);
    }
    sortNames(names);
    // Collections.sort(names);
    boolean bAddColon = true;
    if ((targetNode instanceof ICSSStyleRule || targetNode instanceof ICSSStyleDeclItem || targetNode instanceof ICSSStyleDeclaration) && fContext.targetHas(CSSRegionContexts.CSS_DECLARATION_SEPARATOR)) {
        bAddColon = false;
    }
    Iterator i = names.iterator();
    while (i.hasNext()) {
        CSSMMNode node = (CSSMMNode) i.next();
        String text = node.getName();
        text = (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER) ? text.toUpperCase() : text.toLowerCase();
        if (!isMatch(text)) {
            continue;
        }
        int cursorPos = 0;
        StringBuffer buf = new StringBuffer();
        buf.append(text);
        buf.append(preDelim);
        cursorPos = buf.length();
        if (bAddColon) {
            // $NON-NLS-1$
            buf.append(':');
            buf.append(postDelim);
            cursorPos += 1 + postDelim.length();
        }
        // if (! (targetNode instanceof ICSSStyleDeclItem)) {
        // buf.append(';');//$NON-NLS-1$
        // }
        CSSCACandidate item = new CSSCACandidate();
        item.setReplacementString(buf.toString());
        item.setCursorPosition(cursorPos);
        item.setDisplayString(text);
        item.setMMNode(node);
        item.setImageType(getCategoryImageType(node));
        candidates.add(item);
    }
    return candidates.iterator();
}
Also used : CSSMetaModelUtil(org.eclipse.wst.css.core.internal.metamodel.util.CSSMetaModelUtil) ICSSStyleDeclaration(org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration) ArrayList(java.util.ArrayList) ICSSNode(org.eclipse.wst.css.core.internal.provisional.document.ICSSNode) ICSSStyleRule(org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule) CSSMMNode(org.eclipse.wst.css.core.internal.metamodel.CSSMMNode) ICSSStyleDeclItem(org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem) Iterator(java.util.Iterator) ArrayList(java.util.ArrayList) List(java.util.List) Preferences(org.eclipse.core.runtime.Preferences)

Example 10 with CSSMMNode

use of org.eclipse.wst.css.core.internal.metamodel.CSSMMNode in project webtools.sourceediting by eclipse.

the class ProfileHandler method endDocument.

public void endDocument() throws SAXException {
    new ErrorCorrector().doCorrect(fMetaModel);
    if (fLogging) {
        Iterator i = fNodePool.getStrayNodes();
        while (i.hasNext()) {
            CSSMMNode node = (CSSMMNode) i.next();
            // $NON-NLS-1$
            String str = "[CSSProfile Warning] " + node.getName();
            // $NON-NLS-1$ //$NON-NLS-2$
            str += "(" + node.getType() + ") is not referred by any node.";
            Logger.log(Logger.WARNING, str);
        // System.out.println(str);
        }
    }
}
Also used : CSSMMNode(org.eclipse.wst.css.core.internal.metamodel.CSSMMNode) Iterator(java.util.Iterator)

Aggregations

Iterator (java.util.Iterator)14 CSSMMNode (org.eclipse.wst.css.core.internal.metamodel.CSSMMNode)14 CSSMetaModelUtil (org.eclipse.wst.css.core.internal.metamodel.util.CSSMetaModelUtil)8 ArrayList (java.util.ArrayList)6 HashSet (java.util.HashSet)6 List (java.util.List)6 Set (java.util.Set)6 CSSMMProperty (org.eclipse.wst.css.core.internal.metamodel.CSSMMProperty)6 CSSMetaModel (org.eclipse.wst.css.core.internal.metamodel.CSSMetaModel)6 ICSSNode (org.eclipse.wst.css.core.internal.provisional.document.ICSSNode)4 ICSSStyleDeclItem (org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem)3 HashMap (java.util.HashMap)2 ICSSStyleDeclaration (org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration)2 ICSSStyleRule (org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule)2 Map (java.util.Map)1 Preferences (org.eclipse.core.runtime.Preferences)1 IPropertyDescriptor (org.eclipse.ui.views.properties.IPropertyDescriptor)1 CSSMMCategory (org.eclipse.wst.css.core.internal.metamodel.CSSMMCategory)1 CSSMMDescriptor (org.eclipse.wst.css.core.internal.metamodel.CSSMMDescriptor)1 CSSMMNumber (org.eclipse.wst.css.core.internal.metamodel.CSSMMNumber)1