diff --git a/.idea/modules.xml b/.idea/modules.xml index 6443efd723a0..829555b11baa 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -105,7 +105,6 @@ - diff --git a/java/compiler/impl/src/com/intellij/compiler/options/CompilerOptionsPanel.form b/java/compiler/impl/src/com/intellij/compiler/options/CompilerOptionsPanel.form index 70297f6c5e46..a236930b8592 100644 --- a/java/compiler/impl/src/com/intellij/compiler/options/CompilerOptionsPanel.form +++ b/java/compiler/impl/src/com/intellij/compiler/options/CompilerOptionsPanel.form @@ -13,8 +13,8 @@ - - + + @@ -31,23 +31,22 @@ - + - - + - - + + diff --git a/java/compiler/impl/src/com/intellij/compiler/options/CompilerUIConfigurable.java b/java/compiler/impl/src/com/intellij/compiler/options/CompilerUIConfigurable.java index 889b45e23b10..8620d7396e97 100644 --- a/java/compiler/impl/src/com/intellij/compiler/options/CompilerUIConfigurable.java +++ b/java/compiler/impl/src/com/intellij/compiler/options/CompilerUIConfigurable.java @@ -28,6 +28,7 @@ import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.SearchableConfigurable; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.io.FileUtil; +import com.intellij.ui.components.JBLabel; import org.jetbrains.annotations.NotNull; import javax.swing.*; @@ -47,7 +48,7 @@ public class CompilerUIConfigurable implements SearchableConfigurable, Configura private JTextField myResourcePatternsField; private JCheckBox myCbClearOutputDirectory; private JCheckBox myCbAssertNotNull; - private JLabel myPatternLegendLabel; + private JBLabel myPatternLegendLabel; private JCheckBox myCbAutoShowFirstError; private JCheckBox myCbUseExternalBuild; private JCheckBox myCbEnableAutomake; diff --git a/java/execution/impl/src/com/intellij/execution/ui/ConfigurationArgumentsHelpArea.java b/java/execution/impl/src/com/intellij/execution/ui/ConfigurationArgumentsHelpArea.java index ef2bebd366bb..c2c5e408904e 100644 --- a/java/execution/impl/src/com/intellij/execution/ui/ConfigurationArgumentsHelpArea.java +++ b/java/execution/impl/src/com/intellij/execution/ui/ConfigurationArgumentsHelpArea.java @@ -59,7 +59,7 @@ public class ConfigurationArgumentsHelpArea extends JPanel { CopyPasteManager.getInstance().setContents(contents); } }); - myToolbarPanel.add(copyButton, BorderLayout.CENTER); + myToolbarPanel.add(copyButton, BorderLayout.NORTH); myToolbarPanel.setVisible(false); } diff --git a/java/java-impl/src/com/intellij/application/options/CodeStyleGenerationConfigurable.form b/java/java-impl/src/com/intellij/application/options/CodeStyleGenerationConfigurable.form index 9fff54900ceb..f3656e9f1a7a 100644 --- a/java/java-impl/src/com/intellij/application/options/CodeStyleGenerationConfigurable.form +++ b/java/java-impl/src/com/intellij/application/options/CodeStyleGenerationConfigurable.form @@ -267,7 +267,7 @@ - + @@ -275,7 +275,7 @@ - + diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionSorting.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionSorting.java index 61a3b1329d47..437de0c7ea9b 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionSorting.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionSorting.java @@ -86,9 +86,6 @@ public class JavaCompletionSorting { return new LiftShorterItemsClassifier(next, new LiftShorterItemsClassifier.LiftingCondition() { @Override public boolean shouldLift(LookupElement shorterElement, LookupElement longerElement) { - if (super.shouldLift(shorterElement, longerElement)) { - return true; - } Object object = shorterElement.getObject(); if (object instanceof PsiClass) { PsiClass psiClass = (PsiClass)object; @@ -107,7 +104,7 @@ public class JavaCompletionSorting { } return false; } - }); + }, true); } }); } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackageReferenceSet.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackageReferenceSet.java index b0cabca93e44..5e5407b916d1 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackageReferenceSet.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackageReferenceSet.java @@ -17,6 +17,7 @@ package com.intellij.psi.impl.source.resolve.reference.impl.providers; import com.intellij.openapi.util.Comparing; +import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.TextRange; import com.intellij.psi.JavaPsiFacade; import com.intellij.psi.PsiElement; @@ -47,13 +48,14 @@ public class PackageReferenceSet extends ReferenceSetBase { return new PsiPackageReference(this, range, index); } - public Collection resolvePackageName(@Nullable PsiPackage context, String packageName) { + public Collection resolvePackageName(@Nullable PsiPackage context, final String packageName) { if (context != null) { - for (PsiPackage aPackage : context.getSubPackages()) { - if (Comparing.equal(aPackage.getName(), packageName)) { - return Collections.singleton(aPackage); + return ContainerUtil.filter(context.getSubPackages(), new Condition() { + @Override + public boolean value(PsiPackage aPackage) { + return Comparing.equal(aPackage.getName(), packageName); } - } + }); } return Collections.emptyList(); } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy index 3d94e2115506..f9c4ea38f01c 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy @@ -162,10 +162,10 @@ public class NormalCompletionOrderingTest extends CompletionSortingTestCase { FileDocumentManager.instance.saveAllDocuments() invokeCompletion("SameStatsForDifferentQualifiersJLabel.java"); - assertPreferredItems(1, "getComponent", "getComponents"); + assertPreferredItems(0, "getComponents", "getComponent"); invokeCompletion("SameStatsForDifferentQualifiersJComponent.java"); - assertPreferredItems(1, "getComponent", "getComponents"); + assertPreferredItems(0, "getComponents", "getComponent"); } public void testSameStatsForDifferentQualifiers2() throws Throwable { @@ -175,10 +175,10 @@ public class NormalCompletionOrderingTest extends CompletionSortingTestCase { FileDocumentManager.instance.saveAllDocuments() invokeCompletion("SameStatsForDifferentQualifiersJComponent.java"); - assertPreferredItems(1, "getComponent", "getComponents"); + assertPreferredItems(0, "getComponents", "getComponent"); invokeCompletion("SameStatsForDifferentQualifiersJLabel.java"); - assertPreferredItems(1, "getComponent", "getComponents"); + assertPreferredItems(0, "getComponents", "getComponent"); } public void testDispreferFinalize() throws Throwable { @@ -223,7 +223,7 @@ public class NormalCompletionOrderingTest extends CompletionSortingTestCase { } public void testSkipLifted() { - checkPreferredItems(1, "hashCode", "hashCodeMine") + checkPreferredItems(0, "hashCodeMine", "hashCode") } public void testDispreferInnerClasses() { @@ -248,7 +248,7 @@ public class NormalCompletionOrderingTest extends CompletionSortingTestCase { } public void testPreferFinallyToFinal() { - checkPreferredItems(1, "final", "finally"); + checkPreferredItems(0, "finally", "final"); } public void testPreferReturn() { @@ -473,8 +473,8 @@ import java.lang.annotation.Target; for (i in 0..10) { incUseCount(lookup, 1) } - assertPreferredItems 1, 'add', 'addAll' - incUseCount(lookup, 0) + assertPreferredItems 0, 'addAll', 'add' + incUseCount(lookup, 1) assertPreferredItems 0, 'add', 'addAll' } @@ -502,8 +502,8 @@ import java.lang.annotation.Target; invokeCompletion(getTestName(false) + ".java") myFixture.completeBasic() myFixture.type('cont') - assertPreferredItems 1, 'contains', 'containsAll' - myFixture.lookup.currentItem = myFixture.lookupElements[0] + assertPreferredItems 0, 'containsAll', 'contains' + myFixture.lookup.currentItem = myFixture.lookupElements[1] myFixture.type('\nc)) {\nif (set.') myFixture.completeBasic() myFixture.type('cont') diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy index 182d22ae1b40..4bac5c3bfa32 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy @@ -804,7 +804,7 @@ public class ListUtils { public void testFinalInForLoop2() throws Throwable { configure() - assertStringItems 'final', 'finalize' + myFixture.assertPreferredCompletionItems 0, 'finalize', 'final' } public void testOnlyClassesInExtends() throws Throwable { diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartTypeCompletionOrderingTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartTypeCompletionOrderingTest.groovy index 9b06de147347..7d4977d6b261 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartTypeCompletionOrderingTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartTypeCompletionOrderingTest.groovy @@ -21,7 +21,7 @@ public class SmartTypeCompletionOrderingTest extends CompletionSortingTestCase { } public void testJComponentAdd() throws Throwable { - checkPreferredItems(0, "name", "getName", "b", "foo", "fooBean239", "this"); + checkPreferredItems(0, "name", "getName", "b", "fooBean239", "foo", "this"); } public void testJComponentAddNew() throws Throwable { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/CompletionServiceImpl.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/CompletionServiceImpl.java index 7806c2fbf413..a2a72a56fbd9 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/CompletionServiceImpl.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/CompletionServiceImpl.java @@ -256,17 +256,12 @@ public class CompletionServiceImpl extends CompletionService{ } }); } - } - if (parameters.getCompletionType() == CompletionType.SMART) { - return sorter; - } - return sorter.withClassifier("priority", true, new ClassifierFactory("liftShorter") { @Override public Classifier createClassifier(final Classifier next) { - return new LiftShorterItemsClassifier(next, new LiftShorterItemsClassifier.LiftingCondition()); + return new LiftShorterItemsClassifier(next, new LiftShorterItemsClassifier.LiftingCondition(), false); } }); } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java index bc10ff06258a..f73ca1d941df 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java @@ -15,7 +15,6 @@ */ package com.intellij.codeInsight.completion.impl; -import com.intellij.codeInsight.completion.CompletionLookupArranger; import com.intellij.codeInsight.lookup.Classifier; import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.openapi.util.Condition; @@ -47,16 +46,17 @@ public class LiftShorterItemsClassifier extends Classifier { return new ArrayList(1); } }; - private final Map> myToLiftForSorting = newIdentityHashMap(); - private final Map> myToLiftForPreselection = newIdentityHashMap(); + private final Map> myToLift = newIdentityHashMap(); private final IdentityHashMap, IdentityHashMap>> myPrepends = newIdentityHashMap(); private final Classifier myNext; private final LiftingCondition myCondition; + private final boolean myLiftBefore; private int myCount = 0; - public LiftShorterItemsClassifier(Classifier next, LiftingCondition condition) { + public LiftShorterItemsClassifier(Classifier next, LiftingCondition condition, boolean liftBefore) { myNext = next; myCondition = condition; + myLiftBefore = liftBefore; } @Override @@ -85,10 +85,10 @@ public class LiftShorterItemsClassifier extends Classifier { } private void updateLongerItem(LookupElement shorter, LookupElement longer) { - boolean forPreselection = myCondition.shouldLift(shorter, longer); - Map> map = forPreselection ? myToLiftForPreselection : myToLiftForSorting; - FList oldValue = ContainerUtil.getOrElse(map, longer, FList.emptyList()); - map.put(longer, prependOrReuse(oldValue, shorter)); + if (myCondition.shouldLift(shorter, longer)) { + FList oldValue = ContainerUtil.getOrElse(myToLift, longer, FList.emptyList()); + myToLift.put(longer, prependOrReuse(oldValue, shorter)); + } } private FList prependOrReuse(FList tail, LookupElement head) { @@ -104,27 +104,21 @@ public class LiftShorterItemsClassifier extends Classifier { } private void calculateToLift(LookupElement element) { - FList forPreselection = FList.emptyList(); - FList forSorting = FList.emptyList(); + FList toLift = FList.emptyList(); for (String string : element.getAllLookupStrings()) { for (int len = 1; len < string.length(); len++) { String prefix = string.substring(0, len); for (LookupElement shorterElement : myElements.get(prefix)) { if (myCondition.shouldLift(shorterElement, element)) { - forPreselection = prependOrReuse(forPreselection, shorterElement); - } else { - forSorting = prependOrReuse(forSorting, shorterElement); + toLift = prependOrReuse(toLift, shorterElement); } } } } - if (!forPreselection.isEmpty()) { - myToLiftForPreselection.put(element, forPreselection); - } - if (!forSorting.isEmpty()) { - myToLiftForSorting.put(element, forSorting); + if (!toLift.isEmpty()) { + myToLift.put(element, toLift); } } @@ -164,7 +158,7 @@ public class LiftShorterItemsClassifier extends Classifier { public static class LiftingCondition { public boolean shouldLift(LookupElement shorterElement, LookupElement longerElement) { - return false; + return true; } } @@ -189,7 +183,6 @@ public class LiftShorterItemsClassifier extends Classifier { final Set processed = newIdentityTroveSet(mySrcSet.size()); final Set> arraysProcessed = newIdentityTroveSet(); - final boolean forSorting = myContext.get(CompletionLookupArranger.PURE_RELEVANCE) != Boolean.TRUE; final Iterable next = myNext.classify(mySource, myContext); Iterator base = FilteringIterator.create(next.iterator(), new Condition() { @Override @@ -200,17 +193,16 @@ public class LiftShorterItemsClassifier extends Classifier { return new FlatteningIterator(base) { @Override protected Iterator createValueIterator(LookupElement element) { - List shorter = addShorterElements(null, myToLiftForPreselection.get(element)); - if (forSorting) { - shorter = addShorterElements(shorter, myToLiftForSorting.get(element)); - } + List shorter = addShorterElements(null, myToLift.get(element)); + List singleton = Collections.singletonList(element); if (shorter != null) { if (myLifted != null) { myLifted.addAll(shorter); } - return ContainerUtil.concat(myNext.classify(shorter, myContext), Collections.singletonList(element)).iterator(); + Iterable lifted = myNext.classify(shorter, myContext); + return (myLiftBefore ? ContainerUtil.concat(lifted, singleton) : ContainerUtil.concat(singleton, lifted)).iterator(); } - return Collections.singletonList(element).iterator(); + return singleton.iterator(); } @Nullable diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hint/ImplementationViewComponent.java b/platform/lang-impl/src/com/intellij/codeInsight/hint/ImplementationViewComponent.java index 5a4c7af584c9..1e2c9e2f60f2 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hint/ImplementationViewComponent.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/hint/ImplementationViewComponent.java @@ -194,25 +194,6 @@ public class ImplementationViewComponent extends JPanel { gc.fill = GridBagConstraints.HORIZONTAL; gc.weightx = 1; myLabel = new JLabel(); - if (myElements.length > 1) { - updateRenderer(project); - myLabel.setVisible(false); - } - else { - myFileChooser = new ComboBox(); - myFileChooser.setVisible(false); - myCountLabel.setVisible(false); - - VirtualFile file = psiFile.getVirtualFile(); - if (file != null) { - myLabel.setIcon(getIconForFile(psiFile)); - myLabel.setForeground(FileStatusManager.getInstance(project).getStatus(file).getColor()); - myLabel.setText(file.getPresentableName()); - myLabel.setBorder(new CompoundBorder(IdeBorderFactory.createRoundedBorder(), IdeBorderFactory.createEmptyBorder(0, 0, 0, 5))); - } - toolbarPanel.add(myLabel, gc); - } - myFileChooser = new ComboBox(fileDescriptors.toArray(new FileDescriptor[fileDescriptors.size()]), 250); myFileChooser.addActionListener(new ActionListener() { @Override @@ -226,6 +207,24 @@ public class ImplementationViewComponent extends JPanel { }); toolbarPanel.add(myFileChooser, gc); + if (myElements.length > 1) { + updateRenderer(project); + myLabel.setVisible(false); + } + else { + myFileChooser.setVisible(false); + myCountLabel.setVisible(false); + + VirtualFile file = psiFile.getVirtualFile(); + if (file != null) { + myLabel.setIcon(getIconForFile(psiFile)); + myLabel.setForeground(FileStatusManager.getInstance(project).getStatus(file).getColor()); + myLabel.setText(file.getPresentableName()); + myLabel.setBorder(new CompoundBorder(IdeBorderFactory.createRoundedBorder(), IdeBorderFactory.createEmptyBorder(0, 0, 0, 5))); + } + toolbarPanel.add(myLabel, gc); + } + gc.fill = GridBagConstraints.NONE; gc.weightx = 0; toolbarPanel.add(myCountLabel, gc); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/CompletionPreview.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/CompletionPreview.java index 6d0cc30c1a49..889e10756dec 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/CompletionPreview.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/CompletionPreview.java @@ -130,7 +130,12 @@ public class CompletionPreview { } } - new CompletionPreview(lookup, text, lookup.itemPattern(item)); + String prefix = lookup.itemPattern(item); + if (prefix.length() > text.length()) { + return; + } + + new CompletionPreview(lookup, text, prefix); } public void uninstallPreview() { diff --git a/platform/lang-impl/src/com/intellij/execution/impl/ConfigurationSettingsEditorWrapper.java b/platform/lang-impl/src/com/intellij/execution/impl/ConfigurationSettingsEditorWrapper.java index e19198949998..2f3115e0e3af 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/ConfigurationSettingsEditorWrapper.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/ConfigurationSettingsEditorWrapper.java @@ -59,7 +59,7 @@ public class ConfigurationSettingsEditorWrapper extends SettingsEditor ourRetina = Ref.create(SystemInfo.isMac ? null : false); - private UIUtil() { } + private UIUtil() { + } public static boolean isRetina() { synchronized (ourRetina) { @@ -281,13 +286,15 @@ public class UIUtil { public static void drawLinePickedOut(Graphics graphics, int x, int y, int x1, int y1) { if (x == x1) { int minY = Math.min(y, y1); - int maxY = Math.max(y, y1); - graphics.drawLine(x, minY+1, x1, maxY-1); - } else if (y == y1) { + int maxY = Math.max(y, y1); + graphics.drawLine(x, minY + 1, x1, maxY - 1); + } + else if (y == y1) { int minX = Math.min(x, x1); int maxX = Math.max(x, x1); - graphics.drawLine(minX+1, y, maxX-1, y1); - } else { + graphics.drawLine(minX + 1, y, maxX - 1, y1); + } + else { drawLine(graphics, x, y, x1, y1); } } @@ -327,7 +334,6 @@ public class UIUtil { for (int i = 0; i < subComponentCount; i++) { setEnabled(container.getComponent(i), enabled, recursively); } - } } } @@ -431,7 +437,8 @@ public class UIUtil { public static Color getLabelFontColor(FontColor fontColor) { Color defColor = getLabelForeground(); if (fontColor == FontColor.BRIGHTER) { - return new Color(Math.min(defColor.getRed() + 50, 255), Math.min(defColor.getGreen() + 50, 255), Math.min(defColor.getBlue() + 50, 255)); + return new JBColor(new Color(Math.min(defColor.getRed() + 50, 255), Math.min(defColor.getGreen() + 50, 255), Math.min( + defColor.getBlue() + 50, 255)), defColor.darker()); } return defColor; } @@ -592,8 +599,13 @@ public class UIUtil { LookAndFeel.installBorder(contentPane, "PopupMenu.border"); } - /** @deprecated Motif is gone (to remove in IDEA 13) */ - @SuppressWarnings("UnusedDeclaration") public static boolean isMotifLookAndFeel() { return false; } + /** + * @deprecated Motif is gone (to remove in IDEA 13) + */ + @SuppressWarnings("UnusedDeclaration") + public static boolean isMotifLookAndFeel() { + return false; + } public static Color getTreeSelectionBorderColor() { return UIManager.getColor("Tree.selectionBorderColor"); @@ -816,11 +828,11 @@ public class UIUtil { } public static Color getTableFocusCellForeground() { - return UIManager.getColor("Table.focusCellForeground"); + return UIManager.getColor("Table.focusCellForeground"); } /** - * @deprecated use com.intellij.util.ui.UIUtil#getPanelBackground() instead + * @deprecated use com.intellij.util.ui.UIUtil#getPanelBackground() instead */ public static Color getPanelBackgound() { return getPanelBackground(); @@ -918,8 +930,13 @@ public class UIUtil { return UIManager.getColor("OptionPane.background"); } - /** @deprecated Quaqua is gone (to remove in IDEA 13) */ - @SuppressWarnings("UnusedDeclaration") public static boolean isUnderQuaquaLookAndFeel() { return false; } + /** + * @deprecated Quaqua is gone (to remove in IDEA 13) + */ + @SuppressWarnings("UnusedDeclaration") + public static boolean isUnderQuaquaLookAndFeel() { + return false; + } @SuppressWarnings({"HardCodedStringLiteral"}) public static boolean isUnderAlloyLookAndFeel() { @@ -941,8 +958,13 @@ public class UIUtil { return UIManager.getLookAndFeel().getName().equals("Windows Classic"); } - /** @deprecated Metal is gone (to remove in IDEA 13) */ - @SuppressWarnings("UnusedDeclaration") public static boolean isUnderMetalLookAndFeel() { return false; } + /** + * @deprecated Metal is gone (to remove in IDEA 13) + */ + @SuppressWarnings("UnusedDeclaration") + public static boolean isUnderMetalLookAndFeel() { + return false; + } @SuppressWarnings({"HardCodedStringLiteral"}) public static boolean isUnderNimbusLookAndFeel() { @@ -964,8 +986,13 @@ public class UIUtil { return SystemInfo.isMac && (isUnderAquaLookAndFeel() || isUnderDarcula()); } - /** @deprecated Motif is gone (to remove in IDEA 13) */ - @SuppressWarnings("UnusedDeclaration") public static boolean isUnderMotif() { return false; } + /** + * @deprecated Motif is gone (to remove in IDEA 13) + */ + @SuppressWarnings("UnusedDeclaration") + public static boolean isUnderMotif() { + return false; + } @SuppressWarnings({"HardCodedStringLiteral"}) public static boolean isUnderDarcula() { @@ -1056,8 +1083,12 @@ public class UIUtil { return !isUnderNativeMacLookAndFeel(); } - /** @deprecated Quaqua is gone (to remove in IDEA 13) */ - @SuppressWarnings("UnusedDeclaration") public static void removeQuaquaVisualMarginsIn(Component component) { } + /** + * @deprecated Quaqua is gone (to remove in IDEA 13) + */ + @SuppressWarnings("UnusedDeclaration") + public static void removeQuaquaVisualMarginsIn(Component component) { + } public static boolean isControlKeyDown(MouseEvent mouseEvent) { return SystemInfo.isMac ? mouseEvent.isMetaDown() : mouseEvent.isControlDown(); @@ -1182,9 +1213,9 @@ public class UIUtil { } public static void drawSearchMatch(final Graphics2D g, - final int startX, - final int endX, - final int height) { + final int startX, + final int endX, + final int height) { Color c1 = new Color(255, 234, 162); Color c2 = new Color(255, 208, 66); drawSearchMatch(g, startX, endX, height, c1, c2); @@ -1214,8 +1245,8 @@ public class UIUtil { } public static void drawRectPickedOut(Graphics2D g, int x, int y, int w, int h) { - g.drawLine(x+1, y, x+w-1, y); - g.drawLine(x+w, y+1, x+w, y+h-1); + g.drawLine(x + 1, y, x + w - 1, y); + g.drawLine(x + w, y + 1, x + w, y + h - 1); g.drawLine(x + w - 1, y + h, x + 1, y + h); g.drawLine(x, y + 1, x, y + h - 1); } @@ -1290,27 +1321,27 @@ public class UIUtil { g.drawLine(x, drawTopLine ? 1 : 0, width, drawTopLine ? 1 : 0); if (active) { - g.setColor(new Color(100, 150, 230, toolWindow? 50 : 30)); + g.setColor(new Color(100, 150, 230, toolWindow ? 50 : 30)); g.fillRect(x, 0, width, height); } } public static void drawDoubleSpaceDottedLine(final Graphics2D g, - final int start, - final int end, - final int xOrY, - final Color fgColor, - boolean horizontal) { + final int start, + final int end, + final int xOrY, + final Color fgColor, + boolean horizontal) { g.setColor(fgColor); - for (int dot = start; dot < end; dot+=3) { + for (int dot = start; dot < end; dot += 3) { if (horizontal) { g.drawLine(dot, xOrY, dot, xOrY); - } else { + } + else { g.drawLine(xOrY, dot, xOrY, dot); } } - } private static void drawAppleDottedLine(final Graphics2D g, @@ -1423,7 +1454,7 @@ public class UIUtil { if (isRetina()) { return RetinaImage.create(width, height, type); } - //noinspection UndesirableClassUsage + //noinspection UndesirableClassUsage return new BufferedImage(width, height, type); } @@ -1431,7 +1462,10 @@ public class UIUtil { paintWithRetina(size, g, true, paintRoutine); } - public static void paintWithRetina(@NotNull Dimension size, @NotNull Graphics g, boolean useRetinaCondition, Consumer paintRoutine) { + public static void paintWithRetina(@NotNull Dimension size, + @NotNull Graphics g, + boolean useRetinaCondition, + Consumer paintRoutine) { if (!useRetinaCondition || !isRetina() || Registry.is("ide.mac.retina.disableDrawingFix", false)) { paintRoutine.consume((Graphics2D)g); } @@ -1462,7 +1496,7 @@ public class UIUtil { * The whole idea is that XRender-based pipeline doesn't support * {@link AlphaComposite#SRC} and we should use {@link AlphaComposite#SRC_OVER} instead. * - * @param g target graphics container + * @param g target graphics container */ public static void setupComposite(@NotNull Graphics2D g) { g.setComposite(X_RENDER_ACTIVE.getValue() ? AlphaComposite.SrcOver : AlphaComposite.Src); @@ -1611,7 +1645,7 @@ public class UIUtil { @NonNls @Language("HTML") String body = "body, div, td, p {" + fontFamilyAndSize + " " + (fgColor != null ? "color:" + ColorUtil.toHex(fgColor) : "") + "}"; if (resource != null) { - body += "ul {list-style-image: " + resource.toExternalForm() +"}"; + body += "ul {list-style-image: " + resource.toExternalForm() + "}"; } @NonNls String link = linkColor != null ? "a {" + fontFamilyAndSize + " color:" + ColorUtil.toHex(linkColor) + "}" : ""; return ""; @@ -1894,13 +1928,15 @@ public class UIUtil { String each = html.substring(currentPos, currentPos + 1); if ("<".equals(each)) { braces++; - } else if (">".equals(each)) { + } + else if (">".equals(each)) { braces--; } if (" ".equals(each) && braces == 0) { result.append(" "); - } else { + } + else { result.append(each); } currentPos++; @@ -1955,12 +1991,13 @@ public class UIUtil { /** * Avoid blinking while changing background. - * @param component component. - * @param background new background. + * + * @param component component. + * @param background new background. */ public static void changeBackGround(final Component component, final Color background) { final Color oldBackGround = component.getBackground(); - if (background == null || !background.equals(oldBackGround)){ + if (background == null || !background.equals(oldBackGround)) { component.setBackground(background); } } @@ -1974,7 +2011,8 @@ public class UIUtil { ourSystemFontData = Pair.create(font.getName(), font.getSize()); } } - catch (Exception ignored) { } + catch (Exception ignored) { + } } @Nullable @@ -2024,7 +2062,7 @@ public class UIUtil { else if (component != null) { final String str = component.toString(); // skip default Component.toString and handle SimpleColoredComponent case - text = str == null || str.startsWith(component.getClass().getName()+"[")? null : str; + text = str == null || str.startsWith(component.getClass().getName() + "[") ? null : str; } else { text = null; @@ -2046,7 +2084,7 @@ public class UIUtil { try { final Field popup = BasicComboBoxUI.class.getDeclaredField("popup"); popup.setAccessible(true); - return (ComboPopup) popup.get(ui); + return (ComboPopup)popup.get(ui); } catch (NoSuchFieldException e) { return null; @@ -2107,11 +2145,12 @@ public class UIUtil { @SuppressWarnings("deprecation") public static void setComboBoxEditorBounds(int x, int y, int width, int height, JComponent editor) { - if(SystemInfo.isMac && isUnderAquaLookAndFeel()) { + if (SystemInfo.isMac && isUnderAquaLookAndFeel()) { // fix for too wide combobox editor, see AquaComboBoxUI.layoutContainer: // it adds +4 pixels to editor width. WTF?! editor.reshape(x, y, width - 4, height - 1); - } else { + } + else { editor.reshape(x, y, width, height); } } @@ -2354,7 +2393,8 @@ public class UIUtil { if (myDrawShadow) { c = g.getColor(); g.setColor(myShadowColor); - g.drawLine(x - maxBulletWidth[0] - 10, yOffset[0] + fm.getDescent() + 1, x + maxWidth[0] + 10, yOffset[0] + fm.getDescent() + 1); + g.drawLine(x - maxBulletWidth[0] - 10, yOffset[0] + fm.getDescent() + 1, x + maxWidth[0] + 10, + yOffset[0] + fm.getDescent() + 1); g.setColor(c); } } @@ -2387,7 +2427,8 @@ public class UIUtil { Component eachParent = c; while (eachParent != null) { if (eachParent instanceof JComponent) { - @SuppressWarnings({"unchecked"}) WeakReference pane = (WeakReference)((JComponent)eachParent).getClientProperty(ROOT_PANE); + @SuppressWarnings({"unchecked"}) WeakReference pane = + (WeakReference)((JComponent)eachParent).getClientProperty(ROOT_PANE); if (pane != null) return pane.get(); } eachParent = eachParent.getParent(); @@ -2407,7 +2448,7 @@ public class UIUtil { } public static Timer createNamedTimer(@NonNls @NotNull final String name, int delay, @NotNull ActionListener listener) { - return new Timer(delay, listener){ + return new Timer(delay, listener) { @Override public String toString() { return name; @@ -2424,7 +2465,7 @@ public class UIUtil { } @Nullable - public static JComponent mergeComponentsWithAnchor(PanelWithAnchor...panels) { + public static JComponent mergeComponentsWithAnchor(PanelWithAnchor... panels) { return mergeComponentsWithAnchor(Arrays.asList(panels)); } @@ -2514,7 +2555,8 @@ public class UIUtil { pixelGrabber.grabPixels(); return new Color(pixels[0]); } - catch (InterruptedException ignored) { } + catch (InterruptedException ignored) { + } } return null; @@ -2533,6 +2575,7 @@ public class UIUtil { private static final Color DECORATED_ROW_BG_COLOR = new Color(242, 245, 249); private static final Color DECORATED_ROW_BG_COLOR_DARK = Gray._75; + public static Color getDecoratedRowColor() { return isUnderDarcula() ? DECORATED_ROW_BG_COLOR_DARK : DECORATED_ROW_BG_COLOR; } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/CommittedChangesBrowser.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/CommittedChangesBrowser.java index c68f39de4839..0e66b22634f4 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/CommittedChangesBrowser.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/CommittedChangesBrowser.java @@ -22,6 +22,7 @@ import com.intellij.openapi.actionSystem.ActionPlaces; import com.intellij.openapi.actionSystem.CommonShortcuts; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Messages; +import com.intellij.openapi.ui.Splitter; import com.intellij.openapi.vcs.ChangeListColumn; import com.intellij.openapi.vcs.VcsBundle; import com.intellij.openapi.vcs.VcsException; @@ -159,17 +160,13 @@ public class CommittedChangesBrowser extends JPanel { myLeftPanel.add(forwardButton, new GridBagConstraints(1, 1, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2,2,2,2), 0, 0)); } - JSplitPane leftSplitter = new JSplitPane(JSplitPane.VERTICAL_SPLIT); - leftSplitter.setTopComponent(myLeftPanel); - leftSplitter.setBottomComponent(commitPanel); - leftSplitter.setDividerLocation(0.8); - leftSplitter.setResizeWeight(0.8); + Splitter leftSplitter = new Splitter(true, 0.8f); + leftSplitter.setFirstComponent(myLeftPanel); + leftSplitter.setSecondComponent(commitPanel); - JSplitPane splitter = new JSplitPane(); - splitter.setLeftComponent(leftSplitter); - splitter.setRightComponent(myChangesView); - splitter.setDividerLocation(0.5); - splitter.setResizeWeight(0.5); + Splitter splitter = new Splitter(false, 0.5f); + splitter.setFirstComponent(leftSplitter); + splitter.setSecondComponent(myChangesView); add(splitter, BorderLayout.CENTER); diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/MismatchedStringBuilderQueryUpdateInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/MismatchedStringBuilderQueryUpdateInspection.java index 5c0169254c8f..168e27628beb 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/MismatchedStringBuilderQueryUpdateInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/bugs/MismatchedStringBuilderQueryUpdateInspection.java @@ -1,5 +1,5 @@ /* - * Copyright 2011 Bas Leijdekkers + * Copyright 2011-2012 Bas Leijdekkers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -92,7 +92,8 @@ public class MismatchedStringBuilderQueryUpdateInspection extends BaseInspection private static class MismatchedQueryAndUpdateOfStringBuilderVisitor extends BaseInspectionVisitor { @Override - public void visitField(PsiField field) { super.visitField(field); + public void visitField(PsiField field) { + super.visitField(field); if (!field.hasModifierProperty(PsiModifier.PRIVATE)) { return; } @@ -272,19 +273,6 @@ public class MismatchedStringBuilderQueryUpdateInspection extends BaseInspection queryNames.add("substring"); } - @NonNls - private static final Set returnThisNames = new HashSet(); - - static { - returnThisNames.add("append"); - returnThisNames.add("appendCodePoint"); - returnThisNames.add("delete"); - returnThisNames.add("delete"); - returnThisNames.add("deleteCharAt"); - returnThisNames.add("insert"); - returnThisNames.add("replace"); - } - private final PsiVariable variable; private boolean queried = false; @@ -340,7 +328,7 @@ public class MismatchedStringBuilderQueryUpdateInspection extends BaseInspection final String name = methodExpression.getReferenceName(); final PsiExpression qualifierExpression = methodExpression.getQualifierExpression(); if (!queryNames.contains(name)) { - if (returnThisNames.contains(name) && hasReferenceToVariable(variable, qualifierExpression) && isVariableValueUsed(expression)) { + if (returnSelfNames.contains(name) && hasReferenceToVariable(variable, qualifierExpression) && isVariableValueUsed(expression)) { queried = true; } return; diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/mismatched_string_builder_query_update/MismatchedStringBuilderQueryUpdate.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/mismatched_string_builder_query_update/MismatchedStringBuilderQueryUpdate.java index 56102609182c..ce84d8e173f9 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/mismatched_string_builder_query_update/MismatchedStringBuilderQueryUpdate.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/mismatched_string_builder_query_update/MismatchedStringBuilderQueryUpdate.java @@ -10,4 +10,11 @@ public class MismatchedStringBuilderQueryUpdate { final StringBuilder c = new StringBuilder(); c.append(' '); } + + private static CharSequence getSomething() + { + StringBuilder sb = new StringBuilder(); + sb.append("abc"); + return sb.reverse(); + } } diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/TaskCellRenderer.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/TaskCellRenderer.java index 4619fea620e8..65a4d454e864 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/TaskCellRenderer.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/TaskCellRenderer.java @@ -25,7 +25,6 @@ import java.awt.*; * @author Evgeny Zakrevsky */ public class TaskCellRenderer extends DefaultListCellRenderer implements MatcherHolder { - private static final Color ISSUE_BG_COLOR = new Color(240, 240, 255); private Matcher myMatcher; private final Project myProject; @@ -47,7 +46,7 @@ public class TaskCellRenderer extends DefaultListCellRenderer implements Matcher final boolean isLocalTask = taskManager.findTask(task.getId()) != null; final boolean isClosed = task.isClosed() || (task instanceof LocalTask && taskManager.isLocallyClosed((LocalTask)task)); - final Color bg = sel ? UIUtil.getListSelectionBackground() : isLocalTask ? UIUtil.getListBackground() : ISSUE_BG_COLOR; + final Color bg = sel ? UIUtil.getListSelectionBackground() : isLocalTask ? UIUtil.getListBackground() : UIUtil.getDecoratedRowColor(); panel.setBackground(bg); SimpleTextAttributes attr = getAttributes(sel, isClosed); diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/config/TaskConfigurable.form b/plugins/tasks/tasks-core/src/com/intellij/tasks/config/TaskConfigurable.form index 595bc4f4a2d0..9a070abb8670 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/config/TaskConfigurable.form +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/config/TaskConfigurable.form @@ -8,7 +8,7 @@ - + @@ -23,7 +23,7 @@ - + @@ -71,10 +71,11 @@ + - + @@ -125,11 +126,11 @@ - + - + @@ -145,11 +146,11 @@ - + - + diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/generic/assembla/AssemblaRepository.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/generic/assembla/AssemblaRepository.java index 2d47980a21e4..ec0e4b1a676b 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/generic/assembla/AssemblaRepository.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/generic/assembla/AssemblaRepository.java @@ -74,4 +74,9 @@ public class AssemblaRepository extends GenericRepository { public String getPresentableName() { return StringUtil.isEmpty(getUsername()) ? "" : getUsername() + "'s tickets"; } + + @Override + public boolean isConfigured() { + return super.isConfigured() && StringUtil.isNotEmpty(getUsername()) && StringUtil.isNotEmpty(getPassword()); + } }