From 30d18cfa43547fae78911f780aa709d122c2fc18 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Tue, 26 Jun 2012 09:46:32 +0200 Subject: [PATCH 1/8] disable condition field when condition checkbox is unchecked --- .../breakpoints/BreakpointPropertiesPanel.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPropertiesPanel.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPropertiesPanel.java index 8ba45abd66c3..04a2e63038ba 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPropertiesPanel.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPropertiesPanel.java @@ -369,18 +369,20 @@ public abstract class BreakpointPropertiesPanel { insert(myClassFiltersFieldPanel, myClassFiltersField); DebuggerUIUtil.enableEditorOnCheck(myLogExpressionCheckBox, myLogExpressionCombo); - ActionListener listener = new ActionListener() { + ActionListener updateListener = new ActionListener() { public void actionPerformed(ActionEvent e) { updateCheckboxes(); } }; - myPassCountCheckbox.addActionListener(listener); - myInstanceFiltersCheckBox.addActionListener(listener); - myClassFiltersCheckBox.addActionListener(listener); + myPassCountCheckbox.addActionListener(updateListener); + myInstanceFiltersCheckBox.addActionListener(updateListener); + myClassFiltersCheckBox.addActionListener(updateListener); + myConditionCheckbox.addActionListener(updateListener); DebuggerUIUtil.focusEditorOnCheck(myPassCountCheckbox, myPassCountField); DebuggerUIUtil.focusEditorOnCheck(myLogExpressionCheckBox, myLogExpressionCombo); DebuggerUIUtil.focusEditorOnCheck(myInstanceFiltersCheckBox, myInstanceFiltersField.getTextField()); DebuggerUIUtil.focusEditorOnCheck(myClassFiltersCheckBox, myClassFiltersField.getTextField()); + DebuggerUIUtil.focusEditorOnCheck(myConditionCheckbox, myConditionCombo); IJSwingUtilities.adjustComponentsOnMac(mySuspendJBCheckBox); IJSwingUtilities.adjustComponentsOnMac(myLogExpressionCheckBox); @@ -873,7 +875,7 @@ public abstract class BreakpointPropertiesPanel { break; } } - if(selected != null || !myConditionCombo.getText().isEmpty()){ + if(selected != null || !myConditionCheckbox.isSelected()){ myPassCountCheckbox.setEnabled(false); } else { myPassCountCheckbox.setEnabled(true); @@ -886,8 +888,8 @@ public abstract class BreakpointPropertiesPanel { myPassCountField.setEditable(myPassCountCheckbox.isSelected()); myPassCountField.setEnabled (myPassCountCheckbox.isSelected()); - myConditionCombo.setEnabled(true); - myConditionMagnifierButton.setEnabled(true); + myConditionCombo.setEnabled(myConditionCheckbox.isSelected()); + myConditionMagnifierButton.setEnabled(myConditionCheckbox.isSelected()); myInstanceFiltersField.setEnabled(myInstanceFiltersCheckBox.isSelected()); myInstanceFiltersField.getTextField().setEditable(myInstanceFiltersCheckBox.isSelected()); From 4eaa791cd1fbf8da7e9536843e9c81f277b41bcc Mon Sep 17 00:00:00 2001 From: "Maxim.Medvedev" Date: Tue, 26 Jun 2012 11:49:53 +0400 Subject: [PATCH 2/8] fix testdata --- .../testdata/intentions/staticImport/SingleImport3_after.groovy | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/groovy/testdata/intentions/staticImport/SingleImport3_after.groovy b/plugins/groovy/testdata/intentions/staticImport/SingleImport3_after.groovy index 618a7106ce31..cb0e6425f167 100644 --- a/plugins/groovy/testdata/intentions/staticImport/SingleImport3_after.groovy +++ b/plugins/groovy/testdata/intentions/staticImport/SingleImport3_after.groovy @@ -1,5 +1,3 @@ -import static Util.doSomething - class Util { static doSomething(){} } From 4d52e3c268b23a94ac13ccd4f3af67df22f97b28 Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 26 Jun 2012 09:58:17 +0200 Subject: [PATCH 3/8] debugging com.intellij.codeInsight.daemon.quickFix.CreateFieldFromUsageTest.testSortByRelevance --- .../intellij/codeInsight/ExpectedTypesProvider.java | 2 +- .../impl/quickfix/CreateFieldFromUsageFix.java | 7 +++++++ .../codeInsight/intention/impl/TypeExpression.java | 12 +++++++----- .../daemon/quickFix/CreateFieldFromUsageTest.java | 8 ++++++++ 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/ExpectedTypesProvider.java b/java/java-impl/src/com/intellij/codeInsight/ExpectedTypesProvider.java index a4718817a404..3947e5c6d0f8 100644 --- a/java/java-impl/src/com/intellij/codeInsight/ExpectedTypesProvider.java +++ b/java/java-impl/src/com/intellij/codeInsight/ExpectedTypesProvider.java @@ -136,7 +136,7 @@ public class ExpectedTypesProvider { public static PsiType[] processExpectedTypes(@NotNull ExpectedTypeInfo[] infos, @NotNull PsiTypeVisitor visitor, @NotNull Project project) { - Set set = new LinkedHashSet(); + LinkedHashSet set = new LinkedHashSet(); for (ExpectedTypeInfo info : infos) { ExpectedTypeInfoImpl infoImpl = (ExpectedTypeInfoImpl)info; diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFieldFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFieldFromUsageFix.java index 7cdd4e046204..dc2ce42bc478 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFieldFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFieldFromUsageFix.java @@ -29,10 +29,13 @@ import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.PsiUtil; import org.jetbrains.annotations.NotNull; +import java.util.Arrays; + /** * @author Mike */ public class CreateFieldFromUsageFix extends CreateVarFromUsageFix { + public static boolean DEBUG = false; private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.daemon.impl.quickfix.CreateFieldFromUsageFix"); public CreateFieldFromUsageFix(PsiReferenceExpression referenceElement) { @@ -71,6 +74,10 @@ public class CreateFieldFromUsageFix extends CreateVarFromUsageFix { final PsiFile targetFile = targetClass.getContainingFile(); ExpectedTypeInfo[] expectedTypes = CreateFromUsageUtils.guessExpectedTypes(myReferenceExpression, false); + if (DEBUG) { + System.out.println("CreateFieldFromUsageFix.invokeImpl"); + System.out.println("expectedTypes = " + Arrays.toString(expectedTypes)); + } String fieldName = myReferenceExpression.getReferenceName(); assert fieldName != null; diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/TypeExpression.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/TypeExpression.java index b0247a387e84..25aed8ce4cc8 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/TypeExpression.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/TypeExpression.java @@ -15,6 +15,7 @@ */ package com.intellij.codeInsight.intention.impl; +import com.intellij.codeInsight.daemon.impl.quickfix.CreateFieldFromUsageFix; import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.codeInsight.lookup.PsiTypeLookupItem; import com.intellij.codeInsight.template.Expression; @@ -25,17 +26,18 @@ import com.intellij.openapi.editor.Document; import com.intellij.openapi.project.Project; import com.intellij.psi.*; -import java.util.ArrayList; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; +import java.util.*; public class TypeExpression extends Expression { - private final Set myItems; + private final LinkedHashSet myItems; public TypeExpression(final Project project, PsiType[] types) { final SmartTypePointerManager manager = SmartTypePointerManager.getInstance(project); myItems = new LinkedHashSet(); + if (CreateFieldFromUsageFix.DEBUG) { + System.out.println("TypeExpression.TypeExpression"); + System.out.println("types = " + Arrays.toString(types)); + } for (final PsiType type : types) { myItems.add(manager.createSmartTypePointer(type)); } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/CreateFieldFromUsageTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/CreateFieldFromUsageTest.java index 655338f5ed5d..838e5488740d 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/CreateFieldFromUsageTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/CreateFieldFromUsageTest.java @@ -1,5 +1,6 @@ package com.intellij.codeInsight.daemon.quickFix; +import com.intellij.codeInsight.daemon.impl.quickfix.CreateFieldFromUsageFix; import com.intellij.openapi.application.Result; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.vfs.VfsUtil; @@ -22,7 +23,14 @@ public class CreateFieldFromUsageTest extends LightQuickFixTestCase{ public void testCreateFromEquals() throws Exception { doSingleTest(); } public void testCreateFromEqualsToPrimitiveType() throws Exception { doSingleTest(); } + @Override + protected void tearDown() throws Exception { + CreateFieldFromUsageFix.DEBUG = false; + super.tearDown(); + } + public void testSortByRelevance() throws Exception { + CreateFieldFromUsageFix.DEBUG = true; new WriteCommandAction(getProject()) { @Override protected void run(Result result) throws Exception { From 8ea57d1ac6e9655cd3fd421bab6e2ae3d1519271 Mon Sep 17 00:00:00 2001 From: Sergey Simonchik Date: Tue, 26 Jun 2012 12:01:55 +0400 Subject: [PATCH 4/8] Guava version updated from R8 to 12.0 --- build/scripts/libLicenses.gant | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/scripts/libLicenses.gant b/build/scripts/libLicenses.gant index 29b981ef038e..604e8f33ccd7 100644 --- a/build/scripts/libLicenses.gant +++ b/build/scripts/libLicenses.gant @@ -181,7 +181,7 @@ libraryLicense(name: "Apache Commons HTTPCore", libraryName: "httpcore-4.1.jar", url: "http://hc.apache.org/httpcomponents-core-ga/", licenseUrl: "http://www.apache.org/licenses/LICENSE-2.0") libraryLicense(name: "Antlr", libraryName: "antlr.jar", version: "3.1.3", license: "BSD", url: "http://www.antlr.org", licenseUrl: "http://www.antlr.org/license.html") -libraryLicense(name: "Guava", version: "R8", license: "Apache 2.0", url: "http://code.google.com/p/guava-libraries/", licenseUrl: "http://ant.apache.org/license.html") +libraryLicense(name: "Guava", version: "12.0", license: "Apache 2.0", url: "http://code.google.com/p/guava-libraries/", licenseUrl: "http://ant.apache.org/license.html") libraryLicense(name: "Groovy", version: "1.7.3", license: "Apache 2.0", url: "http://groovy.codehaus.org/") libraryLicense(name: "Gson", libraryName: "gson", license: "Apache 2.0", url: "http://code.google.com/p/google-gson/") libraryLicense(name: "ini4j", libraryName: "ini4j-0.5.2-patched", version: "0.5.2 (with a patch by JetBrains)", license: "Apache 2.0", url: "http://ini4j.sourceforge.net/", attachedTo: "git4idea") From a10244e8c149ebfeb9efc6e20af3afc8968d8168 Mon Sep 17 00:00:00 2001 From: Danila Ponomarenko Date: Tue, 26 Jun 2012 12:45:21 +0400 Subject: [PATCH 5/8] IDEA-87657 IOE at com.intellij.psi.impl.CheckUtil.checkWritable fixed --- .../impl/ConvertAbsolutePathToRelativeIntentionAction.java | 4 +++- .../codeInsight/intention/PsiElementBaseIntentionAction.java | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/ConvertAbsolutePathToRelativeIntentionAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/ConvertAbsolutePathToRelativeIntentionAction.java index cc2295d1c616..b3b533597c71 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/ConvertAbsolutePathToRelativeIntentionAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/ConvertAbsolutePathToRelativeIntentionAction.java @@ -15,6 +15,7 @@ */ package com.intellij.codeInsight.intention.impl; +import com.intellij.codeInsight.CodeInsightUtilBase; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiFile; @@ -38,7 +39,6 @@ public class ConvertAbsolutePathToRelativeIntentionAction extends BaseIntentionA @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { - final PsiReference reference = file.findReferenceAt(editor.getCaretModel().getOffset()); final FileReference fileReference = reference == null ? null : findFileReference(reference); @@ -81,6 +81,8 @@ public class ConvertAbsolutePathToRelativeIntentionAction extends BaseIntentionA @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { + if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; + final PsiReference reference = file.findReferenceAt(editor.getCaretModel().getOffset()); final FileReference fileReference = reference == null ? null : findFileReference(reference); if (fileReference != null) { diff --git a/platform/lang-api/src/com/intellij/codeInsight/intention/PsiElementBaseIntentionAction.java b/platform/lang-api/src/com/intellij/codeInsight/intention/PsiElementBaseIntentionAction.java index 0a237b0e65d9..c7495e451384 100644 --- a/platform/lang-api/src/com/intellij/codeInsight/intention/PsiElementBaseIntentionAction.java +++ b/platform/lang-api/src/com/intellij/codeInsight/intention/PsiElementBaseIntentionAction.java @@ -35,6 +35,7 @@ import org.jetbrains.annotations.Nullable; public abstract class PsiElementBaseIntentionAction extends BaseIntentionAction { @Override public final void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { + if (!file.getManager().isInProject(file)) return; final PsiElement element = getElement(editor, file); if (element != null) { invoke(project, editor, element); @@ -54,6 +55,7 @@ public abstract class PsiElementBaseIntentionAction extends BaseIntentionAction @Override public final boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { + if (!file.getManager().isInProject(file)) return false; final PsiElement element = getElement(editor, file); return element != null && isAvailable(project, editor, element); } @@ -71,7 +73,6 @@ public abstract class PsiElementBaseIntentionAction extends BaseIntentionAction @Nullable protected static PsiElement getElement(Editor editor, @NotNull PsiFile file) { - if (!file.getManager().isInProject(file)) return null; CaretModel caretModel = editor.getCaretModel(); int position = caretModel.getOffset(); return file.findElementAt(position); From 6abe457c5560fb81ca8e9c2507ff55d632beba8e Mon Sep 17 00:00:00 2001 From: "kirill.safonov" Date: Tue, 26 Jun 2012 14:03:01 +0400 Subject: [PATCH 6/8] inline class --- .../src/com/intellij/util/CommonProcessors.java | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/platform/util/src/com/intellij/util/CommonProcessors.java b/platform/util/src/com/intellij/util/CommonProcessors.java index e0b3492610ae..0d0a6033b235 100644 --- a/platform/util/src/com/intellij/util/CommonProcessors.java +++ b/platform/util/src/com/intellij/util/CommonProcessors.java @@ -59,19 +59,6 @@ public class CommonProcessors { return myCollection; } - public static class Sync extends CollectProcessor { - public Sync(final Collection collection) { - super(collection); - } - - public Sync() { - } - - @Override - public synchronized boolean process(final T t) { - return super.process(t); - } - } } @NotNull From ffea8eadbe971b26844a86214d4c36b6c57af2a5 Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 26 Jun 2012 12:52:42 +0200 Subject: [PATCH 7/8] no mouse cursor changes for not showing toolwindow splitters --- .../src/com/intellij/openapi/ui/ThreeComponentsSplitter.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/platform/platform-api/src/com/intellij/openapi/ui/ThreeComponentsSplitter.java b/platform/platform-api/src/com/intellij/openapi/ui/ThreeComponentsSplitter.java index feb8f7752514..a5b9bf5ad80a 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/ThreeComponentsSplitter.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/ThreeComponentsSplitter.java @@ -675,6 +675,9 @@ public class ThreeComponentsSplitter extends JPanel implements Disposable { protected void processMouseEvent(MouseEvent e) { super.processMouseEvent(e); + if (!isShowing()) { + return; + } switch (e.getID()) { case MouseEvent.MOUSE_ENTERED: setCursor(getResizeCursor()); From 45c2a91bcd87e08054b0b4db1a1afac1a1c128ee Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 26 Jun 2012 12:55:31 +0200 Subject: [PATCH 8/8] debugging com.intellij.codeInsight.daemon.quickFix.CreateFieldFromUsageTest.testSortByRelevance --- .../daemon/impl/quickfix/CreateFromUsageUtils.java | 12 ++++++++++++ .../codeInsight/intention/impl/TypeExpression.java | 9 +++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java index 456812925a0d..e8abc91559e8 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java @@ -622,6 +622,13 @@ public class CreateFromUsageUtils { List expectedFieldNames = new ArrayList(); getExpectedInformation(expression, typesList, expectedMethodNames, expectedFieldNames); + if (CreateFieldFromUsageFix.DEBUG) { + System.out.println("CreateFromUsageUtils.guessExpectedTypes"); + for (ExpectedTypeInfo[] infos : typesList) { + System.out.println("Arrays.toString(infos) = " + Arrays.toString(infos)); + } + } + if (typesList.size() == 1 && (!expectedFieldNames.isEmpty() || !expectedMethodNames.isEmpty())) { ExpectedTypeInfo[] infos = typesList.get(0); @@ -797,6 +804,11 @@ public class CreateFromUsageUtils { ProgressManager.checkCanceled(); PsiClass aClass = member.getContainingClass(); if (aClass instanceof PsiAnonymousClass || aClass == null) continue; + if (CreateFieldFromUsageFix.DEBUG) { + System.out.println("CreateFromUsageUtils.addMemberInfo"); + System.out.println("member = " + member); + System.out.println("aClass = " + aClass); + } if (facade.getResolveHelper().isAccessible(member, expression, null)) { PsiClassType type; diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/TypeExpression.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/TypeExpression.java index 25aed8ce4cc8..804ba2452b45 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/TypeExpression.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/TypeExpression.java @@ -15,7 +15,6 @@ */ package com.intellij.codeInsight.intention.impl; -import com.intellij.codeInsight.daemon.impl.quickfix.CreateFieldFromUsageFix; import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.codeInsight.lookup.PsiTypeLookupItem; import com.intellij.codeInsight.template.Expression; @@ -26,7 +25,9 @@ import com.intellij.openapi.editor.Document; import com.intellij.openapi.project.Project; import com.intellij.psi.*; -import java.util.*; +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.List; public class TypeExpression extends Expression { private final LinkedHashSet myItems; @@ -34,10 +35,6 @@ public class TypeExpression extends Expression { public TypeExpression(final Project project, PsiType[] types) { final SmartTypePointerManager manager = SmartTypePointerManager.getInstance(project); myItems = new LinkedHashSet(); - if (CreateFieldFromUsageFix.DEBUG) { - System.out.println("TypeExpression.TypeExpression"); - System.out.println("types = " + Arrays.toString(types)); - } for (final PsiType type : types) { myItems.add(manager.createSmartTypePointer(type)); }