OC-2385 Feature Request: Extract method should create interface definition

OC-3557 Create method from usage for protocols
OC-4331 Allow extracting a method to a category
This commit is contained in:
Alexander Kirillin
2012-06-28 23:21:16 +04:00
parent f8d1f220b8
commit a1235143fc
11 changed files with 67 additions and 35 deletions
@@ -80,7 +80,7 @@ import static com.intellij.refactoring.changeSignature.ChangeSignatureHandler.RE
/**
* @author Konstantin Bulenkov
*/
public class JavaChangeSignatureDialog extends ChangeSignatureDialogBase<ParameterInfoImpl, PsiMethod, JavaMethodDescriptor> {
public class JavaChangeSignatureDialog extends ChangeSignatureDialogBase<ParameterInfoImpl, PsiMethod, String, JavaMethodDescriptor> {
private ExceptionsTableModel myExceptionsModel;
protected Set<PsiMethod> myMethodsToPropagateExceptions;
private AnActionButton myPropExceptionsButton;
@@ -95,7 +95,7 @@ public class JavaChangeSignatureDialog extends ChangeSignatureDialogBase<Paramet
}
@Override
protected VisibilityPanelBase createVisibilityControl() {
protected VisibilityPanelBase<String> createVisibilityControl() {
return new JavaComboBoxVisibilityPanel();
}
@@ -192,7 +192,7 @@ public class JavaChangeSignatureDialog extends ChangeSignatureDialogBase<Paramet
}
@Override
protected ParameterTableModelBase<ParameterInfoImpl> createParametersInfoModel(MethodDescriptor<ParameterInfoImpl> descriptor) {
protected ParameterTableModelBase<ParameterInfoImpl> createParametersInfoModel(MethodDescriptor<ParameterInfoImpl, String> descriptor) {
final PsiParameterList parameterList = ((JavaMethodDescriptor)descriptor).getMethod().getParameterList();
return new JavaParameterTableModel(parameterList, myDefaultValueContext, this);
}
@@ -25,7 +25,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
public class JavaMethodDescriptor implements MethodDescriptor<ParameterInfoImpl> {
public class JavaMethodDescriptor implements MethodDescriptor<ParameterInfoImpl, String> {
private final PsiMethod myMethod;
@@ -72,7 +72,7 @@ public class ExtractMethodDialog extends AbstractExtractDialog {
private final InputVariables myVariableData;
private final PsiClass myTargetClass;
private ComboBoxVisibilityPanel myVisibilityPanel;
private ComboBoxVisibilityPanel<String> myVisibilityPanel;
private boolean myDefaultVisibility = true;
private boolean myChangingVisibility;
@@ -300,7 +300,7 @@ public class ExtractMethodDialog extends AbstractExtractDialog {
return optionsPanel;
}
private ComboBoxVisibilityPanel createVisibilityPanel() {
private ComboBoxVisibilityPanel<String> createVisibilityPanel() {
final JavaComboBoxVisibilityPanel panel = new JavaComboBoxVisibilityPanel();
panel.setVisibility(PsiModifier.PRIVATE);
panel.addListener(new ChangeListener() {
@@ -22,7 +22,7 @@ import static com.intellij.util.VisibilityUtil.toPresentableText;
/**
* @author Konstantin Bulenkov
*/
public class JavaComboBoxVisibilityPanel extends ComboBoxVisibilityPanel implements PsiModifier {
public class JavaComboBoxVisibilityPanel extends ComboBoxVisibilityPanel<String> implements PsiModifier {
private static final String[] MODIFIERS = {PRIVATE, PACKAGE_LOCAL, PROTECTED, PUBLIC};
private static final String[] PRESENTABLE_NAMES = {
@@ -36,7 +36,7 @@ import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
public class JavaVisibilityPanel extends VisibilityPanelBase {
public class JavaVisibilityPanel extends VisibilityPanelBase<String> {
private JRadioButton myRbAsIs;
private JRadioButton myRbEscalate;
private final JRadioButton myRbPrivate;