Extract Function: Enable visibility selection when target container is class/object

This commit is contained in:
Alexey Sedunov
2014-04-24 20:05:38 +04:00
parent 5fc1725b33
commit 1e964551f3
@@ -25,6 +25,7 @@ import com.intellij.ui.EditorTextField;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.MultiMap;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.psi.JetClassBody;
import org.jetbrains.jet.lang.psi.JetClassOrObject;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.plugin.refactoring.JetNameSuggester;
@@ -34,6 +35,8 @@ import org.jetbrains.jet.plugin.refactoring.extractFunction.*;
import org.jetbrains.jet.renderer.DescriptorRenderer;
import javax.swing.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.List;
import java.util.Map;
@@ -70,7 +73,7 @@ public class KotlinExtractFunctionDialog extends DialogWrapper {
private boolean isVisibilitySectionAvailable() {
PsiElement target = originalDescriptor.getDescriptor().getExtractionData().getNextSibling().getParent();
return target instanceof JetClassOrObject || target instanceof JetFile;
return target instanceof JetClassBody || target instanceof JetFile;
}
private String getFunctionName() {
@@ -125,6 +128,14 @@ public class KotlinExtractFunctionDialog extends DialogWrapper {
String visibility = originalDescriptor.getDescriptor().getVisibility();
visibilityBox.setSelectedItem(visibility.isEmpty() ? "internal" : visibility);
}
visibilityBox.addItemListener(
new ItemListener() {
@Override
public void itemStateChanged(@NotNull ItemEvent e) {
update(true);
}
}
);
parameterTablePanel = new KotlinParameterTablePanel() {
@Override