void () { RecentsManager.getInstance(myProject).registerRecentEntry(RECENTS_KEY, myPackageComponent.getText()); final String packageName = getPackageName(); final String[] errorString = new String[1]; CommandProcessor.getInstance().executeCommand(myProject, () -> { try { final PackageWrapper targetPackage = new PackageWrapper(PsiManager.getInstance(myProject), packageName); final MoveDestination destination = myDestinationCB.selectDirectory(targetPackage, false); if (destination == null) return; myTargetDirectory = WriteAction.compute(() -> { PsiDirectory baseDir = getBaseDir(packageName); if (baseDir == null && destination instanceof MultipleRootsMoveDestination) { errorString[0] = "Destination not found for package '" + packageName + "'"; return null; } return destination.getTargetDirectory(baseDir); }); if (myTargetDirectory == null) { return; } errorString[0] = RefactoringMessageUtil.checkCanCreateClass(myTargetDirectory, getClassName()); } catch (IncorrectOperationException e) { errorString[0] = e.getMessage(); } }, CodeInsightBundle.message("create.directory.command"), null); if (errorString[0] != null) { if (errorString[0].length() > 0) { Messages.showMessageDialog(myProject, errorString[0], CommonBundle.getErrorTitle(), Messages.getErrorIcon()); } return; } super.doOKAction(); }