package jetbrains.mps.editor.runtime.impl.cellActions; /*Generated by MPS */ import jetbrains.mps.editor.runtime.cells.AbstractCellAction; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.nodeEditor.cellActions.CellAction_DeleteNode; import jetbrains.mps.openapi.editor.EditorContext; import org.jetbrains.mps.openapi.model.SNodeAccessUtil; /** * * @deprecated use CellActionDeleteSPropertyOrNode */ @Deprecated public class CellAction_DeletePropertyOrNode extends AbstractCellAction { private final SNode mySemanticNode; private final String myPropertyName; private final CellAction_DeleteNode.DeleteDirection myDirection; @Deprecated public CellAction_DeletePropertyOrNode(SNode semanticNode, String propertyName) { this(semanticNode, propertyName, CellAction_DeleteNode.DeleteDirection.FORWARD); } @Deprecated public CellAction_DeletePropertyOrNode(SNode semanticNode, String propertyName, CellAction_DeleteNode.DeleteDirection direction) { mySemanticNode = semanticNode; myPropertyName = propertyName; this.myDirection = direction; } @Override public boolean canExecute(EditorContext context) { return true; } @Override public void execute(EditorContext context) { if (SNodeAccessUtil.getProperty(mySemanticNode, myPropertyName) != null) { SNodeAccessUtil.setProperty(mySemanticNode, myPropertyName, null); } else { CellAction_DeleteEasily deleteAction = new CellAction_DeleteEasily(mySemanticNode, myDirection); if (deleteAction.canExecute(context)) { deleteAction.execute(context); } } } }