gt:       editorCell = provider.createEditorCell(getEditorContext());
context: package ObjectiefRecht.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_Indent;
  import jetbrains.mps.nodeEditor.cellProviders.CellProviderWithRole;
  import jetbrains.mps.lang.editor.cellProviders.RefCellCellProvider;
  import jetbrains.mps.nodeEditor.EditorManager;
  import org.jetbrains.mps.openapi.language.SReferenceLink;
  import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
  import jetbrains.mps.lang.editor.cellProviders.SReferenceCellProvider;
  import jetbrains.mps.util.Computable;
  import jetbrains.mps.editor.runtime.impl.CellUtil;
  import jetbrains.mps.nodeEditor.cellMenu.SReferenceSubstituteInfoSmartReferenceDecorator;
  import jetbrains.mps.nodeEditor.cellMenu.SReferenceSubstituteInfo;
  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.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.openapi.editor.update.AttributeKind;
  import org.jetbrains.mps.openapi.language.SProperty;
  import jetbrains.mps.openapi.editor.menus.transformation.SPropertyInfo;
  import jetbrains.mps.nodeEditor.cells.EditorCell_Property;
  import jetbrains.mps.nodeEditor.cells.SPropertyAccessor;
  import jetbrains.mps.openapi.editor.cells.CellActionType;
  import jetbrains.mps.editor.runtime.impl.cellActions.CellAction_DeleteEasily;
  import jetbrains.mps.nodeEditor.cellActions.CellAction_DeleteNode;
  import jetbrains.mps.openapi.editor.style.Style;
  import jetbrains.mps.editor.runtime.style.StyleImpl;
  import ObjectiefRecht.editor.GN_StyleSheet.OnderwerpStyleClass;
  import jetbrains.mps.editor.runtime.style.StyleAttributes;
  import jetbrains.mps.nodeEditor.cellMenu.SPropertySubstituteInfo;
  import jetbrains.mps.lang.core.behavior.PropertyAttribute__BehaviorDescriptor;
  import jetbrains.mps.nodeEditor.cells.EditorCell_Constant;
  
  /*package*/ class IsGeen_EditorBuilder_a extends AbstractEditorBuilder {
    @NotNull
    private SNode myNode;
  
    public IsGeen_EditorBuilder_a(@NotNull EditorContext context, @NotNull SNode node) {
      super(context);
      myNode = node;
    }
  
    @NotNull
    @Override
    public SNode getNode() {
      return myNode;
    }
  
    /*package*/ EditorCell createCell() {
      return createCollection_drg1ot_a();
    }
  
    private EditorCell createCollection_drg1ot_a() {
      EditorCell_Collection editorCell = new EditorCell_Collection(getEditorContext(), myNode, new CellLayout_Indent());
      editorCell.setCellId("Collection_drg1ot_a");
      editorCell.setBig(true);
      editorCell.setCellContext(getCellFactory().getCellContext());
      editorCell.addEditorCell(createRefCell_drg1ot_a0());
      editorCell.addEditorCell(createConstant_drg1ot_b0());
      editorCell.addEditorCell(createRefCell_drg1ot_c0());
      return editorCell;
    }
    private EditorCell createRefCell_drg1ot_a0() {
      CellProviderWithRole provider = new RefCellCellProvider(myNode, getEditorContext()) {
  
        @Override
        protected EditorCell createRefCell(EditorContext context, SNode effectiveNode, SNode node) {
          EditorCell cell = new IsGeen_EditorBuilder_a.Inline_Builder_drg1ot_a0a(getEditorContext(), myNode, effectiveNode).createCell();
          installDeleteActions_notnull(cell);
          return cell;
        }
      };
      provider.setRole("variabele");
      provider.setNoTargetText("<no variabele>");
      EditorCell editorCell;
      editorCell = provider.createEditorCell(getEditorContext());
      if (editorCell.getRole() == null) {
        editorCell.setReferenceCell(true);
        editorCell.setRole("variabele");
      }
      editorCell.setSubstituteInfo(provider.createDefaultSubstituteInfo());
      SNode attributeConcept = provider.getRoleAttribute();
      if (attributeConcept != null) {
        EditorManager manager = EditorManager.getInstanceFromContext(getEditorContext());
        return manager.createNodeRoleAttributeCell(attributeConcept, provider.getRoleAttributeKind(), editorCell);
      } else
      return editorCell;
    }
    /*package*/ static class Inline_Builder_drg1ot_a0a extends AbstractEditorBuilder {
      @NotNull
      private SNode myNode;
      private SNode myReferencingNode;
  
      /*package*/ Inline_Builder_drg1ot_a0a(@NotNull EditorContext context, SNode referencingNode, @NotNull SNode node) {
        super(context);
        myReferencingNode = referencingNode;
        myNode = node;
      }
  
      /*package*/ EditorCell createCell() {
        return createCollection_drg1ot_a0a0();
      }
  
      @NotNull
      @Override
      public SNode getNode() {
        return myNode;
      }
  
      private EditorCell createCollection_drg1ot_a0a0() {
        EditorCell_Collection editorCell = new EditorCell_Collection(getEditorContext(), myNode, new CellLayout_Indent());
        editorCell.setCellId("Collection_drg1ot_a0a0");
        editorCell.addEditorCell(createRefCell_drg1ot_a0a0a());
        return editorCell;
      }
      private EditorCell createRefCell_drg1ot_a0a0a() {
        CellProviderWithRole provider = new RefCellCellProvider(myNode, getEditorContext()) {
  
          @Override
          protected EditorCell createRefCell(EditorContext context, SNode effectiveNode, SNode node) {
            EditorCell cell = new IsGeen_EditorBuilder_a.Inline_Builder_drg1ot_a0a.Inline_Builder_drg1ot_a0a0a0(getEditorContext(), myNode, effectiveNode).createCell();
            installDeleteActions_nullable_aggregation(cell);
            return cell;
          }
        };
        provider.setRole("object");
        provider.setNoTargetText("<no object>");
        EditorCell editorCell;
        editorCell = provider.createEditorCell(getEditorContext());
        if (editorCell.getRole() == null) {
          editorCell.setReferenceCell(true);
          editorCell.setRole("object");
        }
        editorCell.setSubstituteInfo(provider.createDefaultSubstituteInfo());
        SNode attributeConcept = provider.getRoleAttribute();
        if (attributeConcept != null) {
          EditorManager manager = EditorManager.getInstanceFromContext(getEditorContext());
          return manager.createNodeRoleAttributeCell(attributeConcept, provider.getRoleAttributeKind(), editorCell);
        } else
        return editorCell;
      }
      /*package*/ static class Inline_Builder_drg1ot_a0a0a0 extends AbstractEditorBuilder {
        @NotNull
        private SNode myNode;
        private SNode myReferencingNode;
  
        /*package*/ Inline_Builder_drg1ot_a0a0a0(@NotNull EditorContext context, SNode referencingNode, @NotNull SNode node) {
          super(context);
          myReferencingNode = referencingNode;
          myNode = node;
        }
  
        /*package*/ EditorCell createCell() {
          return createCollection_drg1ot_a0a0a0a();
        }
  
        @NotNull
        @Override
        public SNode getNode() {
          return myNode;
        }
  
        private EditorCell createCollection_drg1ot_a0a0a0a() {
          EditorCell_Collection editorCell = new EditorCell_Collection(getEditorContext(), myNode, new CellLayout_Indent());
          editorCell.setCellId("Collection_drg1ot_a0a0a0a");
          editorCell.addEditorCell(createRefCell_drg1ot_a0a0a0a0());
          return editorCell;
        }
        private EditorCell createRefCell_drg1ot_a0a0a0a0() {
          final SReferenceLink referenceLink = MetaAdapterFactory.getReferenceLink(0x8dc4b25f4c49400eL, 0xac370fd230db702cL, 0x46db587183679a0cL, 0x46db587183679a0dL, "object");
          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 IsGeen_EditorBuilder_a.Inline_Builder_drg1ot_a0a.Inline_Builder_drg1ot_a0a0a0.Inline_Builder_drg1ot_a0a0a0a0a(getEditorContext(), getNode(), targetNode).createCell();
                }
              }, targetNode, "object");
              CellUtil.setupIDeprecatableStyles(targetNode, cell);
              setSemanticNodeToCells(cell, getNode());
              installDeleteActions_notnull(cell);
              return cell;
            }
          };
  
          provider.setNoTargetText("<no object>");
          EditorCell editorCell = provider.createCell();
  
          if (editorCell.getRole() == null) {
            editorCell.setReferenceCell(true);
            editorCell.setRole("object");
          }
          editorCell.setSubstituteInfo(new SReferenceSubstituteInfoSmartReferenceDecorator(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_drg1ot_a0a0a0a0a extends AbstractEditorBuilder {
          @NotNull
          private SNode myNode;
          private SNode myReferencingNode;
  
          /*package*/ Inline_Builder_drg1ot_a0a0a0a0a(@NotNull EditorContext context, SNode referencingNode, @NotNull SNode node) {
            super(context);
            myReferencingNode = referencingNode;
            myNode = node;
          }
  
          /*package*/ EditorCell createCell() {
            return createProperty_drg1ot_a0a0a0a0a0();
          }
  
          @NotNull
          @Override
          public SNode getNode() {
            return myNode;
          }
  
          private EditorCell createProperty_drg1ot_a0a0a0a0a0() {
            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 OnderwerpStyleClass(getEditorContext(), getNode()).apply(style, editorCell);
              style.set(StyleAttributes.AUTO_DELETABLE, true);
              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_drg1ot_b0() {
      EditorCell_Constant editorCell = new EditorCell_Constant(getEditorContext(), myNode, "is geen");
      editorCell.setCellId("Constant_drg1ot_b0");
      editorCell.setDefaultText("");
      return editorCell;
    }
    private EditorCell createRefCell_drg1ot_c0() {
      CellProviderWithRole provider = new RefCellCellProvider(myNode, getEditorContext()) {
  
        @Override
        protected EditorCell createRefCell(EditorContext context, SNode effectiveNode, SNode node) {
          EditorCell cell = new IsGeen_EditorBuilder_a.Inline_Builder_drg1ot_a2a(getEditorContext(), myNode, effectiveNode).createCell();
          installDeleteActions_notnull(cell);
          return cell;
        }
      };
      provider.setRole("variabele");
      provider.setNoTargetText("<no variabele>");
      EditorCell editorCell;
      editorCell = provider.createEditorCell(getEditorContext());
      if (editorCell.getRole() == null) {
        editorCell.setReferenceCell(true);
        editorCell.setRole("variabele");
      }
      editorCell.setSubstituteInfo(provider.createDefaultSubstituteInfo());
      SNode attributeConcept = provider.getRoleAttribute();
      if (attributeConcept != null) {
        EditorManager manager = EditorManager.getInstanceFromContext(getEditorContext());
        return manager.createNodeRoleAttributeCell(attributeConcept, provider.getRoleAttributeKind(), editorCell);
      } else
      return editorCell;
    }
    /*package*/ static class Inline_Builder_drg1ot_a2a extends AbstractEditorBuilder {
      @NotNull
      private SNode myNode;
      private SNode myReferencingNode;
  
      /*package*/ Inline_Builder_drg1ot_a2a(@NotNull EditorContext context, SNode referencingNode, @NotNull SNode node) {
        super(context);
        myReferencingNode = referencingNode;
        myNode = node;
      }
  
      /*package*/ EditorCell createCell() {
        return createCollection_drg1ot_a0c0();
      }
  
      @NotNull
      @Override
      public SNode getNode() {
        return myNode;
      }
  
      private EditorCell createCollection_drg1ot_a0c0() {
        EditorCell_Collection editorCell = new EditorCell_Collection(getEditorContext(), myNode, new CellLayout_Indent());
        editorCell.setCellId("Collection_drg1ot_a0c0");
        editorCell.addEditorCell(createRefCell_drg1ot_a0a2a());
        return editorCell;
      }
      private EditorCell createRefCell_drg1ot_a0a2a() {
        CellProviderWithRole provider = new RefCellCellProvider(myNode, getEditorContext()) {
  
          @Override
          protected EditorCell createRefCell(EditorContext context, SNode effectiveNode, SNode node) {
            EditorCell cell = new IsGeen_EditorBuilder_a.Inline_Builder_drg1ot_a2a.Inline_Builder_drg1ot_a0a0c0(getEditorContext(), myNode, effectiveNode).createCell();
            installDeleteActions_notnull(cell);
            return cell;
          }
        };
        provider.setRole("kenmerk");
        provider.setNoTargetText("<no kenmerk>");
        EditorCell editorCell;
  