From aa16ba2c45084d2a677552f36d26856a5b673138 Mon Sep 17 00:00:00 2001 From: Vassiliy Date: Wed, 16 Jul 2014 18:38:22 +0400 Subject: [PATCH 1/4] IDEA-126984 Mac OS X: Double line above the editor --- .../src/com/intellij/openapi/editor/impl/EditorImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java index e37ad8f968ad..8153d6d12b35 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java @@ -66,6 +66,8 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.wm.IdeFocusManager; import com.intellij.openapi.wm.IdeGlassPane; +import com.intellij.openapi.wm.ToolWindowAnchor; +import com.intellij.openapi.wm.ex.ToolWindowManagerEx; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiFile; import com.intellij.ui.*; @@ -6735,7 +6737,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private static class TablessBorder extends SideBorder { + private class TablessBorder extends SideBorder { private TablessBorder() { super(UIUtil.getBorderColor(), SideBorder.ALL); } @@ -6760,7 +6762,9 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi @Override public Insets getBorderInsets(Component c) { Container splitters = SwingUtilities.getAncestorOfClass(EditorsSplitters.class, c); - return splitters == null ? super.getBorderInsets(c) : new Insets(1, 0, 0, 0); + boolean thereIsSomethingAbove = UISettings.getInstance().SHOW_MAIN_TOOLBAR || UISettings.getInstance().SHOW_NAVIGATION_BAR || + !ToolWindowManagerEx.getInstanceEx(EditorImpl.this.myProject).getIdsOn(ToolWindowAnchor.TOP).isEmpty(); + return splitters == null ? super.getBorderInsets(c) : new Insets(thereIsSomethingAbove ? 1 : 0, 0, 0, 0); } @Override From a69f781ca1c83bd54c127f9c8da6fff4509f538f Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Wed, 16 Jul 2014 17:22:22 +0200 Subject: [PATCH 2/4] cleanup --- .../options/CodeCompletionPanel.java | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/application/options/CodeCompletionPanel.java b/platform/lang-impl/src/com/intellij/application/options/CodeCompletionPanel.java index 8e8eba54cbf9..6c65209d1122 100644 --- a/platform/lang-impl/src/com/intellij/application/options/CodeCompletionPanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/CodeCompletionPanel.java @@ -28,8 +28,10 @@ import com.intellij.openapi.application.ApplicationBundle; import com.intellij.openapi.keymap.KeymapUtil; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.openapi.util.text.StringUtilRt; import com.intellij.ui.components.JBCheckBox; import org.intellij.lang.annotations.MagicConstant; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.event.ActionEvent; @@ -56,7 +58,7 @@ public class CodeCompletionPanel { private static final String CASE_SENSITIVE_FIRST_LETTER = ApplicationBundle.message("combobox.autocomplete.case.sensitive.first.letter"); private static final String[] CASE_VARIANTS = {CASE_SENSITIVE_ALL, CASE_SENSITIVE_NONE, CASE_SENSITIVE_FIRST_LETTER}; - public CodeCompletionPanel(){ + public CodeCompletionPanel() { //noinspection unchecked myCaseSensitiveCombo.setModel(new DefaultComboBoxModel(CASE_VARIANTS)); @@ -73,7 +75,7 @@ public class CodeCompletionPanel { myCbAutocompletion.addActionListener( new ActionListener() { @Override - public void actionPerformed(ActionEvent event) { + public void actionPerformed(@NotNull ActionEvent event) { boolean selected = myCbAutocompletion.isSelected(); myCbSelectByChars.setEnabled(selected); } @@ -83,7 +85,7 @@ public class CodeCompletionPanel { myCbAutopopupJavaDoc.addActionListener( new ActionListener() { @Override - public void actionPerformed(ActionEvent event) { + public void actionPerformed(@NotNull ActionEvent event) { myAutopopupJavaDocField.setEnabled(myCbAutopopupJavaDoc.isSelected()); } } @@ -92,7 +94,7 @@ public class CodeCompletionPanel { myCbParameterInfoPopup.addActionListener( new ActionListener() { @Override - public void actionPerformed(ActionEvent event) { + public void actionPerformed(@NotNull ActionEvent event) { myParameterInfoDelayField.setEnabled(myCbParameterInfoPopup.isSelected()); } } @@ -205,16 +207,8 @@ public class CodeCompletionPanel { } private static int getIntegerValue(String s, int defaultValue) { - int value = defaultValue; - try { - value = Integer.parseInt(s); - if(value < 0) { - return defaultValue; - } - } - catch (NumberFormatException ignored) { - } - return value; + int value = StringUtilRt.parseInt(s, defaultValue); + return value < 0 ? defaultValue : value; } @MagicConstant(intValues = {CodeInsightSettings.ALL, CodeInsightSettings.NONE, CodeInsightSettings.FIRST_LETTER}) From e3e3224e853ad466cebf13c8b5c7f01d272d8e88 Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Wed, 16 Jul 2014 19:39:12 +0400 Subject: [PATCH 3/4] Fix for nullable composite configurable. --- .../openapi/options/ex/ConfigurableWrapper.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/options/ex/ConfigurableWrapper.java b/platform/platform-impl/src/com/intellij/openapi/options/ex/ConfigurableWrapper.java index 8f975cbae7ba..f93c798553d0 100644 --- a/platform/platform-impl/src/com/intellij/openapi/options/ex/ConfigurableWrapper.java +++ b/platform/platform-impl/src/com/intellij/openapi/options/ex/ConfigurableWrapper.java @@ -48,7 +48,15 @@ public class ConfigurableWrapper implements SearchableConfigurable { @Nullable public static T wrapConfigurable(ConfigurableEP ep) { if (ep.displayName != null || ep.key != null) { - return (T)(ep.children != null || ep.childrenEPName != null || ep.dynamic ? new CompositeWrapper(ep) : new ConfigurableWrapper(ep)); + if (ep.children != null || ep.childrenEPName != null || ep.dynamic) { + T configurable = ep.createConfigurable(); + return configurable != null + ? (T)new CompositeWrapper(ep, configurable) + : null; + } + else { + return (T)new ConfigurableWrapper(ep, null); + } } else { return ep.createConfigurable(); @@ -76,8 +84,9 @@ public class ConfigurableWrapper implements SearchableConfigurable { private final ConfigurableEP myEp; - private ConfigurableWrapper(@NotNull ConfigurableEP ep) { + private ConfigurableWrapper(@NotNull ConfigurableEP ep, @Nullable UnnamedConfigurable configurable) { myEp = ep; + myConfigurable = configurable; } private UnnamedConfigurable myConfigurable; @@ -172,8 +181,8 @@ public class ConfigurableWrapper implements SearchableConfigurable { private Configurable[] myKids; - private CompositeWrapper(ConfigurableEP ep, Configurable... kids) { - super(ep); + private CompositeWrapper(@NotNull ConfigurableEP ep, @NotNull UnnamedConfigurable configurable, Configurable... kids) { + super(ep, configurable); if (ep.dynamic) { kids = ((Composite)getConfigurable()).getConfigurables(); } From a9d7da6cd84f671bfec3c00ac1d7b9362ba8c122 Mon Sep 17 00:00:00 2001 From: Dmitry Batkovich Date: Wed, 16 Jul 2014 20:02:56 +0400 Subject: [PATCH 4/4] added test for default property file in resource bundle editor --- ...BundleRenameTest.java => ResourceBundleTest.java} | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) rename plugins/properties/testSrc/com/intellij/lang/properties/{ResourceBundleRenameTest.java => ResourceBundleTest.java} (76%) diff --git a/plugins/properties/testSrc/com/intellij/lang/properties/ResourceBundleRenameTest.java b/plugins/properties/testSrc/com/intellij/lang/properties/ResourceBundleTest.java similarity index 76% rename from plugins/properties/testSrc/com/intellij/lang/properties/ResourceBundleRenameTest.java rename to plugins/properties/testSrc/com/intellij/lang/properties/ResourceBundleTest.java index f8c435817ea4..00d4adadaef1 100644 --- a/plugins/properties/testSrc/com/intellij/lang/properties/ResourceBundleRenameTest.java +++ b/plugins/properties/testSrc/com/intellij/lang/properties/ResourceBundleTest.java @@ -15,6 +15,7 @@ */ package com.intellij.lang.properties; +import com.intellij.lang.properties.psi.PropertiesFile; import com.intellij.lang.properties.refactoring.rename.ResourceBundleRenamerFactory; import com.intellij.openapi.extensions.Extensions; import com.intellij.psi.PsiFile; @@ -25,7 +26,16 @@ import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCa /** * @author Dmitry Batkovich */ -public class ResourceBundleRenameTest extends LightPlatformCodeInsightFixtureTestCase { +public class ResourceBundleTest extends LightPlatformCodeInsightFixtureTestCase { + + public void testDefaultPropertyFile() { + final PsiFile rawDefault = myFixture.addFileToProject("p.properties", ""); + myFixture.addFileToProject("p_en.properties", ""); + final PropertiesFile defaultFile = PropertiesImplUtil.getPropertiesFile(rawDefault); + assertNotNull(defaultFile); + final PropertiesFile file = defaultFile.getResourceBundle().getDefaultPropertiesFile(); + assertTrue(file.getContainingFile().isEquivalentTo(defaultFile.getContainingFile())); + } public void testRenameResourceBundleEntryFile() { final PsiFile toRenameFile = myFixture.addFileToProject("old_p.properties", "");