use of org.eclipse.wst.dtd.core.internal.CMGroupNode 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.CMGroupNode 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.CMGroupNode in project webtools.sourceediting by eclipse.
the class ContentModelGroupSection method refresh.
/*
* @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
*/
public void refresh() {
setListenerEnabled(false);
Object input = getInput();
if (input != null) {
if (input instanceof CMGroupNode) {
CMGroupNode node = (CMGroupNode) input;
char modelType = node.getConnector();
if (CMGroupNode.CHOICE == modelType)
modelGroupCombo.setText(CHOICE);
else if (CMGroupNode.SEQUENCE == modelType)
modelGroupCombo.setText(SEQUENCE);
}
}
setListenerEnabled(true);
}
use of org.eclipse.wst.dtd.core.internal.CMGroupNode in project webtools.sourceediting by eclipse.
the class AddElementToContentModelAction method updateSelection.
protected boolean updateSelection(IStructuredSelection selection) {
boolean rc = super.updateSelection(selection);
DTDNode node = getFirstNodeSelected(selection);
if (node instanceof CMGroupNode) {
setEnabled(true);
} else {
setEnabled(false);
}
return rc;
}
use of org.eclipse.wst.dtd.core.internal.CMGroupNode 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