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);
}
}
}
}