gt:       EditorCell editorCell = provider.createCell();
context: package Simulatie.editor;
  
  /*Generated by MPS */
  
  import jetbrains.mps.editor.runtime.descriptor.AbstractEditorBuilder;
  import org.jetbrains.annotations.NotNull;
  import org.jetbrains.mps.openapi.model.SNode;
  import jetbrains.mps.openapi.editor.EditorContext;
  import jetbrains.mps.openapi.editor.cells.EditorCell;
  import jetbrains.mps.nodeEditor.cells.EditorCell_Collection;
  import jetbrains.mps.nodeEditor.cellLayout.CellLayout_Horizontal;
  import jetbrains.mps.openapi.editor.style.Style;
  import jetbrains.mps.editor.runtime.style.StyleImpl;
  import jetbrains.mps.editor.runtime.style.StyleAttributes;
  import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations;
  import ObjectiefRecht.behavior.Overgang__BehaviorDescriptor;
  import jetbrains.mps.lang.smodel.generator.smodelAdapter.SLinkOperations;
  import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
  import ObjectiefRecht.behavior.InstantieVanObject__BehaviorDescriptor;
  import jetbrains.mps.nodeEditor.cellLayout.CellLayout_Indent;
  import jetbrains.mps.lang.smodel.generator.smodelAdapter.SPropertyOperations;
  import org.jetbrains.mps.openapi.module.SModule;
  import jetbrains.mps.nodeEditor.cells.EditorCell_Image;
  import jetbrains.mps.nodeEditor.cells.EditorCell_Property;
  import jetbrains.mps.nodeEditor.cells.ModelAccessor;
  import Simulatie.behavior.Simulatie__BehaviorDescriptor;
  import jetbrains.mps.util.EqualUtil;
  import jetbrains.mps.openapi.editor.cells.CellActionType;
  import jetbrains.mps.editor.runtime.cells.EmptyCellAction;
  import org.jetbrains.mps.openapi.language.SReferenceLink;
  import jetbrains.mps.lang.editor.cellProviders.SReferenceCellProvider;
  import jetbrains.mps.util.Computable;
  import jetbrains.mps.editor.runtime.impl.CellUtil;
  import jetbrains.mps.nodeEditor.cellMenu.SReferenceSubstituteInfo;
  import jetbrains.mps.lang.smodel.generator.smodelAdapter.AttributeOperations;
  import jetbrains.mps.lang.smodel.generator.smodelAdapter.IAttributeDescriptor;
  import jetbrains.mps.internal.collections.runtime.Sequence;
  import jetbrains.mps.internal.collections.runtime.IWhereFilter;
  import java.util.Objects;
  import jetbrains.mps.lang.core.behavior.LinkAttribute__BehaviorDescriptor;
  import jetbrains.mps.nodeEditor.EditorManager;
  import jetbrains.mps.openapi.editor.update.AttributeKind;
  import org.jetbrains.mps.openapi.language.SProperty;
  import jetbrains.mps.openapi.editor.menus.transformation.SPropertyInfo;
  import jetbrains.mps.nodeEditor.cells.SPropertyAccessor;
  import jetbrains.mps.editor.runtime.impl.cellActions.CellAction_DeleteEasily;
  import jetbrains.mps.nodeEditor.cellActions.CellAction_DeleteNode;
  import ObjectiefRecht.editor.GN_StyleSheet.NameStyleClass;
  import jetbrains.mps.nodeEditor.cellMenu.SPropertySubstituteInfo;
  import jetbrains.mps.lang.core.behavior.PropertyAttribute__BehaviorDescriptor;
  import jetbrains.mps.nodeEditor.cells.EditorCell_Constant;
  import Simulatie.editor.Simulatie_StyleSheet.uitzonderingStyleClass;
  
  /*package*/ class UitvoerbareRechtshandeling_HandelingenRol2_EditorBuilder_a extends AbstractEditorBuilder {
    @NotNull
    private SNode myNode;
  
    public UitvoerbareRechtshandeling_HandelingenRol2_EditorBuilder_a(@NotNull EditorContext context, @NotNull SNode node) {
      super(context);
      myNode = node;
    }
  
    @NotNull
    @Override
    public SNode getNode() {
      return myNode;
    }
  
    /*package*/ EditorCell createCell() {
      return createCollection_sf7ror_a();
    }
  
    private EditorCell createCollection_sf7ror_a() {
      EditorCell_Collection editorCell = new EditorCell_Collection(getEditorContext(), myNode, new CellLayout_Horizontal());
      editorCell.setCellId("Collection_sf7ror_a");
      editorCell.setBig(true);
      editorCell.setCellContext(getCellFactory().getCellContext());
      Style style = new StyleImpl();
      style.set(StyleAttributes.SELECTABLE, false);
      editorCell.getStyle().putAll(style);
      if (nodeCondition_sf7ror_a0a()) {
        editorCell.addEditorCell(createCollection_sf7ror_a0());
      }
      return editorCell;
    }
    private boolean nodeCondition_sf7ror_a0a() {
      SNode simulatie;
      simulatie = (SNode) SNodeOperations.getParent(myNode);
      boolean show = false;
      if (Overgang__BehaviorDescriptor.GeefActor_id3FnOwJNU89l.invoke(SLinkOperations.getTarget(myNode, MetaAdapterFactory.getReferenceLink(0x15970de38fe74b13L, 0x81c738b38d51c39aL, 0x3346d8f6cfb01e1cL, 0x3346d8f6cfb01e1dL, "overgang"))) == InstantieVanObject__BehaviorDescriptor.GeefObject_id4f9cC5bR2h.invoke(SLinkOperations.getTarget(simulatie, MetaAdapterFactory.getReferenceLink(0x15970de38fe74b13L, 0x81c738b38d51c39aL, 0x6d2de15fcae53fb5L, 0x1ed85b1d6dac641fL, "rechtssubject2")))) {
        show = true;
      }
      return show;
    }
    private EditorCell createCollection_sf7ror_a0() {
      EditorCell_Collection editorCell = new EditorCell_Collection(getEditorContext(), myNode, new CellLayout_Indent());
      editorCell.setCellId("Collection_sf7ror_a0");
      editorCell.addEditorCell(createAlternation_sf7ror_a0a());
      editorCell.addEditorCell(createReadOnlyModelAccessor_sf7ror_b0a());
      editorCell.addEditorCell(createRefCell_sf7ror_c0a());
      editorCell.addEditorCell(createConstant_sf7ror_d0a());
      editorCell.addEditorCell(createConstant_sf7ror_e0a());
      editorCell.addEditorCell(createReadOnlyModelAccessor_sf7ror_f0a());
      editorCell.addEditorCell(createConstant_sf7ror_g0a());
      editorCell.addEditorCell(createConstant_sf7ror_h0a());
      editorCell.addEditorCell(createRefCell_sf7ror_i0a());
      editorCell.addEditorCell(createReadOnlyModelAccessor_sf7ror_j0a());
      editorCell.addEditorCell(createConstant_sf7ror_k0a());
      return editorCell;
    }
    private EditorCell createAlternation_sf7ror_a0a() {
      boolean alternationCondition = true;
      alternationCondition = nodeCondition_sf7ror_a0a0();
      EditorCell editorCell = null;
      if (alternationCondition) {
        editorCell = createImage_sf7ror_a0a0();
      } else {
        editorCell = createImage_sf7ror_a0a0_0();
      }
      return editorCell;
    }
    private boolean nodeCondition_sf7ror_a0a0() {
      return SPropertyOperations.getBoolean(myNode, MetaAdapterFactory.getProperty(0x2c493149da1d45e9L, 0x8ea2e0b0cfc3047aL, 0x57de6dcc3687a87eL, 0x57de6dcc3687a786L, "evaluatieresultaat"));
    }
    private EditorCell createImage_sf7ror_a0a0() {
      SModule imageModule;
      String imagePath;
      imageModule = SNodeOperations.getConcept(myNode).getLanguage().getSourceModule();
      imagePath = "${imagespath}/Green.png";
      EditorCell_Image editorCell = EditorCell_Image.createImageCell(getEditorContext(), myNode, imageModule, imagePath);
      editorCell.setCellId("Image_sf7ror_a0a0");
      EvalueerHandeling.setCellActions(editorCell, myNode, getEditorContext());
      editorCell.setDescent(4);
      return editorCell;
    }
    private EditorCell createImage_sf7ror_a0a0_0() {
      SModule imageModule;
      String imagePath;
      imageModule = SNodeOperations.getConcept(myNode).getLanguage().getSourceModule();
      imagePath = "${imagespath}/Red.png";
      EditorCell_Image editorCell = EditorCell_Image.createImageCell(getEditorContext(), myNode, imageModule, imagePath);
      editorCell.setCellId("Image_sf7ror_a0a0_0");
      EvalueerHandeling.setCellActions(editorCell, myNode, getEditorContext());
      editorCell.setDescent(4);
      return editorCell;
    }
    private EditorCell createReadOnlyModelAccessor_sf7ror_b0a() {
      EditorCell_Property editorCell = EditorCell_Property.create(getEditorContext(), new ModelAccessor() {
        public String getText() {
          SNode simulatie = (SNode) SNodeOperations.getParent(myNode);
          return Simulatie__BehaviorDescriptor.OpzoekenTypeHandeling_id3d6QfrgWko$.invoke(simulatie, SLinkOperations.getTarget(myNode, MetaAdapterFactory.getReferenceLink(0x15970de38fe74b13L, 0x81c738b38d51c39aL, 0x3346d8f6cfb01e1cL, 0x3346d8f6cfb01e1dL, "overgang")));
        }
        public void setText(String s) {
        }
        public boolean isValidText(String s) {
          return EqualUtil.equals(s, getText());
        }
      }, myNode);
      editorCell.setAction(CellActionType.DELETE, EmptyCellAction.getInstance());
      editorCell.setAction(CellActionType.BACKSPACE, EmptyCellAction.getInstance());
      editorCell.setCellId("ReadOnlyModelAccessor_sf7ror_b0a");
      Style style = new StyleImpl();
      style.set(StyleAttributes.EDITABLE, false);
      editorCell.getStyle().putAll(style);
      ToonLog.setCellActions(editorCell, myNode, getEditorContext());
      return editorCell;
    }
    private EditorCell createRefCell_sf7ror_c0a() {
      final SReferenceLink referenceLink = MetaAdapterFactory.getReferenceLink(0x15970de38fe74b13L, 0x81c738b38d51c39aL, 0x3346d8f6cfb01e1cL, 0x3346d8f6cfb01e1dL, "overgang");
      SReferenceCellProvider provider = new SReferenceCellProvider(getNode(), referenceLink, getEditorContext()) {
        protected EditorCell createReferenceCell(final SNode targetNode) {
          EditorCell cell = getUpdateSession().updateReferencedNodeCell(new Computable<EditorCell>() {
            public EditorCell compute() {
              return new UitvoerbareRechtshandeling_HandelingenRol2_EditorBuilder_a.Inline_Builder_sf7ror_a2a0(getEditorContext(), getNode(), targetNode).createCell();
            }
          }, targetNode, "overgang");
          CellUtil.setupIDeprecatableStyles(targetNode, cell);
          setSemanticNodeToCells(cell, getNode());
          installDeleteActions_notnull(cell);
          return cell;
        }
      };
  
      provider.setNoTargetText("<no overgang>");
      EditorCell editorCell = provider.createCell();
  
      if (editorCell.getRole() == null) {
        editorCell.setReferenceCell(true);
        editorCell.setRole("overgang");
      }
      editorCell.setSubstituteInfo(new SReferenceSubstituteInfo(editorCell, referenceLink));
      Iterable<SNode> referenceAttributes = SNodeOperations.ofConcept(AttributeOperations.getAttributeList(myNode, new IAttributeDescriptor.AllAttributes()), MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x2eb1ad060897da51L, "jetbrains.mps.lang.core.structure.LinkAttribute"));
      Iterable<SNode> currentReferenceAttributes = Sequence.fromIterable(referenceAttributes).where(new IWhereFilter<SNode>() {
        public boolean accept(SNode it) {
          return Objects.equals(LinkAttribute__BehaviorDescriptor.getLink_id1avfQ4BEFo6.invoke(it), referenceLink);
        }
      });
      if (Sequence.fromIterable(currentReferenceAttributes).isNotEmpty()) {
        EditorManager manager = EditorManager.getInstanceFromContext(getEditorContext());
        return manager.createNodeRoleAttributeCell(Sequence.fromIterable(currentReferenceAttributes).first(), AttributeKind.REFERENCE, editorCell);
      } else
      return editorCell;
    }
    /*package*/ static class Inline_Builder_sf7ror_a2a0 extends AbstractEditorBuilder {
      @NotNull
      private SNode myNode;
      private SNode myReferencingNode;
  
      /*package*/ Inline_Builder_sf7ror_a2a0(@NotNull EditorContext context, SNode referencingNode, @NotNull SNode node) {
        super(context);
        myReferencingNode = referencingNode;
        myNode = node;
      }
  
      /*package*/ EditorCell createCell() {
        return createProperty_sf7ror_a0c0a();
      }
  
      @NotNull
      @Override
      public SNode getNode() {
        return myNode;
      }
  
      private EditorCell createProperty_sf7ror_a0c0a() {
        getCellFactory().pushCellContext();
        try {
          final SProperty property = MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name");
          getCellFactory().setPropertyInfo(new SPropertyInfo(myNode, property));
          EditorCell_Property editorCell = EditorCell_Property.create(getEditorContext(), new SPropertyAccessor(myNode, property, true, false), myNode);
          editorCell.setDefaultText("<no name>");
          editorCell.setAction(CellActionType.DELETE, new CellAction_DeleteEasily(myNode, CellAction_DeleteNode.DeleteDirection.FORWARD));
          editorCell.setAction(CellActionType.BACKSPACE, new CellAction_DeleteEasily(myNode, CellAction_DeleteNode.DeleteDirection.BACKWARD));
          editorCell.setCellId("property_name");
          Style style = new StyleImpl();
          new NameStyleClass(getEditorContext(), getNode()).apply(style, editorCell);
          editorCell.getStyle().putAll(style);
          editorCell.setSubstituteInfo(new SPropertySubstituteInfo(editorCell, property));
          setCellContext(editorCell);
          Iterable<SNode> propertyAttributes = SNodeOperations.ofConcept(AttributeOperations.getAttributeList(myNode, new IAttributeDescriptor.AllAttributes()), MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x2eb1ad060897da56L, "jetbrains.mps.lang.core.structure.PropertyAttribute"));
          Iterable<SNode> currentPropertyAttributes = Sequence.fromIterable(propertyAttributes).where(new IWhereFilter<SNode>() {
            public boolean accept(SNode it) {
              return Objects.equals(PropertyAttribute__BehaviorDescriptor.getProperty_id1avfQ4BBzOo.invoke(it), property);
            }
          });
          if (Sequence.fromIterable(currentPropertyAttributes).isNotEmpty()) {
            EditorManager manager = EditorManager.getInstanceFromContext(getEditorContext());
            return manager.createNodeRoleAttributeCell(Sequence.fromIterable(currentPropertyAttributes).first(), AttributeKind.PROPERTY, editorCell);
          } else
          return editorCell;
        } finally {
          getCellFactory().popCellContext();
        }
      }
    }
    private EditorCell createConstant_sf7ror_d0a() {
      EditorCell_Constant editorCell = new EditorCell_Constant(getEditorContext(), myNode, " door rechtssubject");
      editorCell.setCellId("Constant_sf7ror_d0a");
      Style style = new StyleImpl();
      style.set(StyleAttributes.INDENT_LAYOUT_INDENT, true);
      editorCell.getStyle().putAll(style);
      editorCell.setDefaultText("");
      return editorCell;
    }
    private EditorCell createConstant_sf7ror_e0a() {
      EditorCell_Constant editorCell = new EditorCell_Constant(getEditorContext(), myNode, ":");
      editorCell.setCellId("Constant_sf7ror_e0a");
      editorCell.setDefaultText("");
      return editorCell;
    }
    private EditorCell createReadOnlyModelAccessor_sf7ror_f0a() {
      EditorCell_Property editorCell = EditorCell_Property.create(getEditorContext(), new ModelAccessor() {
        public String getText() {
          return Overgang__BehaviorDescriptor.GeefActorString_id7tRkx91j0fu.invoke(SLinkOperations.getTarget(myNode, MetaAdapterFactory.getReferenceLink(0x15970de38fe74b13L, 0x81c738b38d51c39aL, 0x3346d8f6cfb01e1cL, 0x3346d8f6cfb01e1dL, "overgang")));
        }
        public void setText(String s) {
        }
        public boolean isValidText(String s) {
          return EqualUtil.equals(s, getText());
        }
      }, myNode);
      editorCell.setAction(CellActionType.DELETE, EmptyCellAction.getInstance());
      editorCell.setAction(CellActionType.BACKSPACE, EmptyCellAction.getInstance());
      editorCell.setCellId("ReadOnlyModelAccessor_sf7ror_f0a");
      Style style = new StyleImpl();
      style.set(StyleAttributes.INDENT_LAYOUT_NEW_LINE, true);
      style.set(StyleAttributes.EDITABLE, false);
      editorCell.getStyle().putAll(style);
      return editorCell;
    }
    private EditorCell createConstant_sf7ror_g0a() {
      EditorCell_Constant editorCell = new EditorCell_Constant(getEditorContext(), myNode, "is gebaseerd op");
      editorCell.setCellId("Constant_sf7ror_g0a");
      Style style = new StyleImpl();
      style.set(StyleAttributes.INDENT_LAYOUT_INDENT, true);
      editorCell.getStyle().putAll(style);
      editorCell.setDefaultText("");
      return editorCell;
    }
    private EditorCell createConstant_sf7ror_h0a() {
      EditorCell_Constant editorCell = new EditorCell_Constant(getEditorContext(), myNode, ":");
      editorCell.setCellId("Constant_sf7ror_h0a");
      editorCell.setDefaultText("");
      return editorCell;
    }
    private EditorCell createRefCell_sf7ror_i0a() {
      final SReferenceLink referenceLink = MetaAdapterFactory.getReferenceLink(0x15970de38fe74b13L, 0x81c738b38d51c39aL, 0x3346d8f6cfb01e1cL, 0x509815868ae8d37bL, "gebaseerdOp");
      SReferenceCellProvider provider = new SReferenceCellProvider(getNode(), referenceLink, getEditorContext()) {
        protected EditorCell createReferenceCell(final SNode targetNode) {
          EditorCell cell = getUpdateSession().updateReferencedNodeCell(new Computable<EditorCell>() {
            public EditorCell compute() {
              return new UitvoerbareRechtshandeling_HandelingenRol2_EditorBuilder_a.Inline_Builder_sf7ror_a8a0(getEditorContext(), getNode(), targetNode).createCell();
            }
          }, targetNode, "gebaseerdOp");
          CellUtil.setupIDeprecatableStyles(targetNode, cell);
          setSemanticNodeToCells(cell, getNode());
          installDeleteActions_nullable_reference(cell);
          return cell;
        }
      };
  
      provider.setNoTargetText("<no gebaseerdOp>");
      EditorCell editorCell = provider.createCell();
  
      if (editorCell.getRole() == null) {
        editorCell.setReferenceCell(true);
        editorCell.setRole("gebaseerdOp");
      }
      editorCell.setSubstituteInfo(new SReferenceSubstituteInfo(editorCell, referenceLink));
      Iterable<SNode> referenceAttributes = SNodeOperations.ofConcept(AttributeOperations.getAttributeList(myNode, new IAttributeDescriptor.AllAttributes()), MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x2eb1ad060897da51L, "jetbrains.mps.lang.core.structure.LinkAttribute"));
      Iterable<SNode> currentReferenceAttributes = Sequence.fromIterable(referenceAttributes).where(new IWhereFilter<SNode>() {
        public boolean accept(SNode it) {
          return Objects.equals(LinkAttribute__BehaviorDescriptor.getLink_id1avfQ4BEFo6.invoke(it), referenceLink);
        }
      });
      if (Sequence.fromIterable(currentReferenceAttributes).isNotEmpty()) {
        EditorManager manager = EditorManager.getInstanceFromContext(getEditorContext());
        return manager.createNodeRoleAttributeCell(Sequence.fromIterable(currentReferenceAttributes).first(), AttributeKind.REFERENCE, editorCell);
      } else
      return editorCell;
    }
    /*package*/ static class Inline_Builder_sf7ror_a8a0 extends AbstractEditorBuilder {
      @NotNull
      private SNode myNode;
      private SNode myReferencingNode;
  
      /*package*/ Inline_Builder_sf7ror_a8a0(@NotNull EditorContext context, SNode referencingNode, @NotNull SNode node) {
        super(context);
        myReferencingNode = referencingNode;
        myNode = node;
      }
  
      /*package*/ EditorCell createCell() {
        return createCollection_sf7ror_a0i0a();
      }
  
      @NotNull
      @Override
      public SNode getNode() {
        return myNode;
      }
  
      private EditorCell createCollection_sf7ror_a0i0a() {
        EditorCell_Collection editorCell = new EditorCell_Collection(getEditorContext(), myNode, new CellLayout_Indent());
        editorCell.setCellId("Collection_sf7ror_a0i0a");
        editorCell.addEditorCell(createRefCell_sf7ror_a0a8a0());
        return editorCell;
      }
      private EditorCell createRefCell_sf7ror_a0a8a0() {
        final SReferenceLink referenceLink = MetaAdapterFactory.getReferenceLink(0x2c493149da1d45e9L, 0x8ea2e0b0cfc3047aL, 0x630944a3c415c89eL, 0x630944a3c415c8a6L, "objectieveRechtsbetrekking");
        SReferenceCellProvider provider = new SReferenceCellProvider(getNode(), referenceLink, getEditorContext()) {
          protected EditorCell createReferenceCell(final SNode targetNode) {
            EditorCell cell = getUpdateSession().updateReferencedNodeCell(new Computable<EditorCell>() {
              public EditorCell compute() {
                return new UitvoerbareRechtshandeling_HandelingenRol2_EditorBuilder_a.Inline_Builder_sf7ror_a8a0.Inline_Builder_sf7ror_a0a0i0a(getEditorContext(), getNode(), targetNode).createCell();
              }
            }, targetNode, "objectieveRechtsbetrekking");
            CellUtil.setupIDeprecatableStyles(targetNode, cell);
            setSemanticNodeToCells(cell, getNode());
            installDeleteActions_notnull(cell);
            return cell;
          }
        };
  
        provider.setNoTargetText("<no objectieveRechtsbetrekking>");
  