package jetbrains.mps.editor.runtime.impl.cellActions; /*Generated by MPS */ import jetbrains.mps.editor.runtime.cells.AbstractCellAction; import jetbrains.mps.openapi.editor.EditorContext; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; public abstract class CellAction_CommentOrUncomment extends AbstractCellAction { @Override public boolean canExecute(EditorContext editorContext) { SNode nodeToProcess = getNodeToProcess(editorContext); if (nodeToProcess == null) { return false; } SNode nodeToUncomment = getNodeToUncomment(nodeToProcess); if (nodeToUncomment != null) { nodeToProcess = nodeToUncomment; } return SNodeOperations.getParent(nodeToProcess) != null; } public void execute(EditorContext editorContext) { SNode nodeToProcess = getNodeToProcess(editorContext); SNode nodeToUncomment = getNodeToUncomment(nodeToProcess); if (nodeToUncomment != null) { new CellAction_Uncomment(SNodeOperations.cast(nodeToUncomment, MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x3dcc194340c24debL, "jetbrains.mps.lang.core.structure.BaseCommentAttribute"))).execute(editorContext); } else { new CellAction_Comment(nodeToProcess).execute(editorContext); } } protected abstract SNode getNodeToProcess(EditorContext editorContext); private SNode getNodeToUncomment(SNode nodeToProcess) { if (SNodeOperations.isInstanceOf(nodeToProcess, MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x3dcc194340c24debL, "jetbrains.mps.lang.core.structure.BaseCommentAttribute"))) { return SNodeOperations.cast(nodeToProcess, MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x3dcc194340c24debL, "jetbrains.mps.lang.core.structure.BaseCommentAttribute")); } if (SNodeOperations.isInstanceOf(SNodeOperations.getParent(nodeToProcess), MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x3dcc194340c24debL, "jetbrains.mps.lang.core.structure.BaseCommentAttribute"))) { return SNodeOperations.cast(SNodeOperations.getParent(nodeToProcess), MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x3dcc194340c24debL, "jetbrains.mps.lang.core.structure.BaseCommentAttribute")); } return null; } }