package jetbrains.mps.samples.Shapes.behavior; /*Generated by MPS */ import javax.swing.JPanel; import org.jetbrains.mps.openapi.model.SNode; import java.awt.Graphics; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.internal.collections.runtime.ListSequence; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SLinkOperations; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import jetbrains.mps.internal.collections.runtime.IVisitor; import java.awt.Dimension; import javax.swing.border.Border; import javax.swing.border.TitledBorder; public final class PreviewFactory { public static JPanel createPanel(final SNode thisCanvas) { return new JPanel() { @Override protected void paintComponent(final Graphics graphics) { super.paintComponent(graphics); SNodeOperations.getModel(thisCanvas).getRepository().getModelAccess().runReadAction(new Runnable() { public void run() { ListSequence.fromList(SLinkOperations.getChildren(thisCanvas, MetaAdapterFactory.getContainmentLink(0x16bafbb4c6cd4cc5L, 0x83327c6de8729b3fL, 0x51dcaa29974fa71dL, 0x51dcaa29974ffa47L, "shapes"))).visitAll(new IVisitor<SNode>() { public void visit(SNode it) { Shape__BehaviorDescriptor.drawShape_idW6XMzE_hbz.invoke(it, graphics); } }); } }); } @Override public Dimension getPreferredSize() { return new Dimension(500, 500); } @Override public Border getBorder() { return new TitledBorder("Instant Preview"); } }; } }