Search in sources :

Example 6 with CMNode

use of org.eclipse.wst.dtd.core.internal.CMNode in project webtools.sourceediting by eclipse.

the class DTDVisitor method visitElement.

public void visitElement(Element element) {
    CMNode content = element.getContentModel();
    visitContentNode(content);
    visitAttributes(element.getElementAttributes());
}
Also used : CMNode(org.eclipse.wst.dtd.core.internal.CMNode)

Example 7 with CMNode

use of org.eclipse.wst.dtd.core.internal.CMNode in project webtools.sourceediting by eclipse.

the class DTDContextMenuHelper method addActionItemsForSelection.

void addActionItemsForSelection(Object selectedObject, IMenuManager menu) {
    if (selectedObject instanceof NodeList) {
        // add appropriate menu to logical view
        NodeList folder = (NodeList) selectedObject;
        if (folder.getListType().equals(DTDRegionTypes.NOTATION_TAG)) {
            menu.add(addNotationAction);
        } else if (folder.getListType().equals(DTDRegionTypes.ENTITY_TAG)) {
            menu.add(addEntityAction);
        } else if (folder.getListType().equals(DTDRegionTypes.ELEMENT_TAG)) {
            LabelValuePair[] availableEntities = fModel.createParmEntityContentItems(null);
            addParameterEntityReferenceAction.setEnabled(availableEntities.length > 0);
            menu.add(addElementAction);
            menu.add(addParameterEntityReferenceAction);
        } else if (folder.getListType().equals(DTDRegionTypes.ATTLIST_TAG)) {
            menu.add(addAttributeListAction);
        }
    }
    if (selectedObject instanceof DTDFile || selectedObject == null) {
        LabelValuePair[] availableEntities = fModel.createParmEntityContentItems(null);
        addParameterEntityReferenceAction.setEnabled(availableEntities.length > 0);
        menu.add(addElementAction);
        menu.add(addEntityAction);
        menu.add(addNotationAction);
        menu.add(addParameterEntityReferenceAction);
        menu.add(addCommentAction);
        menu.add(addAttributeListAction);
        menu.add(new Separator());
    }
    if (selectedObject instanceof Element) {
        Element dtdElement = (Element) selectedObject;
        CMNode contentModel = dtdElement.getContentModel();
        if (contentModel == null) {
            menu.add(addGroupToContentModelAction);
            menu.add(addElementToContentModelAction);
        } else if (contentModel != null && CMNode.EMPTY.equals(contentModel.getType())) {
            menu.add(replaceEmptyContentModelWithGroupAction);
        }
        menu.add(addAttributeAction);
    } else if (selectedObject instanceof CMGroupNode) {
        menu.add(addElementToContentModelAction);
        menu.add(addGroupToContentModelAction);
    } else if (selectedObject instanceof AttributeList) {
        menu.add(addAttributeAction);
    }
    menu.add(new Separator());
    addEditActions(menu);
    menu.add(new Separator());
    if (selectedObject instanceof DTDNode && !(selectedObject instanceof CMNode && ((CMNode) selectedObject).isRootElementContent())) {
        menu.add(deleteAction);
        deleteAction.setEnabled(true);
    }
}
Also used : DTDNode(org.eclipse.wst.dtd.core.internal.DTDNode) LabelValuePair(org.eclipse.wst.dtd.core.internal.util.LabelValuePair) AttributeList(org.eclipse.wst.dtd.core.internal.AttributeList) NodeList(org.eclipse.wst.dtd.core.internal.NodeList) Element(org.eclipse.wst.dtd.core.internal.Element) CMNode(org.eclipse.wst.dtd.core.internal.CMNode) CMGroupNode(org.eclipse.wst.dtd.core.internal.CMGroupNode) DTDFile(org.eclipse.wst.dtd.core.internal.DTDFile) Separator(org.eclipse.jface.action.Separator)

Aggregations

CMNode (org.eclipse.wst.dtd.core.internal.CMNode)7 DTDNode (org.eclipse.wst.dtd.core.internal.DTDNode)5 CMGroupNode (org.eclipse.wst.dtd.core.internal.CMGroupNode)4 Element (org.eclipse.wst.dtd.core.internal.Element)4 Iterator (java.util.Iterator)2 CMBasicNode (org.eclipse.wst.dtd.core.internal.CMBasicNode)2 DTDFile (org.eclipse.wst.dtd.core.internal.DTDFile)2 Separator (org.eclipse.jface.action.Separator)1 Attribute (org.eclipse.wst.dtd.core.internal.Attribute)1 AttributeList (org.eclipse.wst.dtd.core.internal.AttributeList)1 Entity (org.eclipse.wst.dtd.core.internal.Entity)1 NodeList (org.eclipse.wst.dtd.core.internal.NodeList)1 TopLevelNode (org.eclipse.wst.dtd.core.internal.TopLevelNode)1 LabelValuePair (org.eclipse.wst.dtd.core.internal.util.LabelValuePair)1