void ( @NotNull Set<KtNamedDeclaration> elementsToMove, @NotNull List<KtNamedDeclaration> declarations ) { //KotlinMemberInfo run resolve on declaration so it is good to place it to the process List<KotlinMemberInfo> memberInfos = MoveUtilKt.mapWithReadActionInProcess(declarations, myProject, MoveHandler.getRefactoringName(), (declaration) -> { KotlinMemberInfo memberInfo = new KotlinMemberInfo(declaration, false); memberInfo.setChecked(elementsToMove.contains(declaration)); return memberInfo; }); KotlinMemberSelectionPanel selectionPanel = new KotlinMemberSelectionPanel(getTitle(), memberInfos, null); memberTable = selectionPanel.getTable(); MemberInfoModelImpl memberInfoModel = new MemberInfoModelImpl(); memberInfoModel.memberInfoChanged(new MemberInfoChange<>(memberInfos)); selectionPanel.getTable().setMemberInfoModel(memberInfoModel); selectionPanel.getTable().addMemberInfoChangeListener(memberInfoModel); selectionPanel.getTable().addMemberInfoChangeListener(listener -> updateControls()); cbApplyMPPDeclarationsMove.addChangeListener(e -> updateControls()); memberInfoPanel.add(selectionPanel, BorderLayout.CENTER); }