Search in sources :

Example 1 with MoveClassesOrPackagesCallback

use of com.intellij.refactoring.move.MoveClassesOrPackagesCallback in project intellij-community by JetBrains.

the class MoveClassesOrPackagesDialog method setData.

public void setData(PsiElement[] psiElements, String targetPackageName, PsiDirectory initialTargetDirectory, boolean isTargetDirectoryFixed, boolean suggestToMoveToAnotherRoot, boolean searchInComments, boolean searchForTextOccurences, String helpID) {
    myTargetDirectoryFixed = isTargetDirectoryFixed;
    mySuggestToMoveToAnotherRoot = suggestToMoveToAnotherRoot;
    if (targetPackageName.length() != 0) {
        myWithBrowseButtonReference.prependItem(targetPackageName);
        myClassPackageChooser.prependItem(targetPackageName);
    }
    String nameFromCallback = myMoveCallback instanceof MoveClassesOrPackagesCallback ? ((MoveClassesOrPackagesCallback) myMoveCallback).getElementsToMoveName() : null;
    if (nameFromCallback != null) {
        myNameLabel.setText(nameFromCallback);
    } else if (psiElements.length == 1) {
        PsiElement firstElement = psiElements[0];
        if (firstElement instanceof PsiClass) {
            LOG.assertTrue(!MoveClassesOrPackagesImpl.isClassInnerOrLocal((PsiClass) firstElement));
        } else {
            PsiElement parent = firstElement.getParent();
            LOG.assertTrue(parent != null);
        }
        myNameLabel.setText(RefactoringBundle.message("move.single.class.or.package.name.label", UsageViewUtil.getType(firstElement), UsageViewUtil.getLongName(firstElement)));
    } else if (psiElements.length > 1) {
        myNameLabel.setText(psiElements[0] instanceof PsiClass ? RefactoringBundle.message("move.specified.classes") : RefactoringBundle.message("move.specified.packages"));
    }
    selectInitialCard();
    myCbSearchInComments.setSelected(searchInComments);
    myCbSearchTextOccurences.setSelected(searchForTextOccurences);
    if (initialTargetDirectory != null && JavaMoveClassesOrPackagesHandler.packageHasMultipleDirectoriesInModule(myProject, initialTargetDirectory)) {
        final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(myProject).getFileIndex();
        final Set<VirtualFile> initialRoots = new HashSet<>();
        collectSourceRoots(psiElements, fileIndex, initialRoots);
        if (initialRoots.size() > 1) {
            initialTargetDirectory = null;
        }
    }
    ((DestinationFolderComboBox) myDestinationFolderCB).setData(myProject, initialTargetDirectory, new Pass<String>() {

        @Override
        public void pass(String s) {
            setErrorText(s, myDestinationFolderCB);
        }
    }, myHavePackages ? myWithBrowseButtonReference.getChildComponent() : myClassPackageChooser.getChildComponent());
    UIUtil.setEnabled(myTargetPanel, !getSourceRoots().isEmpty() && isMoveToPackage() && !isTargetDirectoryFixed, true);
    validateButtons();
    myHelpID = helpID;
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) ProjectFileIndex(com.intellij.openapi.roots.ProjectFileIndex) MoveClassesOrPackagesCallback(com.intellij.refactoring.move.MoveClassesOrPackagesCallback) HashSet(com.intellij.util.containers.hash.HashSet)

Aggregations

ProjectFileIndex (com.intellij.openapi.roots.ProjectFileIndex)1 VirtualFile (com.intellij.openapi.vfs.VirtualFile)1 MoveClassesOrPackagesCallback (com.intellij.refactoring.move.MoveClassesOrPackagesCallback)1 HashSet (com.intellij.util.containers.hash.HashSet)1