Search in sources :

Example 11 with DTDFile

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

the class DragTopLevelNodesCommand method execute.

public void execute() {
    DTDNode referenceNode = (DTDNode) target;
    DTDFile dtdFile = referenceNode.getDTDFile();
    dtdFile.getDTDModel().beginRecording(this, sources.size() > 1 ? moveNodes : moveNode);
    Iterator iter = sources.iterator();
    while (iter.hasNext()) {
        DTDNode node = (DTDNode) iter.next();
        if (node instanceof TopLevelNode) {
            dtdFile.moveNode(this, referenceNode, node, isAfter());
        }
    }
    dtdFile.getDTDModel().endRecording(this);
}
Also used : DTDNode(org.eclipse.wst.dtd.core.internal.DTDNode) Iterator(java.util.Iterator) TopLevelNode(org.eclipse.wst.dtd.core.internal.TopLevelNode) DTDFile(org.eclipse.wst.dtd.core.internal.DTDFile)

Example 12 with DTDFile

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

the class DTDSectionLabelProvider method getImage.

/**
 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
 */
public Image getImage(Object object) {
    if (object == null || object.equals(StructuredSelection.EMPTY)) {
        return null;
    }
    Image result = null;
    Object selected = object;
    if (object instanceof IStructuredSelection) {
        selected = ((IStructuredSelection) object).getFirstElement();
    }
    if (selected instanceof DTDFile) {
        // ((DTDFile) selected).getImage();
        return null;
    } else if (selected instanceof DTDNode) {
        if (selected instanceof ParameterEntityReference)
            return null;
        final String imgPath = ((DTDNode) selected).getImagePath();
        return imgPath != null ? DTDUIPlugin.getDefault().getImage(imgPath) : null;
    } else if (selected instanceof org.w3c.dom.Element) {
        return null;
    }
    return result;
}
Also used : ParameterEntityReference(org.eclipse.wst.dtd.core.internal.ParameterEntityReference) DTDNode(org.eclipse.wst.dtd.core.internal.DTDNode) Element(org.eclipse.wst.dtd.core.internal.Element) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) Image(org.eclipse.swt.graphics.Image) DTDFile(org.eclipse.wst.dtd.core.internal.DTDFile)

Example 13 with DTDFile

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

the class DTDSectionLabelProvider method getText.

/**
 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
 */
public String getText(Object object) {
    if (object == null || object.equals(StructuredSelection.EMPTY)) {
        return null;
    }
    Object selected = object;
    if (object instanceof IStructuredSelection) {
        selected = ((IStructuredSelection) object).getFirstElement();
    }
    if (selected instanceof DTDFile) {
        return ((DTDFile) selected).getName();
    } else if (selected instanceof CMBasicNode) {
        if (((CMBasicNode) selected).isReference())
            return DTDPropertiesMessages._UI_PROPERTIES_VIEW_TITLE_ELEMENT_REF;
        else
            return ((CMBasicNode) selected).getName();
    } else if (selected instanceof CMRepeatableNode) {
        CMRepeatableNode node = (CMRepeatableNode) selected;
        String name = node.getName();
        if (node instanceof CMGroupNode) {
            if (((CMGroupNode) node).getConnector() == CMGroupNode.CHOICE)
                name = DTDPropertiesMessages.DTDSectionLabelProvider_0;
            else
                name = DTDPropertiesMessages.DTDSectionLabelProvider_1;
        }
        char occurrence = node.getOccurrence();
        switch(occurrence) {
            case CMRepeatableNode.ONCE:
                // $NON-NLS-1$
                name += " [1..1]";
                break;
            case CMRepeatableNode.OPTIONAL:
                // $NON-NLS-1$
                name += " [0..1]";
                break;
            case CMRepeatableNode.ONE_OR_MORE:
                // $NON-NLS-1$
                name += " [1..*]";
                break;
            case CMRepeatableNode.ZERO_OR_MORE:
                // $NON-NLS-1$
                name += " [0..*]";
                break;
        }
        return name;
    } else if (selected instanceof DTDNode) {
        if (selected instanceof Element)
            return DTDPropertiesMessages.DTDSectionLabelProvider_6;
        else if (selected instanceof Attribute)
            return DTDPropertiesMessages.DTDSectionLabelProvider_7;
        else if (selected instanceof AttributeList)
            return DTDPropertiesMessages.DTDSectionLabelProvider_8;
        else if (selected instanceof Comment)
            return DTDPropertiesMessages.DTDSectionLabelProvider_9;
        else if (selected instanceof Entity)
            return DTDPropertiesMessages.DTDSectionLabelProvider_10;
        else if (selected instanceof Notation)
            return DTDPropertiesMessages.DTDSectionLabelProvider_11;
        else if (selected instanceof ParameterEntityReference)
            // return "parameter entity reference";
            return null;
        else
            return ((DTDNode) selected).getName();
    } else if (selected instanceof org.w3c.dom.Element) {
        return ((org.w3c.dom.Element) selected).getLocalName();
    } else if (object instanceof ITextSelection) {
        // $NON-NLS-1$
        return "";
    } else
        return object.toString();
}
Also used : Comment(org.eclipse.wst.dtd.core.internal.Comment) Entity(org.eclipse.wst.dtd.core.internal.Entity) CMRepeatableNode(org.eclipse.wst.dtd.core.internal.CMRepeatableNode) Attribute(org.eclipse.wst.dtd.core.internal.Attribute) AttributeList(org.eclipse.wst.dtd.core.internal.AttributeList) Element(org.eclipse.wst.dtd.core.internal.Element) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) CMGroupNode(org.eclipse.wst.dtd.core.internal.CMGroupNode) Notation(org.eclipse.wst.dtd.core.internal.Notation) DTDFile(org.eclipse.wst.dtd.core.internal.DTDFile) ITextSelection(org.eclipse.jface.text.ITextSelection) ParameterEntityReference(org.eclipse.wst.dtd.core.internal.ParameterEntityReference) DTDNode(org.eclipse.wst.dtd.core.internal.DTDNode) CMBasicNode(org.eclipse.wst.dtd.core.internal.CMBasicNode)

Example 14 with DTDFile

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

the class DTDModelUpdater method objectAboutToBeDeleted.

public synchronized void objectAboutToBeDeleted(Object requestor, DTDNode node) {
    if (isUpdating) {
        return;
    }
    if (!(node instanceof Entity || node instanceof Element)) {
        // just ignore if it is not one of these
        return;
    }
    if (node instanceof Entity && !((Entity) node).isParameterEntity()) {
        // if it is not a parameter entity, ignore as well
        return;
    }
    isUpdating = true;
    this.requestor = requestor;
    this.nodeToDelete = node;
    oldRefName = node.getName();
    isParmEntity = false;
    nodesToDelete.clear();
    if (node instanceof Entity) {
        isParmEntity = true;
        // $NON-NLS-1$ //$NON-NLS-2$
        oldRefName = "%" + oldRefName + ";";
    }
    DTDFile dtdFile = node.getDTDFile();
    visit(dtdFile);
    for (int i = 0; i < nodesToDelete.size(); i++) {
        dtdFile.deleteNode(requestor, (DTDNode) nodesToDelete.get(i));
    }
    isUpdating = false;
}
Also used : Entity(org.eclipse.wst.dtd.core.internal.Entity) Element(org.eclipse.wst.dtd.core.internal.Element) DTDFile(org.eclipse.wst.dtd.core.internal.DTDFile)

Example 15 with DTDFile

use of org.eclipse.wst.dtd.core.internal.DTDFile 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

DTDFile (org.eclipse.wst.dtd.core.internal.DTDFile)18 DTDNode (org.eclipse.wst.dtd.core.internal.DTDNode)13 Element (org.eclipse.wst.dtd.core.internal.Element)9 Iterator (java.util.Iterator)5 AttributeList (org.eclipse.wst.dtd.core.internal.AttributeList)5 NodeList (org.eclipse.wst.dtd.core.internal.NodeList)5 Entity (org.eclipse.wst.dtd.core.internal.Entity)4 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)3 CMGroupNode (org.eclipse.wst.dtd.core.internal.CMGroupNode)3 Notation (org.eclipse.wst.dtd.core.internal.Notation)3 ParameterEntityReference (org.eclipse.wst.dtd.core.internal.ParameterEntityReference)3 ArrayList (java.util.ArrayList)2 List (java.util.List)2 AbstractTreeViewer (org.eclipse.jface.viewers.AbstractTreeViewer)2 Image (org.eclipse.swt.graphics.Image)2 Attribute (org.eclipse.wst.dtd.core.internal.Attribute)2 CMNode (org.eclipse.wst.dtd.core.internal.CMNode)2 Comment (org.eclipse.wst.dtd.core.internal.Comment)2 Separator (org.eclipse.jface.action.Separator)1 ITextSelection (org.eclipse.jface.text.ITextSelection)1