package jetbrains.mps.editor.runtime.descriptor; /*Generated by MPS */ import org.jetbrains.annotations.NotNull; import jetbrains.mps.openapi.editor.EditorContext; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.openapi.editor.cells.EditorCellFactory; import jetbrains.mps.openapi.editor.update.UpdateSession; import jetbrains.mps.openapi.editor.cells.EditorCell_Collection; import jetbrains.mps.openapi.editor.cells.EditorCell; import jetbrains.mps.internal.collections.runtime.Sequence; public abstract class AbstractEditorBuilder implements EditorBuilderEnvironment { @NotNull private EditorContext myEditorContext; public AbstractEditorBuilder(@NotNull EditorContext editorContext) { myEditorContext = editorContext; } @NotNull public EditorContext getEditorContext() { return myEditorContext; } @NotNull public abstract SNode getNode(); public EditorCellFactory getCellFactory() { return getUpdateSession().getCellFactory(); } @Override public UpdateSession getUpdateSession() { return myEditorContext.getEditorComponent().getUpdater().getCurrentUpdateSession(); } protected void setInnerCellsContext(EditorCell_Collection cells) { for (EditorCell cell : Sequence.fromIterable(cells)) { setCellContext(cell); } } protected EditorCell setCellContext(EditorCell cell) { if (cell.getCellContext() == null) { cell.setCellContext(getCellFactory().getCellContext()); } return cell; } }