diff --git a/.idea/libraries/Java_Compatibility.xml b/.idea/libraries/Java_Compatibility.xml
new file mode 100644
index 000000000000..64098e68cf84
--- /dev/null
+++ b/.idea/libraries/Java_Compatibility.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lib/java-compatibility.jar b/lib/java-compatibility.jar
new file mode 100644
index 000000000000..43735d315ee1
Binary files /dev/null and b/lib/java-compatibility.jar differ
diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityLibraryLicenses.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityLibraryLicenses.groovy
index a80a555d920c..ed6b5201fc0c 100644
--- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityLibraryLicenses.groovy
+++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityLibraryLicenses.groovy
@@ -220,6 +220,8 @@ class CommunityLibraryLicenses {
licenseUrl: "http://apache.org/licenses/LICENSE-2.0", url: "http://code.google.com/p/atinject/"),
new LibraryLicense(name: "JAXB", libraryName: "JAXB", version: "2.2.4-1", license: "CDDL 1.1", url: "http://jaxb.java.net/",
licenseUrl: "http://glassfish.java.net/public/CDDL+GPL_1_1.html"),
+ new LibraryLicense(name: "Java Compatibility", version: "", license: "GPL 2.0 + Classpath", url: "https://github.com/JetBrains/Java9Compatibility",
+ licenseUrl: "https://raw.githubusercontent.com/JetBrains/Java9Compatibility/master/LICENSE"),
new LibraryLicense(name: "Jaxen", version: "", license: "modified Apache", url: "https://github.com/jaxen-xpath/jaxen",
licenseUrl: "https://github.com/jaxen-xpath/jaxen/blob/master/LICENSE.txt"),
new LibraryLicense(name: "jayatana", libraryName: "jayatana", version: "1.2.4", license: "MIT License",
diff --git a/platform/platform-api/intellij.platform.ide.iml b/platform/platform-api/intellij.platform.ide.iml
index fe2d84a93e9d..a752de0dd78a 100644
--- a/platform/platform-api/intellij.platform.ide.iml
+++ b/platform/platform-api/intellij.platform.ide.iml
@@ -33,5 +33,6 @@
+
\ No newline at end of file
diff --git a/platform/platform-api/src/com/intellij/ide/HelpTooltip.java b/platform/platform-api/src/com/intellij/ide/HelpTooltip.java
index 8a4985b95d37..d6db822c62f1 100644
--- a/platform/platform-api/src/com/intellij/ide/HelpTooltip.java
+++ b/platform/platform-api/src/com/intellij/ide/HelpTooltip.java
@@ -25,12 +25,8 @@ import com.intellij.ui.awt.RelativePoint;
import com.intellij.ui.components.labels.LinkLabel;
import com.intellij.ui.components.panels.VerticalLayout;
import com.intellij.util.Alarm;
-import com.intellij.util.ui.GraphicsUtil;
-import com.intellij.util.ui.JBEmptyBorder;
-import com.intellij.util.ui.JBUI;
-import com.intellij.util.ui.UIUtil;
+import com.intellij.util.ui.*;
import org.jetbrains.annotations.NotNull;
-import sun.swing.SwingUtilities2;
import javax.swing.*;
import javax.swing.border.Border;
@@ -500,10 +496,10 @@ public class HelpTooltip {
// Compute preferred size
FontMetrics tfm = getFontMetrics(titleFont);
- int titleWidth = SwingUtilities2.stringWidth(this, tfm, title);
+ int titleWidth = UIUtilities.stringWidth(this, tfm, title);
FontMetrics fm = getFontMetrics(font);
- titleWidth += StringUtil.isNotEmpty(shortcut) ? hgap() + SwingUtilities2.stringWidth(this, fm, shortcut) : 0;
+ titleWidth += StringUtil.isNotEmpty(shortcut) ? hgap() + UIUtilities.stringWidth(this, fm, shortcut) : 0;
boolean limitWidth = StringUtil.isNotEmpty(description) || link != null;
isMultiline = limitWidth && (titleWidth > maxWidth());
diff --git a/platform/platform-impl/intellij.platform.ide.impl.iml b/platform/platform-impl/intellij.platform.ide.impl.iml
index 33a5a7b2e112..74652705f74d 100644
--- a/platform/platform-impl/intellij.platform.ide.impl.iml
+++ b/platform/platform-impl/intellij.platform.ide.impl.iml
@@ -56,5 +56,6 @@
+
\ No newline at end of file
diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/newui/TabHeaderComponent.java b/platform/platform-impl/src/com/intellij/ide/plugins/newui/TabHeaderComponent.java
index 02408612e847..1139e4a1605c 100644
--- a/platform/platform-impl/src/com/intellij/ide/plugins/newui/TabHeaderComponent.java
+++ b/platform/platform-impl/src/com/intellij/ide/plugins/newui/TabHeaderComponent.java
@@ -12,9 +12,9 @@ import com.intellij.ui.awt.RelativePoint;
import com.intellij.ui.components.breadcrumbs.Breadcrumbs;
import com.intellij.util.ui.JBUI;
import com.intellij.util.ui.UIUtil;
+import com.intellij.util.ui.UIUtilities;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.TestOnly;
-import sun.swing.SwingUtilities2;
import javax.swing.*;
import java.awt.*;
@@ -277,7 +277,7 @@ public class TabHeaderComponent extends JComponent {
FontMetrics fm = getFontMetrics(getFont());
for (int i = 0; i < size; i++) {
- int tabWidth = offset + SwingUtilities2.stringWidth(null, fm, myTabs.get(i).compute()) + offset;
+ int tabWidth = offset + UIUtilities.stringWidth(null, fm, myTabs.get(i).compute()) + offset;
mySizeInfo.tabTitleX[i] = x + offset;
mySizeInfo.tabs[i] = new Rectangle(x, 0, tabWidth, -1);
x += tabWidth;
diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonUI.java
index 85799b2e18ec..19742e05cac5 100644
--- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonUI.java
+++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonUI.java
@@ -11,7 +11,6 @@ import com.intellij.openapi.util.text.StringUtil;
import com.intellij.ui.JBColor;
import com.intellij.ui.components.JBOptionButton;
import com.intellij.util.ui.*;
-import sun.swing.SwingUtilities2;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;
@@ -150,11 +149,11 @@ public class DarculaButtonUI extends BasicButtonUI {
ButtonModel model = button.getModel();
g.setColor(getButtonTextColor(button));
- FontMetrics metrics = SwingUtilities2.getFontMetrics(c, g);
+ FontMetrics metrics = UIUtilities.getFontMetrics(c, g);
int mnemonicIndex = DarculaLaf.isAltPressed() ? button.getDisplayedMnemonicIndex() : -1;
if (model.isEnabled()) {
- SwingUtilities2.drawStringUnderlineCharAt(c, g, text, mnemonicIndex,
+ UIUtilities.drawStringUnderlineCharAt(c, g, text, mnemonicIndex,
textRect.x + getTextShiftOffset(),
textRect.y + metrics.getAscent() + getTextShiftOffset());
}
@@ -174,7 +173,7 @@ public class DarculaButtonUI extends BasicButtonUI {
protected void paintDisabledText(Graphics g, String text, JComponent c, Rectangle textRect, FontMetrics metrics) {
g.setColor(UIManager.getColor("Button.disabledText"));
- SwingUtilities2.drawStringUnderlineCharAt(c, g, text, -1,
+ UIUtilities.drawStringUnderlineCharAt(c, g, text, -1,
textRect.x + getTextShiftOffset(),
textRect.y + metrics.getAscent() + getTextShiftOffset());
}
@@ -182,7 +181,7 @@ public class DarculaButtonUI extends BasicButtonUI {
protected void paintContents(Graphics g, AbstractButton b) {
if (b instanceof JBOptionButton) return;
- FontMetrics fm = SwingUtilities2.getFontMetrics(b, g);
+ FontMetrics fm = UIUtilities.getFontMetrics(b, g);
boolean isDotButton = isSquare(b) && b.getIcon() == AllIcons.General.Ellipsis;
String text = isDotButton ? "..." : b.getText();
Icon icon = isDotButton ? null : b.getIcon();
diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaCheckBoxUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaCheckBoxUI.java
index fd2d9d71d658..f9cecf925635 100644
--- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaCheckBoxUI.java
+++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaCheckBoxUI.java
@@ -3,7 +3,6 @@ package com.intellij.ide.ui.laf.darcula.ui;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.util.ui.*;
-import sun.swing.SwingUtilities2;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;
@@ -52,7 +51,7 @@ public class DarculaCheckBoxUI extends MetalCheckBoxUI {
Font f = c.getFont();
g.setFont(f);
- FontMetrics fm = SwingUtilities2.getFontMetrics(c, g, f);
+ FontMetrics fm = UIUtilities.getFontMetrics(c, g, f);
String text = SwingUtilities.layoutCompoundLabel(
c, fm, b.getText(), getDefaultIcon(),
@@ -92,7 +91,7 @@ public class DarculaCheckBoxUI extends MetalCheckBoxUI {
} else {
g.setColor(b.isEnabled() ? b.getForeground() : getDisabledTextColor());
final int mnemonicIndex = SystemInfo.isMac && !UIManager.getBoolean("Button.showMnemonics") ? -1 : b.getDisplayedMnemonicIndex();
- SwingUtilities2.drawStringUnderlineCharAt(c, g, text,
+ UIUtilities.drawStringUnderlineCharAt(c, g, text,
mnemonicIndex,
textRect.x,
textRect.y + fm.getAscent());
diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaMenuItemUIBase.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaMenuItemUIBase.java
index 0cc5d36f3e72..be6ff2775cc5 100644
--- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaMenuItemUIBase.java
+++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaMenuItemUIBase.java
@@ -3,8 +3,8 @@ package com.intellij.ide.ui.laf.darcula.ui;
import com.intellij.ide.ui.UISettings;
import com.intellij.util.ui.JBInsets;
+import com.intellij.util.ui.UIUtilities;
import sun.swing.MenuItemLayoutHelper;
-import sun.swing.SwingUtilities2;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;
@@ -129,16 +129,16 @@ public class DarculaMenuItemUIBase extends BasicMenuItemUI {
// *** paint the accText disabled
if (disabledForeground != null) {
g.setColor(disabledForeground);
- SwingUtilities2.drawString(lh.getMenuItem(), g,
- lh.getAccText(), lr.getAccRect().x,
+ UIUtilities.drawString(lh.getMenuItem(), g,
+ lh.getAccText(), lr.getAccRect().x,
lr.getAccRect().y + lh.getAccFontMetrics().getAscent());
} else {
g.setColor(lh.getMenuItem().getBackground().brighter());
- SwingUtilities2.drawString(lh.getMenuItem(), g,
+ UIUtilities.drawString(lh.getMenuItem(), g,
lh.getAccText(), lr.getAccRect().x,
lr.getAccRect().y + lh.getAccFontMetrics().getAscent());
g.setColor(lh.getMenuItem().getBackground().darker());
- SwingUtilities2.drawString(lh.getMenuItem(), g,
+ UIUtilities.drawString(lh.getMenuItem(), g,
lh.getAccText(), lr.getAccRect().x - 1,
lr.getAccRect().y + lh.getFontMetrics().getAscent() - 1);
}
@@ -151,7 +151,7 @@ public class DarculaMenuItemUIBase extends BasicMenuItemUI {
} else {
g.setColor(acceleratorForeground);
}
- SwingUtilities2.drawString(lh.getMenuItem(), g, lh.getAccText(),
+ UIUtilities.drawString(lh.getMenuItem(), g, lh.getAccText(),
lr.getAccRect().x, lr.getAccRect().y +
lh.getAccFontMetrics().getAscent());
}
diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaProgressBarUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaProgressBarUI.java
index a1d700dd99f1..ced4f6618a1b 100644
--- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaProgressBarUI.java
+++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaProgressBarUI.java
@@ -7,7 +7,7 @@ import com.intellij.ui.JBColor;
import com.intellij.util.ui.JBInsets;
import com.intellij.util.ui.JBUI;
import com.intellij.util.ui.UIUtil;
-import sun.swing.SwingUtilities2;
+import com.intellij.util.ui.UIUtilities;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;
@@ -169,21 +169,21 @@ public class DarculaProgressBarUI extends BasicProgressBarUI {
if (progressBar.getOrientation() == SwingConstants.HORIZONTAL) {
g.setColor(getSelectionBackground());
- SwingUtilities2.drawString(progressBar, g, progressString, renderLocation.x, renderLocation.y);
+ UIUtilities.drawString(progressBar, g, progressString, renderLocation.x, renderLocation.y);
g.setColor(getSelectionForeground());
g.clipRect(fillStart, y, amountFull, h);
- SwingUtilities2.drawString(progressBar, g, progressString, renderLocation.x, renderLocation.y);
+ UIUtilities.drawString(progressBar, g, progressString, renderLocation.x, renderLocation.y);
} else { // VERTICAL
g.setColor(getSelectionBackground());
AffineTransform rotate = AffineTransform.getRotateInstance(Math.PI/2);
g.setFont(progressBar.getFont().deriveFont(rotate));
renderLocation = getStringPlacement(g, progressString, x, y, w, h);
- SwingUtilities2.drawString(progressBar, g, progressString, renderLocation.x, renderLocation.y);
+ UIUtilities.drawString(progressBar, g, progressString, renderLocation.x, renderLocation.y);
g.setColor(getSelectionForeground());
g.clipRect(x, fillStart, w, amountFull);
- SwingUtilities2.drawString(progressBar, g, progressString, renderLocation.x, renderLocation.y);
+ UIUtilities.drawString(progressBar, g, progressString, renderLocation.x, renderLocation.y);
}
g.setClip(oldClip);
}
diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaRadioButtonUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaRadioButtonUI.java
index e40c1c82ce0e..8feb28cf5f62 100644
--- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaRadioButtonUI.java
+++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaRadioButtonUI.java
@@ -1,11 +1,7 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.ide.ui.laf.darcula.ui;
-import com.intellij.util.ui.EmptyIcon;
-import com.intellij.util.ui.JBInsets;
-import com.intellij.util.ui.JBUI;
-import com.intellij.util.ui.LafIconLookup;
-import sun.swing.SwingUtilities2;
+import com.intellij.util.ui.*;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;
@@ -46,7 +42,7 @@ public class DarculaRadioButtonUI extends MetalRadioButtonUI {
Font f = c.getFont();
g.setFont(f);
- FontMetrics fm = SwingUtilities2.getFontMetrics(c, g, f);
+ FontMetrics fm = UIUtilities.getFontMetrics(c, g, f);
String text = SwingUtilities.layoutCompoundLabel(
c, fm, b.getText(), getDefaultIcon(),
@@ -84,7 +80,7 @@ public class DarculaRadioButtonUI extends MetalRadioButtonUI {
} else {
int mnemonicIndex = b.getDisplayedMnemonicIndex();
g.setColor(b.isEnabled() ? b.getForeground() : getDisabledTextColor());
- SwingUtilities2.drawStringUnderlineCharAt(b, g, text, mnemonicIndex, textRect.x, textRect.y + fm.getAscent());
+ UIUtilities.drawStringUnderlineCharAt(b, g, text, mnemonicIndex, textRect.x, textRect.y + fm.getAscent());
}
}
diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaTabbedPaneUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaTabbedPaneUI.java
index a50694be659c..ae1e136e0759 100644
--- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaTabbedPaneUI.java
+++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaTabbedPaneUI.java
@@ -6,7 +6,7 @@ import com.intellij.ui.JBColor;
import com.intellij.util.ui.JBInsets;
import com.intellij.util.ui.JBUI;
import com.intellij.util.ui.JBValue;
-import sun.swing.SwingUtilities2;
+import com.intellij.util.ui.UIUtilities;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;
@@ -198,7 +198,7 @@ public class DarculaTabbedPaneUI extends BasicTabbedPaneUI {
g.setFont(font);
g.setColor(DISABLED_TEXT_COLOR);
- SwingUtilities2.drawStringUnderlineCharAt(tabPane, g, title, mnemIndex, textRect.x, textRect.y + metrics.getAscent());
+ UIUtilities.drawStringUnderlineCharAt(tabPane, g, title, mnemIndex, textRect.x, textRect.y + metrics.getAscent());
}
}
@@ -292,7 +292,7 @@ public class DarculaTabbedPaneUI extends BasicTabbedPaneUI {
} else {
// plain text
String title = tabPane.getTitleAt(tabIndex);
- width += SwingUtilities2.stringWidth(tabPane, metrics, title);
+ width += UIUtilities.stringWidth(tabPane, metrics, title);
}
}
return width;
diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonUI.java
index cd56e41d5a46..6336371502ed 100644
--- a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonUI.java
+++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonUI.java
@@ -3,11 +3,7 @@ package com.intellij.ide.ui.laf.intellij;
import com.intellij.ide.ui.laf.darcula.ui.DarculaButtonUI;
import com.intellij.ui.Gray;
-import com.intellij.util.ui.JBUI;
-import com.intellij.util.ui.LafIconLookup;
-import com.intellij.util.ui.MacUIUtil;
-import com.intellij.util.ui.UIUtil;
-import sun.swing.SwingUtilities2;
+import com.intellij.util.ui.*;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;
@@ -135,6 +131,6 @@ public class MacIntelliJButtonUI extends DarculaButtonUI {
} else {
g.setColor(UIManager.getColor("Button.disabledText"));
}
- SwingUtilities2.drawStringUnderlineCharAt(c, g, text, -1, x, y);
+ UIUtilities.drawStringUnderlineCharAt(c, g, text, -1, x, y);
}
}
diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/WinIntelliJButtonUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/WinIntelliJButtonUI.java
index c43821d5482f..ac4cb69b0b47 100644
--- a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/WinIntelliJButtonUI.java
+++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/WinIntelliJButtonUI.java
@@ -18,7 +18,6 @@ package com.intellij.ide.ui.laf.intellij;
import com.intellij.ide.ui.laf.darcula.DarculaUIUtil;
import com.intellij.ide.ui.laf.darcula.ui.DarculaButtonUI;
import com.intellij.util.ui.*;
-import sun.swing.SwingUtilities2;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;
@@ -118,7 +117,7 @@ public class WinIntelliJButtonUI extends DarculaButtonUI {
Graphics2D g2 = (Graphics2D)g.create();
try {
g2.setColor(UIManager.getColor("Button.disabledText"));
- SwingUtilities2.drawStringUnderlineCharAt(c, g2, text, -1,
+ UIUtilities.drawStringUnderlineCharAt(c, g2, text, -1,
textRect.x + getTextShiftOffset(),
textRect.y + metrics.getAscent() + getTextShiftOffset());
} finally {
diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButtonWithText.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButtonWithText.java
index a5ff83bc9c60..2e9db715b5a9 100644
--- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButtonWithText.java
+++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButtonWithText.java
@@ -10,13 +10,9 @@ import com.intellij.openapi.util.SystemInfo;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.BitUtil;
-import com.intellij.util.ui.EmptyIcon;
-import com.intellij.util.ui.JBInsets;
-import com.intellij.util.ui.JBUI;
-import com.intellij.util.ui.UIUtil;
+import com.intellij.util.ui.*;
import org.intellij.lang.annotations.MagicConstant;
import org.jetbrains.annotations.NotNull;
-import sun.swing.SwingUtilities2;
import javax.swing.*;
import javax.swing.plaf.ComponentInputMapUIResource;
@@ -154,9 +150,9 @@ public class ActionButtonWithText extends ActionButton {
UISettings.setupAntialiasing(g);
g.setColor(isButtonEnabled() ? getForeground() : getInactiveTextColor());
- SwingUtilities2.drawStringUnderlineCharAt(this, g, text,
- getMnemonicCharIndex(text),
- textRect.x,
+ UIUtilities.drawStringUnderlineCharAt(this, g, text,
+ getMnemonicCharIndex(text),
+ textRect.x,
textRect.y + fm.getAscent());
}
diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/TextFragmentFactory.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/TextFragmentFactory.java
index f3e625312e15..0c373e2430d3 100644
--- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/TextFragmentFactory.java
+++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/TextFragmentFactory.java
@@ -16,8 +16,8 @@
package com.intellij.openapi.editor.impl.view;
import com.intellij.openapi.editor.impl.FontInfo;
+import com.intellij.util.ui.UIUtilities;
import org.jetbrains.annotations.NotNull;
-import sun.swing.SwingUtilities2;
class TextFragmentFactory {
public static TextFragment createTextFragment(@NotNull char[] lineChars, int start, int end, boolean isRtl, @NotNull FontInfo fontInfo) {
@@ -31,6 +31,6 @@ class TextFragmentFactory {
private static boolean isComplexText(char[] chars, int start, int end) {
// replace with Font.textRequiresLayout in Java 9
- return SwingUtilities2.isComplexLayout(chars, start, end);
+ return UIUtilities.isComplexLayout(chars, start, end);
}
}
diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentTabLabel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentTabLabel.java
index a17ae0e5f921..a694196d18b0 100644
--- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentTabLabel.java
+++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentTabLabel.java
@@ -16,9 +16,9 @@ import com.intellij.util.SmartList;
import com.intellij.util.ui.BaseButtonBehavior;
import com.intellij.util.ui.JBUI;
import com.intellij.util.ui.TimedDeadzone;
+import com.intellij.util.ui.UIUtilities;
import gnu.trove.THashMap;
import org.jetbrains.annotations.NotNull;
-import sun.swing.SwingUtilities2;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
@@ -147,14 +147,14 @@ class ContentTabLabel extends BaseLabel {
private void updateText() {
FontMetrics fm = getFontMetrics(getFont());
- int textWidth = SwingUtilities2.stringWidth(this, fm, myText);
+ int textWidth = UIUtilities.stringWidth(this, fm, myText);
int prefWidth = myIconWithInsetsWidth + textWidth;
int maxWidth = getMaximumSize().width;
if(prefWidth > maxWidth) {
int offset = maxWidth - myIconWithInsetsWidth;
- String s = SwingUtilities2.clipString(this, fm, myText, offset);
+ String s = UIUtilities.clipString(this, fm, myText, offset);
super.setText(s);
return;
}
diff --git a/platform/util/intellij.platform.util.iml b/platform/util/intellij.platform.util.iml
index 3a006aa38888..67d21f107f3b 100644
--- a/platform/util/intellij.platform.util.iml
+++ b/platform/util/intellij.platform.util.iml
@@ -26,6 +26,7 @@
+
diff --git a/platform/util/src/com/intellij/util/ui/AATextInfo.java b/platform/util/src/com/intellij/util/ui/AATextInfo.java
index 93b14e779065..237c2a3881ab 100644
--- a/platform/util/src/com/intellij/util/ui/AATextInfo.java
+++ b/platform/util/src/com/intellij/util/ui/AATextInfo.java
@@ -6,7 +6,6 @@ import com.intellij.openapi.util.SystemInfo;
import com.intellij.util.ObjectUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import sun.swing.SwingUtilities2;
import javax.swing.*;
import java.awt.*;
@@ -40,7 +39,7 @@ public class AATextInfo {
if (SystemInfo.IS_AT_LEAST_JAVA9) {
return new AATextInfo(aaHint, lcdContrastHint);
}
- return new SwingUtilities2.AATextInfo(aaHint, lcdContrastHint);
+ return new UIUtilities.AATextInfo(aaHint, lcdContrastHint);
}
public static void putClientProperty(@Nullable Object aaTextInfo, @NotNull JComponent comp) {
@@ -49,7 +48,7 @@ public class AATextInfo {
comp.putClientProperty(RenderingHints.KEY_TEXT_ANTIALIASING, info.aaHint);
comp.putClientProperty(RenderingHints.KEY_TEXT_LCD_CONTRAST, info.lcdContrastHint);
} else {
- comp.putClientProperty(SwingUtilities2.AA_TEXT_PROPERTY_KEY, aaTextInfo);
+ comp.putClientProperty(UIUtilities.AA_TEXT_PROPERTY_KEY, aaTextInfo);
}
}
@@ -59,7 +58,7 @@ public class AATextInfo {
Object lcdContrastHint = comp.getClientProperty(RenderingHints.KEY_TEXT_LCD_CONTRAST);
return new AATextInfo(aaHint, lcdContrastHint != null ? (Integer)lcdContrastHint : null);
}
- return comp.getClientProperty(SwingUtilities2.AA_TEXT_PROPERTY_KEY);
+ return comp.getClientProperty(UIUtilities.AA_TEXT_PROPERTY_KEY);
}
public static Pair