package jetbrains.mps.ide.devkit.actions; /*Generated by MPS */ import jetbrains.mps.plugins.relations.RelationDescriptor; import javax.swing.Icon; import jetbrains.mps.icons.MPSIcons; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import org.jetbrains.annotations.Nullable; import java.util.List; import jetbrains.mps.internal.collections.runtime.ListSequence; import java.util.ArrayList; import org.jetbrains.mps.openapi.module.SModule; import jetbrains.mps.smodel.Language; import org.jetbrains.mps.openapi.model.SModel; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SModuleOperations; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.smodel.behaviour.BHReflection; import jetbrains.mps.core.aspects.behaviour.SMethodTrimmedId; import org.jetbrains.mps.openapi.language.SConcept; import jetbrains.mps.kernel.language.ConceptAspectsHelper; import jetbrains.mps.smodel.LanguageAspect; import jetbrains.mps.smodel.action.SNodeFactoryOperations; public class Textgen_TabDescriptor extends RelationDescriptor { private static final Icon ICON = MPSIcons.Nodes.TextGen; public Textgen_TabDescriptor() { } public String getTitle() { return "Textgen"; } public int compareTo(RelationDescriptor descriptor) { return new Textgen_Order().compare(this, descriptor); } public void startListening() { } public SNode getBaseNode(SNode node) { return ConceptEditorOpenHelper.getBaseNode(node); } public boolean isApplicable(SNode node) { return SNodeOperations.isInstanceOf(node, MetaAdapterFactory.getConcept(0xc72da2b97cce4447L, 0x8389f407dc1158b7L, 0x1103553c5ffL, "jetbrains.mps.lang.structure.structure.AbstractConceptDeclaration")); } @Nullable public Icon getIcon() { return ICON; } public List<SNode> getNodes(SNode node) { List<SNode> list = ListSequence.fromList(new ArrayList<SNode>()); SNode n = getNode(node); if (n == null) { return list; } ListSequence.fromList(list).addElement(n); return list; } public boolean isSingle() { return true; } public SNode getNode(SNode node) { SModule module = SNodeOperations.getModel(node).getModule(); if (!((module instanceof Language))) { return null; } SModel aspectModel = SModuleOperations.getAspect(module, "textGen"); if (aspectModel == null) { return null; } return Sequence.fromIterable(((Iterable<SNode>) BHReflection.invoke(node, SMethodTrimmedId.create("findConceptAspects", MetaAdapterFactory.getConcept(0xc72da2b97cce4447L, 0x8389f407dc1158b7L, 0x1103553c5ffL, "jetbrains.mps.lang.structure.structure.AbstractConceptDeclaration"), "4G9PD8$NvPM"), aspectModel))).first(); } public Iterable<SConcept> getAspectConcepts(final SNode node) { return ListSequence.fromListAndArray(new ArrayList<SConcept>(), MetaAdapterFactory.getConcept(0xb83431fe5c8f40bcL, 0x8a3665e25f4dd253L, 0x11f3c776369L, "jetbrains.mps.lang.textGen.structure.ConceptTextGenDeclaration")); } public SNode createAspect(final SNode node, final SConcept concept) { return ConceptAspectsHelper.attachNewConceptAspect(LanguageAspect.TEXT_GEN, node, SNodeFactoryOperations.createNewNode(SNodeFactoryOperations.asInstanceConcept(MetaAdapterFactory.getConcept(0xb83431fe5c8f40bcL, 0x8a3665e25f4dd253L, 0x11f3c776369L, "jetbrains.mps.lang.textGen.structure.ConceptTextGenDeclaration")), null)); } }