package jetbrains.mps.baseLanguage.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.editor.runtime.cells.BigCellUtil; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SConceptOperations; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.nodeEditor.AbstractCellProvider; import jetbrains.mps.baseLanguage.closures.runtime._FunctionTypes; import jetbrains.mps.nodeEditor.cells.EditorCell_Error; import jetbrains.mps.editor.runtime.style.StyleAttributes; import jetbrains.mps.editor.runtime.style.Padding; /*package*/ class Expression_EditorBuilder_a extends AbstractEditorBuilder { @NotNull private SNode myNode; public Expression_EditorBuilder_a(@NotNull EditorContext context, @NotNull SNode node) { super(context); myNode = node; } @NotNull @Override public SNode getNode() { return myNode; } /*package*/ EditorCell createCell() { return createAlternation_1ltshm_a(); } private EditorCell createAlternation_1ltshm_a() { boolean alternationCondition = true; alternationCondition = nodeCondition_1ltshm_a0(); EditorCell editorCell = null; if (alternationCondition) { editorCell = createCustom_1ltshm_a0(); } else { editorCell = createComponent_1ltshm_a0(); } EditorCell bigCell = BigCellUtil.findBigCell(editorCell, getNode()); if (bigCell != null) { bigCell.setBig(true); bigCell.setCellContext(getCellFactory().getCellContext()); } return editorCell; } private boolean nodeCondition_1ltshm_a0() { return isEmptyString(SConceptOperations.conceptAlias(SNodeOperations.getConcept(myNode))); } private EditorCell createCustom_1ltshm_a0() { AbstractCellProvider provider = new _FunctionTypes._return_P0_E0<AbstractCellProvider>() { public AbstractCellProvider invoke() { return new AbstractCellProvider(myNode) { @Override public EditorCell createEditorCell(EditorContext context) { EditorCell_Error result = new EditorCell_Error(context, myNode, "<" + myNode.getRoleInParent() + ">"); result.getStyle().set(StyleAttributes.PADDING_LEFT, new Padding(0.0)); result.getStyle().set(StyleAttributes.PADDING_RIGHT, new Padding(0.0)); return result; } }; } }.invoke(); EditorCell editorCell = provider.createEditorCell(getEditorContext()); editorCell.setCellId("Custom_1ltshm_a0"); return editorCell; } private EditorCell createComponent_1ltshm_a0() { EditorCell editorCell = getCellFactory().createEditorComponentCell(myNode, "jetbrains.mps.lang.core.editor.alias"); return editorCell; } private static boolean isEmptyString(String str) { return str == null || str.length() == 0; } }