private void initMemberInfo(
            @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);
    }
private void initMemberInfo(
            @NotNull Set<KtNamedDeclaration> elementsToMove,
            @NotNull List<KtNamedDeclaration> declarations
    )