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;
}
}