package jetbrains.mps.baseLanguage.lightweightdsl.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.AbstractCellProvider;
import jetbrains.mps.baseLanguage.closures.runtime._FunctionTypes;
import jetbrains.mps.nodeEditor.cells.EditorCell_Label;
import jetbrains.mps.nodeEditor.cells.EditorCell_Constant;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SPropertyOperations;
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
import jetbrains.mps.nodeEditor.cellMenu.CompositeSubstituteInfo;
import jetbrains.mps.nodeEditor.cellMenu.BasicCellContext;
import jetbrains.mps.nodeEditor.cellMenu.SubstituteInfoPartExt;
import jetbrains.mps.editor.runtime.cells.BigCellUtil;
import jetbrains.mps.openapi.editor.style.Style;
import jetbrains.mps.editor.runtime.style.StyleImpl;
import jetbrains.mps.baseLanguage.editor.BaseLanguageStyle_StyleSheet.CommentStyleClass;
import jetbrains.mps.editor.runtime.style.StyleAttributes;
/*package*/ class MemberPlaceholder_EditorBuilder_a extends AbstractEditorBuilder {
@NotNull
private SNode myNode;
public MemberPlaceholder_EditorBuilder_a(@NotNull EditorContext context, @NotNull SNode node) {
super(context);
myNode = node;
}
@NotNull
@Override
public SNode getNode() {
return myNode;
}
/*package*/ EditorCell createCell() {
return createCustom_9j55p5_a();
}
private EditorCell createCustom_9j55p5_a() {
AbstractCellProvider provider = new _FunctionTypes._return_P0_E0<AbstractCellProvider>() {
public AbstractCellProvider invoke() {
return new AbstractCellProvider(myNode) {
public EditorCell createEditorCell(EditorContext context) {
EditorCell_Label cell = new EditorCell_Constant(context, myNode, "");
cell.setDefaultText(SPropertyOperations.getString(myNode, MetaAdapterFactory.getProperty(0xc7d5b9dda05f4be2L, 0xbc73f2e16994cc67L, 0x59e9926e840d7db2L, 0x59e9926e840d7db3L, "caption")));
cell.setSelectable(true);
cell.setSubstituteInfo(new CompositeSubstituteInfo(getEditorContext(), new BasicCellContext(myNode), new SubstituteInfoPartExt[]{new ClassLikeMemberPlaceholderMenu()}));
// this is a dirty hack. TODO remove this code when MPS-22216 is fixed
Placeholder2RealObject.setCellActions(cell, myNode, context);
return cell;
}
};
}
}.invoke();
EditorCell editorCell = provider.createEditorCell(getEditorContext());
editorCell.setCellId("Custom_9j55p5_a");
EditorCell bigCell = BigCellUtil.findBigCell(editorCell, getNode());
if (bigCell != null) {
bigCell.setBig(true);
bigCell.setCellContext(getCellFactory().getCellContext());
}
Style style = new StyleImpl();
new CommentStyleClass(getEditorContext(), getNode()).apply(style, editorCell);
style.set(StyleAttributes.SELECTABLE, true);
editorCell.getStyle().putAll(style);
return editorCell;
}
}