add java 9 compatibility library

This commit is contained in:
Konstantin Bulenkov
2018-09-05 20:52:44 +02:00
parent 2a1233d3a2
commit 37b704d1af
20 changed files with 58 additions and 64 deletions
+9
View File
@@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="Java Compatibility">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/java-compatibility.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>
Binary file not shown.
@@ -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",
@@ -33,5 +33,6 @@
<orderEntry type="library" name="jackson" level="project" />
<orderEntry type="library" name="netty-codec-http" level="project" />
<orderEntry type="library" scope="RUNTIME" name="delight-nashorn-sandbox" level="project" />
<orderEntry type="library" name="Java Compatibility" level="project" />
</component>
</module>
@@ -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());
@@ -56,5 +56,6 @@
<orderEntry type="library" scope="RUNTIME" name="error-prone-annotations" level="project" />
<orderEntry type="library" name="jackson" level="project" />
<orderEntry type="library" name="microba" level="project" />
<orderEntry type="library" name="Java Compatibility" level="project" />
</component>
</module>
@@ -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;
@@ -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();
@@ -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());
@@ -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());
}
@@ -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);
}
@@ -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());
}
}
@@ -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;
@@ -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);
}
}
@@ -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 {
@@ -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());
}
@@ -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);
}
}
@@ -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;
}
+1
View File
@@ -26,6 +26,7 @@
<orderEntry type="library" name="lz4-java" level="project" />
<orderEntry type="library" name="xml-apis-ext" level="project" />
<orderEntry type="library" name="commons-compress" level="project" />
<orderEntry type="library" name="Java Compatibility" level="project" />
</component>
<component name="copyright">
<Base>
@@ -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<Object, Object>[] toArray(@Nullable Object aaTextInfo) {
@@ -72,6 +71,6 @@ public class AATextInfo {
};
}
//noinspection unchecked
return new Pair[] {Pair.create(SwingUtilities2.AA_TEXT_PROPERTY_KEY, aaTextInfo)};
return new Pair[] {Pair.create(UIUtilities.AA_TEXT_PROPERTY_KEY, aaTextInfo)};
}
}