Move: Disable "Update package directive" check box when moving separate declarations instead of entire file

#KT-8414 Fixed
This commit is contained in:
Alexey Sedunov
2015-07-23 16:33:43 +03:00
parent 05fd4b75dd
commit 5179c10b4c
@@ -196,6 +196,7 @@ public class MoveKotlinTopLevelDeclarationsDialog extends RefactoringDialog {
@Override
public void memberInfoChanged(MemberInfoChange<JetNamedDeclaration, KotlinMemberInfo> event) {
updatePackageDirectiveCheckBox();
// Update file name field only if it user hasn't changed it to some non-default value
if (shouldUpdateFileNameField(event.getChangedMembers())) {
updateSuggestedFileName();
@@ -324,12 +325,16 @@ public class MoveKotlinTopLevelDeclarationsDialog extends RefactoringDialog {
classPackageChooser.setEnabled(moveToPackage);
updateFileNameInPackageField();
fileChooser.setEnabled(!moveToPackage);
cbUpdatePackageDirective.setEnabled(moveToPackage);
updatePackageDirectiveCheckBox();
UIUtil.setEnabled(targetPanel, moveToPackage && hasAnySourceRoots(), true);
updateSuggestedFileName();
validateButtons();
}
private void updatePackageDirectiveCheckBox() {
cbUpdatePackageDirective.setEnabled(isMoveToPackage() && getSelectedElementsToMove().size() == sourceFile.getDeclarations().size());
}
private boolean hasAnySourceRoots() {
return !JavaProjectRootsUtil.getSuitableDestinationSourceRoots(myProject).isEmpty();
}