package jetbrains.mps.execution.settings.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.cells.EditorCell_Constant;
import jetbrains.mps.openapi.editor.style.Style;
import jetbrains.mps.editor.runtime.style.StyleImpl;
import jetbrains.mps.execution.common.editor.RunConfigurations_StyleSheet.operationStyleClass;
import jetbrains.mps.editor.runtime.style.StyleAttributes;
import jetbrains.mps.lang.pattern.IMatchingPattern;
import jetbrains.mps.lang.typesystem.runtime.HUtil;
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
import jetbrains.mps.typesystem.inference.TypeChecker;
import jetbrains.mps.baseLanguage.behavior.IOperation__BehaviorDescriptor;
import jetbrains.mps.internal.collections.runtime.ListSequence;
import jetbrains.mps.baseLanguage.classifiers.behavior.BaseClassifierType__BehaviorDescriptor;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SLinkOperations;
/*package*/ class CheckProperitesOperation_EditorBuilder_a extends AbstractEditorBuilder {
@NotNull
private SNode myNode;
public CheckProperitesOperation_EditorBuilder_a(@NotNull EditorContext context, @NotNull SNode node) {
super(context);
myNode = node;
}
@NotNull
@Override
public SNode getNode() {
return myNode;
}
/*package*/ EditorCell createCell() {
return createCollection_ti2jjv_a();
}
private EditorCell createCollection_ti2jjv_a() {
EditorCell_Collection editorCell = new EditorCell_Collection(getEditorContext(), myNode, new CellLayout_Indent());
editorCell.setCellId("Collection_ti2jjv_a");
editorCell.setBig(true);
editorCell.setCellContext(getCellFactory().getCellContext());
editorCell.addEditorCell(createConstant_ti2jjv_a0());
return editorCell;
}
private EditorCell createConstant_ti2jjv_a0() {
EditorCell_Constant editorCell = new EditorCell_Constant(getEditorContext(), myNode, "check");
editorCell.setCellId("Constant_ti2jjv_a0");
Style style = new StyleImpl();
new operationStyleClass(getEditorContext(), getNode()).apply(style, editorCell);
style.set(StyleAttributes.NAVIGATABLE_NODE, _StyleParameter_QueryFunction_ti2jjv_a0a0());
editorCell.getStyle().putAll(style);
editorCell.setDefaultText("");
return editorCell;
}
private SNode _StyleParameter_QueryFunction_ti2jjv_a0a0() {
{
IMatchingPattern pattern_ti2jjv_a0a0a0 = HUtil.createMatchingPatternByConcept(MetaAdapterFactory.getConcept(0x756e911c3f1f4a48L, 0xbdf5a2ceb91b723cL, 0xd244b712f91001cL, "jetbrains.mps.execution.settings.structure.PersistentConfigurationType"));
SNode coercedNode_ti2jjv_a0a0a0 = TypeChecker.getInstance().getRuntimeSupport().coerce_(TypeChecker.getInstance().getTypeOf(IOperation__BehaviorDescriptor.getOperand_idhEwIP$m.invoke(getNode())), pattern_ti2jjv_a0a0a0);
if (coercedNode_ti2jjv_a0a0a0 != null) {
for (SNode member : ListSequence.fromList(BaseClassifierType__BehaviorDescriptor.getMembers_idhEwINC$.invoke(coercedNode_ti2jjv_a0a0a0, getNode()))) {
if (SNodeOperations.isInstanceOf(member, MetaAdapterFactory.getConcept(0x756e911c3f1f4a48L, 0xbdf5a2ceb91b723cL, 0xd244b712f910125L, "jetbrains.mps.execution.settings.structure.CheckProperties_Function"))) {
return member;
}
}
return SLinkOperations.getTarget(coercedNode_ti2jjv_a0a0a0, MetaAdapterFactory.getReferenceLink(0x756e911c3f1f4a48L, 0xbdf5a2ceb91b723cL, 0xd244b712f91001cL, 0xd244b712f91001dL, "persistentConfiguration"));
} else {
return null;
}
}
}
}