From 15290c84aa4607377fb8b7cb72615f3b72bf1682 Mon Sep 17 00:00:00 2001 From: Julia Beliaeva Date: Sun, 6 Mar 2016 15:16:24 +0300 Subject: [PATCH 1/2] [vcs-log] cache Selection in table to only calculate it when its changed --- .../intellij/vcs/log/ui/frame/VcsLogGraphTable.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java index d996469a8557..9a3bad3bc68a 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java @@ -93,6 +93,7 @@ public class VcsLogGraphTable extends JBTable implements DataProvider, CopyProvi @NotNull private final TableCellRenderer myDummyRenderer = new DefaultTableCellRenderer(); @NotNull private final GraphCommitCellRender myGraphCommitCellRenderer; private boolean myColumnsSizeInitialized = false; + @Nullable private Selection mySelection = null; @NotNull private final Collection myHighlighters = ContainerUtil.newArrayList(); @@ -121,6 +122,8 @@ public class VcsLogGraphTable extends JBTable implements DataProvider, CopyProvi addMouseMotionListener(mouseAdapter); addMouseListener(mouseAdapter); + getSelectionModel().addListSelectionListener(new MyListSelectionListener()); + PopupHandler.installPopupHandler(this, VcsLogActionPlaces.POPUP_ACTION_GROUP, VcsLogActionPlaces.VCS_LOG_TABLE_PLACE); ScrollingUtil.installActions(this, false); @@ -463,7 +466,8 @@ public class VcsLogGraphTable extends JBTable implements DataProvider, CopyProvi @NotNull public Selection getSelection() { - return new Selection(this); + if (mySelection == null) mySelection = new Selection(this); + return mySelection; } private static class Selection { @@ -917,4 +921,11 @@ public class VcsLogGraphTable extends JBTable implements DataProvider, CopyProvi mouseInputListener.mouseMoved(convertMouseEvent(e)); } } + + private class MyListSelectionListener implements ListSelectionListener { + @Override + public void valueChanged(ListSelectionEvent e) { + mySelection = null; + } + } } From 06814700296f0d4eb6df8944712e745a6f2f86b8 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Sun, 6 Mar 2016 11:11:13 +0100 Subject: [PATCH 2/2] IG: replace unnecessary boxing with Boolean constant (IDEA-152361) --- .../ig/migration/UnnecessaryBoxingInspection.java | 11 +++++++++++ .../ig/fixes/migration/UnnecessaryBoxingFixTest.java | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/migration/UnnecessaryBoxingInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/migration/UnnecessaryBoxingInspection.java index 3cb0ce00b70a..71c1e37408f5 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/migration/UnnecessaryBoxingInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/migration/UnnecessaryBoxingInspection.java @@ -99,6 +99,17 @@ public class UnnecessaryBoxingInspection extends BaseInspection { return; } final PsiExpression unboxedExpression = arguments[0]; + final Object value = ExpressionUtils.computeConstantExpression(unboxedExpression); + if (value != null) { + if (value == Boolean.TRUE) { + PsiReplacementUtil.replaceExpression(expression, "java.lang.Boolean.TRUE"); + return; + } + else if (value == Boolean.FALSE) { + PsiReplacementUtil.replaceExpression(expression, "java.lang.Boolean.FALSE"); + return; + } + } final String replacementText = getUnboxedExpressionText(unboxedExpression, boxedType); if (replacementText == null) { return; diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/migration/UnnecessaryBoxingFixTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/migration/UnnecessaryBoxingFixTest.java index 3bd9150c0cdb..ba793c847cec 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/migration/UnnecessaryBoxingFixTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/migration/UnnecessaryBoxingFixTest.java @@ -56,6 +56,12 @@ public class UnnecessaryBoxingFixTest extends IGQuickFixesTestCase { "Double l = 1d;"); } + public void testBooleanLiteral() { + doMemberTest(InspectionGadgetsBundle.message("unnecessary.boxing.remove.quickfix"), + "final Boolean aBoolean = Boolean.valueOf(/**/true);", + "final Boolean aBoolean = Boolean.TRUE;"); + } + public void testCast() { doFixTest(); }