package jetbrains.mps.lang.editor.imageGen.testLanguage.intentions; /*Generated by MPS */ import jetbrains.mps.editor.intentions.IntentionsFactory; import jetbrains.mps.editor.intentions.NodeTransformer; import org.jetbrains.mps.openapi.language.SAbstractConcept; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import jetbrains.mps.smodel.SNodePointer; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.openapi.editor.EditorContext; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.lang.smodel.generator.smodelAdapter.AttributeOperations; import jetbrains.mps.lang.smodel.generator.smodelAdapter.IAttributeDescriptor; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SConceptOperations; import java.util.Collection; import jetbrains.mps.internal.collections.runtime.CollectionSequence; import java.util.ArrayList; import jetbrains.mps.editor.intentions.BaseNodeTransformer; public class AddExportAsImageAttribute extends IntentionsFactory { public AddExportAsImageAttribute() { } public String getId() { return getClass().getName(); } public boolean isAvailableInChildren() { return true; } public boolean isSurroundWith() { return false; } public NodeTransformer.Kind getKind() { return NodeTransformer.Kind.INTENTION; } public SAbstractConcept getApplicableConcept() { return MetaAdapterFactory.getInterfaceConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, "jetbrains.mps.lang.core.structure.INamedConcept"); } public SNodePointer getDeclarationNode() { return implementationNode; } private SNodePointer implementationNode = new SNodePointer("r:f4a32df3-ddb6-4338-8cd1-da1b81738090(jetbrains.mps.lang.editor.imageGen.testLanguage.intentions)", "2442780630506700692"); private boolean isApplicableHelper(SNode node, EditorContext editorContext) { return SNodeOperations.getParent(node) == null; } public boolean isAvailableInChild(SNode node, SNode node1, EditorContext context) { return true; } public boolean isApplicable(SNode node, EditorContext editorContext) { return isApplicableHelper(node, editorContext); } public void execute(SNode node, EditorContext editorContext) { if (AttributeOperations.getAttribute(node, new IAttributeDescriptor.NodeAttribute(MetaAdapterFactory.getConcept(0x9bcd3d4bc7894f70L, 0x85e4038ea20762b9L, 0x21e6800a818d97ecL, "jetbrains.mps.lang.editor.imageGen.testLanguage.structure.ExportAsImage"))) == null) { AttributeOperations.setAttribute(node, new IAttributeDescriptor.NodeAttribute(MetaAdapterFactory.getConcept(0x9bcd3d4bc7894f70L, 0x85e4038ea20762b9L, 0x21e6800a818d97ecL, "jetbrains.mps.lang.editor.imageGen.testLanguage.structure.ExportAsImage")), SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x9bcd3d4bc7894f70L, 0x85e4038ea20762b9L, 0x21e6800a818d97ecL, "jetbrains.mps.lang.editor.imageGen.testLanguage.structure.ExportAsImage"))); } else { AttributeOperations.setAttribute(node, new IAttributeDescriptor.NodeAttribute(MetaAdapterFactory.getConcept(0x9bcd3d4bc7894f70L, 0x85e4038ea20762b9L, 0x21e6800a818d97ecL, "jetbrains.mps.lang.editor.imageGen.testLanguage.structure.ExportAsImage")), null); } } public String description(SNode node, EditorContext editorContext) { return ((AttributeOperations.getAttribute(node, new IAttributeDescriptor.NodeAttribute(MetaAdapterFactory.getConcept(0x9bcd3d4bc7894f70L, 0x85e4038ea20762b9L, 0x21e6800a818d97ecL, "jetbrains.mps.lang.editor.imageGen.testLanguage.structure.ExportAsImage"))) == null ? "Add" : "Remove")) + " export as image annotation"; } public Collection<NodeTransformer> getTreeTransformers(SNode node, SNode child, EditorContext editorContext) { Collection<NodeTransformer> result = CollectionSequence.fromCollection(new ArrayList<NodeTransformer>()); CollectionSequence.fromCollection(result).addElement(new BaseNodeTransformer(this, node, editorContext, AddExportAsImageAttribute.this.getKind(), implementationNode) { protected void execute(SNode node, EditorContext editorContext) { AddExportAsImageAttribute.this.execute(node, editorContext); } protected String getDescription(SNode node, EditorContext editorContext) { return AddExportAsImageAttribute.this.description(node, editorContext); } }); return result; } }