package jetbrains.mps.lang.smodel.editor;
/*Generated by MPS */
import jetbrains.mps.lang.editor.generator.internal.AbstractCellMenuComponent;
import jetbrains.mps.nodeEditor.cellMenu.SubstituteInfoPartExt;
import jetbrains.mps.lang.editor.generator.internal.AbstractCellMenuPart_Generic_Group;
import java.util.List;
import org.jetbrains.mps.openapi.model.SNode;
import jetbrains.mps.smodel.IOperationContext;
import jetbrains.mps.openapi.editor.EditorContext;
import jetbrains.mps.util.IterableUtil;
import jetbrains.mps.smodel.ModuleRepositoryFacade;
import org.jetbrains.mps.openapi.model.SModel;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SPropertyOperations;
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
import jetbrains.mps.util.NameUtil;
import jetbrains.mps.smodel.SModelStereotype;
import jetbrains.mps.editor.runtime.selection.SelectionUtil;
public class ModelReferenceCompletion extends AbstractCellMenuComponent {
public ModelReferenceCompletion() {
super(new SubstituteInfoPartExt[]{new ModelReferenceCompletion.ModelReferenceExpression_generic_cellMenu_fkcdzz_a0()});
}
public static class ModelReferenceExpression_generic_cellMenu_fkcdzz_a0 extends AbstractCellMenuPart_Generic_Group {
public ModelReferenceExpression_generic_cellMenu_fkcdzz_a0() {
}
public List<?> createParameterObjects(SNode node, IOperationContext operationContext, EditorContext editorContext) {
return IterableUtil.asList(new ModuleRepositoryFacade(editorContext.getRepository()).getAllModels());
}
protected void handleAction(Object parameterObject, SNode node, SModel model, IOperationContext operationContext, EditorContext editorContext) {
this.handleAction_impl((SModel) parameterObject, node, model, operationContext, editorContext);
}
public void handleAction_impl(SModel parameterObject, SNode node, SModel model, IOperationContext operationContext, EditorContext editorContext) {
SPropertyOperations.set(node, MetaAdapterFactory.getProperty(0x7866978ea0f04cc7L, 0x81bc4d213d9375e1L, 0x7c3f2da20e92b62L, 0x7c3f2da20e92b66L, "name"), NameUtil.getModelLongName(parameterObject));
SPropertyOperations.set(node, MetaAdapterFactory.getProperty(0x7866978ea0f04cc7L, 0x81bc4d213d9375e1L, 0x7c3f2da20e92b62L, 0x7c3f2da20e93b6fL, "stereotype"), SModelStereotype.getStereotype(parameterObject));
SelectionUtil.selectLabelCellAnSetCaret(editorContext, node, "FQName", -1);
}
public boolean isReferentPresentation() {
return false;
}
public String getMatchingText(Object parameterObject) {
return this.getMatchingText_internal((SModel) parameterObject);
}
public String getMatchingText_internal(SModel parameterObject) {
return parameterObject.getModelName();
}
}
}