use of org.eclipse.wst.dtd.core.internal.CMNode in project webtools.sourceediting by eclipse.
the class ReplaceEmptyContentModelWithGroupAction method run.
public void run() {
DTDNode node = getFirstNodeSelected();
if (node instanceof Element) {
CMNode contentModel = ((Element) node).getContentModel();
if (CMNode.EMPTY.equals(contentModel.getType())) {
getModel().beginRecording(this, getText());
// $NON-NLS-1$
((Element) node).replaceContentModel(this, "()");
getModel().endRecording(this);
}
}
}
use of org.eclipse.wst.dtd.core.internal.CMNode in project webtools.sourceediting by eclipse.
the class DTDDragAndDropManager method createCommand.
public DragAndDropCommand createCommand(Object target, float location, int operations, int operation, Collection source) {
if (target instanceof DTDNode) {
DTDNode node = (DTDNode) target;
source = mergeSource(source);
if (node instanceof TopLevelNode) {
return new DragTopLevelNodesCommand(target, location, operations, operation, source);
}
if (node instanceof Attribute) {
return new DragAttributeCommand(target, location, operations, operation, source);
}
if (node instanceof CMNode) {
return new DragContentModelCommand(target, location, operations, operation, source);
}
}
return null;
}
use of org.eclipse.wst.dtd.core.internal.CMNode in project webtools.sourceediting by eclipse.
the class DragContentModelCommand method execute.
public void execute() {
DTDNode referenceNode = (DTDNode) target;
if (referenceNode instanceof CMNode) {
DTDFile dtdFile = referenceNode.getDTDFile();
DTDNode parent = (DTDNode) referenceNode.getParentNode();
// $NON-NLS-1$
dtdFile.getDTDModel().beginRecording(this, DTDUIMessages._UI_MOVE_CONTENT);
boolean parentIsElement = false;
Element element = null;
CMGroupNode group = null;
if (parent instanceof Element) {
parentIsElement = true;
element = (Element) parent;
} else {
group = (CMGroupNode) parent;
}
if (element == null && group == null) {
// no parent to add to
return;
}
Iterator iter = sources.iterator();
while (iter.hasNext()) {
DTDNode node = (DTDNode) iter.next();
if (node instanceof CMNode) {
if (parentIsElement) {
if (element.getContentModel() == node) {
continue;
}
element.replaceContentModel(this, (CMNode) node);
} else {
if (referenceNode == node || (isAfter() && referenceNode.getNextSibling() == node) || (!isAfter() && node.getNextSibling() == referenceNode)) {
continue;
}
group.insertIntoModel(this, (CMNode) referenceNode, (CMNode) node, isAfter());
}
DTDNode nodeParent = (DTDNode) node.getParentNode();
nodeParent.delete(this, node);
}
}
dtdFile.getDTDModel().endRecording(this);
}
}
use of org.eclipse.wst.dtd.core.internal.CMNode in project webtools.sourceediting by eclipse.
the class ContentModelTypeSection method refresh.
/*
* @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
*/
public void refresh() {
Object input = getInput();
if (input != null) {
if (input instanceof CMNode) {
typeCombo.removeAll();
typeCombo.add(CMNode.ANY);
typeCombo.add(CMNode.EMPTY);
typeCombo.add(CMNode.PCDATA);
typeCombo.add(CMNode.CHILDREN);
typeCombo.add(CMNode.MIXED);
Iterator iterator = ((CMNode) input).getDTDFile().getNodes().iterator();
String nodeName = null;
while (iterator.hasNext()) {
DTDNode node = (DTDNode) iterator.next();
nodeName = node.getName();
if (node instanceof Element && typeCombo.indexOf(nodeName) == -1)
typeCombo.add(nodeName);
else if (node instanceof Entity && ((Entity) node).isParameterEntity() && typeCombo.indexOf(nodeName) == -1)
// $NON-NLS-1$ //$NON-NLS-2$
typeCombo.add("%" + nodeName + ";");
}
if (input instanceof CMGroupNode)
typeCombo.setText(((CMGroupNode) input).getType());
else if (input instanceof CMBasicNode)
typeCombo.setText(((CMBasicNode) input).getType());
}
}
// end if (fInput != null)
}
use of org.eclipse.wst.dtd.core.internal.CMNode in project webtools.sourceediting by eclipse.
the class ContentModelTypeSection method widgetSelected.
public void widgetSelected(SelectionEvent e) {
if (e.widget == typeCombo) {
Object input = getInput();
if (input instanceof CMGroupNode || input instanceof CMBasicNode) {
CMNode node = (CMNode) input;
String selected = typeCombo.getText();
if (CMNode.MIXED.equals(selected))
node.setMixedContent();
else if (CMNode.CHILDREN.equals(selected))
// $NON-NLS-1$
node.setChildrenContent("");
else if (CMNode.EMPTY.equals(selected) || CMNode.ANY.equals(selected) || CMNode.PCDATA.equals(selected))
node.setContent(selected);
else
node.setChildrenContent(selected);
}
}
}
Aggregations