mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
tests for inline introduce field
This commit is contained in:
+26
-4
@@ -191,6 +191,22 @@ public class InplaceIntroduceFieldPopup {
|
||||
});
|
||||
}
|
||||
|
||||
public void setReplaceAllOccurrences(boolean replaceAllOccurrences) {
|
||||
myIntroduceFieldPanel.setReplaceAllOccurrences(replaceAllOccurrences);
|
||||
}
|
||||
|
||||
public void setCreateFinal(boolean createFinal) {
|
||||
myIntroduceFieldPanel.setCreateFinal(createFinal);
|
||||
}
|
||||
|
||||
public void setInitializeInFieldDeclaration() {
|
||||
myIntroduceFieldPanel.setInitializeInFieldDeclaration();
|
||||
}
|
||||
|
||||
public void setVisibility(String visibility) {
|
||||
myIntroduceFieldPanel.setVisibility(visibility);
|
||||
}
|
||||
|
||||
class FieldInplaceIntroducer extends AbstractInplaceIntroducer {
|
||||
|
||||
private RangeMarker myFieldRangeStart;
|
||||
@@ -343,13 +359,14 @@ public class InplaceIntroduceFieldPopup {
|
||||
new WriteCommandAction(myProject) {
|
||||
@Override
|
||||
protected void run(Result result) throws Throwable {
|
||||
final Document document = myEditor.getDocument();
|
||||
PsiDocumentManager.getInstance(getProject()).commitDocument(document);
|
||||
final PsiVariable variable = getVariable();
|
||||
LOG.assertTrue(variable != null);
|
||||
final PsiModifierList modifierList = variable.getModifierList();
|
||||
LOG.assertTrue(modifierList != null);
|
||||
int textOffset = modifierList.getTextOffset();
|
||||
|
||||
final Document document = myEditor.getDocument();
|
||||
String visibility = myIntroduceFieldPanel.getFieldVisibility();
|
||||
if (visibility == PsiModifier.PACKAGE_LOCAL) {
|
||||
visibility = "";
|
||||
@@ -369,10 +386,15 @@ public class InplaceIntroduceFieldPopup {
|
||||
length = PsiModifier.PRIVATE.length();
|
||||
}
|
||||
|
||||
final int startOffset = textOffset + Math.max(idx, 0);
|
||||
final int endOffset = textOffset + (idx > -1 ? length : 0);
|
||||
final int startOffset = textOffset + idx;
|
||||
final int endOffset;
|
||||
if (idx == -1) {
|
||||
endOffset = startOffset;
|
||||
} else {
|
||||
endOffset = textOffset + length;
|
||||
}
|
||||
|
||||
document.replaceString(startOffset, endOffset, visibility + (startOffset == endOffset ? " " : ""));
|
||||
document.replaceString(startOffset, endOffset, visibility);
|
||||
}
|
||||
}.execute();
|
||||
}
|
||||
|
||||
+18
@@ -391,4 +391,22 @@ public class IntroduceFieldCentralPanel {
|
||||
public void addFinalListener(ItemListener itemListener) {
|
||||
myCbFinal.addItemListener(itemListener);
|
||||
}
|
||||
|
||||
public void setReplaceAllOccurrences(boolean replaceAllOccurrences) {
|
||||
if (myCbReplaceAll != null) {
|
||||
myCbReplaceAll.setSelected(replaceAllOccurrences);
|
||||
}
|
||||
}
|
||||
|
||||
public void setCreateFinal(boolean createFinal) {
|
||||
myCbFinal.setSelected(createFinal);
|
||||
}
|
||||
|
||||
public void setInitializeInFieldDeclaration() {
|
||||
myRbInFieldDeclaration.setSelected(true);
|
||||
}
|
||||
|
||||
public void setVisibility(String visibility) {
|
||||
myVisibilityPanel.setVisibility(visibility);
|
||||
}
|
||||
}
|
||||
|
||||
+9
-3
@@ -35,6 +35,7 @@ public class IntroduceFieldHandler extends BaseExpressionToFieldHandler {
|
||||
|
||||
public static final String REFACTORING_NAME = RefactoringBundle.message("introduce.field.title");
|
||||
private static final MyOccurenceFilter MY_OCCURENCE_FILTER = new MyOccurenceFilter();
|
||||
private InplaceIntroduceFieldPopup myInplaceIntroduceFieldPopup;
|
||||
|
||||
public IntroduceFieldHandler() {
|
||||
super(false);
|
||||
@@ -105,9 +106,10 @@ public class IntroduceFieldHandler extends BaseExpressionToFieldHandler {
|
||||
final TypeSelectorManagerImpl typeSelectorManager = new TypeSelectorManagerImpl(project, type, containingMethod, expr, occurences);
|
||||
|
||||
if (editor != null && editor.getSettings().isVariableInplaceRenameEnabled() && ApplicationManagerEx.getApplicationEx().isInternal()) {
|
||||
new InplaceIntroduceFieldPopup(localVariable, parentClass, declareStatic, currentMethodConstructor, occurences, expr, typeSelectorManager, editor,
|
||||
allowInitInMethod, allowInitInMethodIfAll, anchorElement, anchorElementIfAll, createOccurenceManager(expr, parentClass))
|
||||
.startTemplate();
|
||||
myInplaceIntroduceFieldPopup =
|
||||
new InplaceIntroduceFieldPopup(localVariable, parentClass, declareStatic, currentMethodConstructor, occurences, expr, typeSelectorManager, editor,
|
||||
allowInitInMethod, allowInitInMethodIfAll, anchorElement, anchorElementIfAll, createOccurenceManager(expr, parentClass));
|
||||
myInplaceIntroduceFieldPopup.startTemplate();
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -139,6 +141,10 @@ public class IntroduceFieldHandler extends BaseExpressionToFieldHandler {
|
||||
dialog.getFieldType(), localVariable != null, (TargetDestination)null, false, false);
|
||||
}
|
||||
|
||||
public InplaceIntroduceFieldPopup getInplaceIntroduceFieldPopup() {
|
||||
return myInplaceIntroduceFieldPopup;
|
||||
}
|
||||
|
||||
private static boolean isInSuperOrThis(PsiExpression occurence) {
|
||||
return !NotInSuperCallOccurenceFilter.INSTANCE.isOK(occurence) || !NotInThisCallFilter.INSTANCE.isOK(occurence);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user