diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerEditorImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerEditorImpl.java index 502e4cc78c0d..5eb71c30e869 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerEditorImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerEditorImpl.java @@ -115,7 +115,7 @@ public abstract class DebuggerEditorImpl extends CompletionEditor{ myChooseFactory.setBorder(new EmptyBorder(0, 3, 0, 3)); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { ListPopup oldPopup = SoftReference.dereference(myPopup); if (oldPopup != null && !oldPopup.isDisposed()) { oldPopup.cancel(); diff --git a/java/idea-ui/src/com/intellij/ide/util/projectWizard/JdkChooserPanel.java b/java/idea-ui/src/com/intellij/ide/util/projectWizard/JdkChooserPanel.java index 3ea1bcf567c5..8a53180ce4c0 100644 --- a/java/idea-ui/src/com/intellij/ide/util/projectWizard/JdkChooserPanel.java +++ b/java/idea-ui/src/com/intellij/ide/util/projectWizard/JdkChooserPanel.java @@ -70,7 +70,7 @@ public class JdkChooserPanel extends JPanel { }); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (myProject == null) { editJdkTable(); } diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/OptionTreeWithPreviewPanel.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/OptionTreeWithPreviewPanel.java index 99defdf20b8f..673178a30117 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/OptionTreeWithPreviewPanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/OptionTreeWithPreviewPanel.java @@ -219,7 +219,7 @@ public abstract class OptionTreeWithPreviewPanel extends MultilanguageCodeStyleA new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (!optionsTree.isEnabled()) return false; TreePath treePath = optionsTree.getPathForLocation(e.getX(), e.getY()); selectCheckbox(treePath); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/FileLevelIntentionComponent.java b/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/FileLevelIntentionComponent.java index 03f3ee3c5725..6af5890fd4b9 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/FileLevelIntentionComponent.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/FileLevelIntentionComponent.java @@ -32,6 +32,7 @@ import com.intellij.psi.PsiFile; import com.intellij.ui.ClickListener; import com.intellij.ui.EditorNotificationPanel; import com.intellij.ui.LightColors; +import org.jetbrains.annotations.NotNull; import java.awt.*; import java.awt.event.MouseEvent; @@ -76,7 +77,7 @@ public class FileLevelIntentionComponent extends EditorNotificationPanel { new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { IntentionListStep step = new IntentionListStep(null, info, editor, psiFile, project); if (intentions != null && !intentions.isEmpty()) { HighlightInfo.IntentionActionDescriptor descriptor = intentions.get(0).getFirst(); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/Advertiser.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/Advertiser.java index fc79842b8632..456b4d06d1fd 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/Advertiser.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/Advertiser.java @@ -78,7 +78,7 @@ public class Advertiser { myNextLabel.setForeground(JBColor.blue); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { myCurrentItem++; updateAdvertisements(); return true; diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java index af94efd3cd4e..b92155067b27 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java @@ -936,7 +936,7 @@ public class LookupImpl extends LightweightHint implements LookupEx, Disposable new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { setFocusDegree(FocusDegree.FOCUSED); markSelectionTouched(); @@ -1524,7 +1524,7 @@ public class LookupImpl extends LightweightHint implements LookupEx, Disposable private class ChangeLookupSorting extends ClickListener { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { DataContext context = DataManager.getInstance().getDataContext(mySortingLabel); DefaultActionGroup group = new DefaultActionGroup(); group.add(createSortingAction(true)); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateSettingsEditor.java b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateSettingsEditor.java index 748f684c5143..1257e43641d6 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateSettingsEditor.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateSettingsEditor.java @@ -51,6 +51,7 @@ import com.intellij.util.ui.UIUtil; import com.intellij.util.ui.tree.TreeUtil; import com.intellij.util.ui.update.Activatable; import com.intellij.util.ui.update.UiNotifyConnector; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -344,7 +345,7 @@ public class LiveTemplateSettingsEditor extends JPanel { new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (disposeContextPopup()) return false; final JPanel content = createPopupContextPanel(updateLabel, myContext); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TableSorter.java b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TableSorter.java index e197ad671080..4418fa99ed30 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TableSorter.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TableSorter.java @@ -37,6 +37,7 @@ package com.intellij.codeInsight.template.impl; import com.intellij.openapi.diagnostic.Logger; import com.intellij.ui.ClickListener; import com.intellij.util.ArrayUtil; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import javax.swing.event.TableModelEvent; @@ -337,7 +338,7 @@ order diminishes - it may drop very quickly. */ tableView.setColumnSelectionAllowed(false); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { TableColumnModel columnModel = tableView.getColumnModel(); int viewColumn = columnModel.getColumnIndexAtX(e.getX()); int column = tableView.convertColumnIndexToModel(viewColumn); diff --git a/platform/lang-impl/src/com/intellij/ide/bookmarks/actions/MnemonicChooser.java b/platform/lang-impl/src/com/intellij/ide/bookmarks/actions/MnemonicChooser.java index c17b8a31dec4..950d830745c5 100644 --- a/platform/lang-impl/src/com/intellij/ide/bookmarks/actions/MnemonicChooser.java +++ b/platform/lang-impl/src/com/intellij/ide/bookmarks/actions/MnemonicChooser.java @@ -26,6 +26,7 @@ import com.intellij.ui.JBColor; import com.intellij.ui.LightColors; import com.intellij.ui.components.panels.NonOpaquePanel; import com.intellij.util.ui.UIUtil; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import javax.swing.border.LineBorder; @@ -117,7 +118,7 @@ public class MnemonicChooser extends JPanel { new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { onMnemonicChosen(c); return true; } diff --git a/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java b/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java index 2141894164eb..9151f46f0c89 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java +++ b/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java @@ -567,7 +567,7 @@ public class FileStructurePopup implements Disposable { new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { final TreePath path = myTree.getPathForLocation(e.getX(), e.getY()); if (path == null) return false; // user wants to expand/collapse a node navigateSelectedElement(); diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java index 06273414191f..254a545deaca 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java @@ -631,7 +631,7 @@ public abstract class ChooseByNameBase { ListSelectionModel.SINGLE_SELECTION); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (!myTextField.hasFocus()) { myTextField.requestFocus(); } diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/libraries/ui/impl/CheckboxTreeTable.java b/platform/lang-impl/src/com/intellij/openapi/roots/libraries/ui/impl/CheckboxTreeTable.java index 2695b1ea8ef4..dd72da957fa2 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/libraries/ui/impl/CheckboxTreeTable.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/libraries/ui/impl/CheckboxTreeTable.java @@ -23,6 +23,7 @@ import com.intellij.ui.treeStructure.treetable.ListTreeTableModelOnColumns; import com.intellij.ui.treeStructure.treetable.TreeTableTree; import com.intellij.util.ui.ColumnInfo; import com.intellij.util.ui.tree.TreeUtil; +import org.jetbrains.annotations.NotNull; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeModel; @@ -56,7 +57,7 @@ public class CheckboxTreeTable extends TreeTableView { new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { int row = tree.getRowForLocation(e.getX(), e.getY()); if (row < 0) return false; final Object o = tree.getPathForRow(row).getLastPathComponent(); diff --git a/platform/platform-api/src/com/intellij/openapi/ui/ThreeComponentsSplitter.java b/platform/platform-api/src/com/intellij/openapi/ui/ThreeComponentsSplitter.java index a5b9bf5ad80a..86480d398f91 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/ThreeComponentsSplitter.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/ThreeComponentsSplitter.java @@ -24,6 +24,7 @@ import com.intellij.ui.ClickListener; import com.intellij.ui.UIBundle; import com.intellij.util.ui.update.Activatable; import com.intellij.util.ui.update.UiNotifyConnector; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.*; @@ -534,7 +535,7 @@ public class ThreeComponentsSplitter extends JPanel implements Disposable { .message("splitter.right.tooltip.text")); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (myInnerComponent != null) { final int income = myVerticalSplit ? myInnerComponent.getHeight() : myInnerComponent.getWidth(); if (myIsFirst) { @@ -560,7 +561,7 @@ public class ThreeComponentsSplitter extends JPanel implements Disposable { splitCenterlabel.setToolTipText(UIBundle.message("splitter.center.tooltip.text")); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { center(); return true; } @@ -576,7 +577,7 @@ public class ThreeComponentsSplitter extends JPanel implements Disposable { .message("splitter.left.tooltip.text")); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (myInnerComponent != null) { final int income = myVerticalSplit ? myInnerComponent.getHeight() : myInnerComponent.getWidth(); if (myIsFirst) { diff --git a/platform/platform-api/src/com/intellij/ui/AutoScrollToSourceHandler.java b/platform/platform-api/src/com/intellij/ui/AutoScrollToSourceHandler.java index 7dbf1d969d24..be2f2455b258 100644 --- a/platform/platform-api/src/com/intellij/ui/AutoScrollToSourceHandler.java +++ b/platform/platform-api/src/com/intellij/ui/AutoScrollToSourceHandler.java @@ -34,6 +34,7 @@ import com.intellij.openapi.wm.ToolWindow; import com.intellij.pom.Navigatable; import com.intellij.util.Alarm; import com.intellij.util.OpenSourceUtil; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import javax.swing.event.ListSelectionEvent; @@ -55,7 +56,7 @@ public abstract class AutoScrollToSourceHandler { myAutoScrollAlarm = new Alarm(); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (clickCount > 1) return false; TreePath location = tree.getPathForLocation(e.getPoint().x, e.getPoint().y); @@ -86,7 +87,7 @@ public abstract class AutoScrollToSourceHandler { myAutoScrollAlarm = new Alarm(); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (clickCount >= 2) return false; Component location = table.getComponentAt(e.getPoint()); @@ -117,7 +118,7 @@ public abstract class AutoScrollToSourceHandler { myAutoScrollAlarm = new Alarm(); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (clickCount >= 2) return false; final Object source = e.getSource(); final int index = jList.locationToIndex(SwingUtilities.convertPoint(source instanceof Component ? (Component)source : null, e.getPoint(), jList)); diff --git a/platform/platform-api/src/com/intellij/ui/CheckBoxList.java b/platform/platform-api/src/com/intellij/ui/CheckBoxList.java index 5dfc570456dd..810c4c94ca89 100644 --- a/platform/platform-api/src/com/intellij/ui/CheckBoxList.java +++ b/platform/platform-api/src/com/intellij/ui/CheckBoxList.java @@ -60,7 +60,7 @@ public class CheckBoxList extends JBList { }); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (isEnabled()) { int index = locationToIndex(e.getPoint()); diff --git a/platform/platform-api/src/com/intellij/ui/CheckBoxWithColorChooser.java b/platform/platform-api/src/com/intellij/ui/CheckBoxWithColorChooser.java index 109acad78d48..baa0d267f9df 100644 --- a/platform/platform-api/src/com/intellij/ui/CheckBoxWithColorChooser.java +++ b/platform/platform-api/src/com/intellij/ui/CheckBoxWithColorChooser.java @@ -16,6 +16,7 @@ package com.intellij.ui; import com.intellij.openapi.util.SystemInfo; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.*; @@ -76,7 +77,7 @@ public class CheckBoxWithColorChooser extends JPanel { new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (myCheckbox.isSelected()) { final Color color = ColorChooser.chooseColor(myCheckbox, "Chose color", CheckBoxWithColorChooser.this.myColor); if (color != null) { diff --git a/platform/platform-api/src/com/intellij/ui/CheckboxTreeBase.java b/platform/platform-api/src/com/intellij/ui/CheckboxTreeBase.java index c5dcc9e46e8f..d9755f342a3f 100644 --- a/platform/platform-api/src/com/intellij/ui/CheckboxTreeBase.java +++ b/platform/platform-api/src/com/intellij/ui/CheckboxTreeBase.java @@ -18,6 +18,7 @@ package com.intellij.ui; import com.intellij.ui.treeStructure.Tree; import com.intellij.util.ui.UIUtil; import com.intellij.util.ui.tree.TreeUtil; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -87,7 +88,7 @@ public class CheckboxTreeBase extends Tree { setCellRenderer(cellRenderer); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { int row = getRowForLocation(e.getX(), e.getY()); if (row < 0) return false; final Object o = getPathForRow(row).getLastPathComponent(); diff --git a/platform/platform-api/src/com/intellij/ui/DoubleClickListener.java b/platform/platform-api/src/com/intellij/ui/DoubleClickListener.java index 048ab41ac5a4..2cec8b028382 100644 --- a/platform/platform-api/src/com/intellij/ui/DoubleClickListener.java +++ b/platform/platform-api/src/com/intellij/ui/DoubleClickListener.java @@ -19,11 +19,13 @@ */ package com.intellij.ui; +import org.jetbrains.annotations.NotNull; + import java.awt.event.MouseEvent; public abstract class DoubleClickListener extends ClickListener { @Override - public final boolean onClick(MouseEvent event, int clickCount) { + public final boolean onClick(@NotNull MouseEvent event, int clickCount) { if (clickCount == 2 && event.getButton() == MouseEvent.BUTTON1) { return onDoubleClick(event); } diff --git a/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java b/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java index ad43248dfc1a..f9c5738100b7 100644 --- a/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java +++ b/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java @@ -464,6 +464,12 @@ public class SimpleColoredComponent extends JComponent implements Accessible, Co return -1; } + @Nullable + public Object getFragmentTagAt(int x) { + int index = findFragmentAt(x); + return index < 0 ? null : getFragmentTag(index); + } + @NotNull protected JLabel formatToLabel(@NotNull JLabel label) { label.setIcon(myIcon); diff --git a/platform/platform-api/src/com/intellij/ui/roots/IconActionComponent.java b/platform/platform-api/src/com/intellij/ui/roots/IconActionComponent.java index 411d5f059323..d9ce8ef68444 100644 --- a/platform/platform-api/src/com/intellij/ui/roots/IconActionComponent.java +++ b/platform/platform-api/src/com/intellij/ui/roots/IconActionComponent.java @@ -16,6 +16,7 @@ package com.intellij.ui.roots; import com.intellij.ui.ClickListener; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.*; @@ -43,7 +44,7 @@ public class IconActionComponent extends ScalableIconComponent { }); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (action != null) { action.run(); return true; diff --git a/platform/platform-api/src/com/intellij/util/ui/StatusText.java b/platform/platform-api/src/com/intellij/util/ui/StatusText.java index 3aa1dd0e7bcd..84f1e75eda5b 100644 --- a/platform/platform-api/src/com/intellij/util/ui/StatusText.java +++ b/platform/platform-api/src/com/intellij/util/ui/StatusText.java @@ -52,7 +52,7 @@ public abstract class StatusText { public StatusText() { myClickListener = new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (e.getButton() == MouseEvent.BUTTON1 && clickCount == 1) { ActionListener actionListener = findActionListenerAt(e.getPoint()); if (actionListener != null) { diff --git a/platform/platform-impl/src/com/intellij/codeInsight/hint/HintUtil.java b/platform/platform-impl/src/com/intellij/codeInsight/hint/HintUtil.java index 64a64a7f695d..0d3b085cdfc5 100644 --- a/platform/platform-impl/src/com/intellij/codeInsight/hint/HintUtil.java +++ b/platform/platform-impl/src/com/intellij/codeInsight/hint/HintUtil.java @@ -105,6 +105,7 @@ public class HintUtil { ); } + @NotNull public static JComponent createInformationLabel(SimpleColoredText text) { return createInformationLabel(text, null); } @@ -129,19 +130,21 @@ public class HintUtil { return label; } + @NotNull + public static SimpleColoredComponent createInformationComponent() { + SimpleColoredComponent component = new SimpleColoredComponent(); + component.setBackground(INFORMATION_COLOR); + component.setForeground(JBColor.foreground()); + component.setFont(getBoldFont()); + return component; + } + + @NotNull public static JComponent createInformationLabel(@NotNull SimpleColoredText text, @Nullable Icon icon) { - SimpleColoredComponent highlighted = new SimpleColoredComponent(); - - highlighted.setIcon(icon); - highlighted.setBackground(INFORMATION_COLOR); - highlighted.setForeground(JBColor.foreground()); - highlighted.setFont(getBoldFont()); - text.appendToComponent(highlighted); - - HintLabel label = new HintLabel(); - label.setText(highlighted); - - return label; + SimpleColoredComponent component = createInformationComponent(); + component.setIcon(icon); + text.appendToComponent(component); + return new HintLabel(component); } public static JComponent createErrorLabel(String text) { @@ -195,7 +198,6 @@ public class HintUtil { } private static class HintLabel extends JPanel { - private JEditorPane myPane; private SimpleColoredComponent myColored; private JLabel myIcon; @@ -204,8 +206,12 @@ public class HintUtil { setLayout(new BorderLayout()); } + private HintLabel(@NotNull SimpleColoredComponent component) { + this(); + setText(component); + } - public void setText(SimpleColoredComponent colored) { + public void setText(@NotNull SimpleColoredComponent colored) { clearText(); myColored = colored; diff --git a/platform/platform-impl/src/com/intellij/diagnostic/IdeFatalErrorsIcon.java b/platform/platform-impl/src/com/intellij/diagnostic/IdeFatalErrorsIcon.java index 5ff6aacedc19..3371ed290508 100644 --- a/platform/platform-impl/src/com/intellij/diagnostic/IdeFatalErrorsIcon.java +++ b/platform/platform-impl/src/com/intellij/diagnostic/IdeFatalErrorsIcon.java @@ -4,6 +4,7 @@ import com.intellij.concurrency.JobScheduler; import com.intellij.icons.AllIcons; import com.intellij.ui.ClickListener; import com.intellij.ui.LayeredIcon; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.*; @@ -31,7 +32,7 @@ public class IdeFatalErrorsIcon extends JLabel { new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (myState != State.NoErrors) { myListener.actionPerformed(null); return true; diff --git a/platform/platform-impl/src/com/intellij/diagnostic/JetBrainsAccountDialog.java b/platform/platform-impl/src/com/intellij/diagnostic/JetBrainsAccountDialog.java index 9548e7e03a01..a1dc63622130 100644 --- a/platform/platform-impl/src/com/intellij/diagnostic/JetBrainsAccountDialog.java +++ b/platform/platform-impl/src/com/intellij/diagnostic/JetBrainsAccountDialog.java @@ -20,6 +20,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.ui.ClickListener; import com.intellij.util.net.HTTPProxySettingsDialog; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.*; @@ -78,7 +79,7 @@ public class JetBrainsAccountDialog extends DialogWrapper { new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { HTTPProxySettingsDialog settingsDialog = new HTTPProxySettingsDialog (); settingsDialog.pack(); settingsDialog.show(); @@ -92,7 +93,7 @@ public class JetBrainsAccountDialog extends DialogWrapper { new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { BrowserUtil.launchBrowser("http://account.jetbrains.com"); return true; } diff --git a/platform/platform-impl/src/com/intellij/ide/actions/AboutDialog.java b/platform/platform-impl/src/com/intellij/ide/actions/AboutDialog.java index 8e54b8b56bf8..6f4f33721cb5 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/AboutDialog.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/AboutDialog.java @@ -35,6 +35,7 @@ import com.intellij.ui.LicensingFacade; import com.intellij.ui.UI; import com.intellij.util.text.DateFormatUtil; import com.intellij.util.ui.UIUtil; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.*; @@ -118,7 +119,7 @@ public class AboutDialog extends JDialog { new ClickListener() { @Override - public boolean onClick(MouseEvent event, int clickCount) { + public boolean onClick(@NotNull MouseEvent event, int clickCount) { dispose(); return true; } diff --git a/platform/platform-impl/src/com/intellij/ide/actions/Switcher.java b/platform/platform-impl/src/com/intellij/ide/actions/Switcher.java index ae53a7de1c6b..46a6c34bbed8 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/Switcher.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/Switcher.java @@ -205,7 +205,7 @@ public class Switcher extends AnAction implements DumbAware { final SwitcherSpeedSearch mySpeedSearch; final ClickListener myClickListener = new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (myPinned && (e.isControlDown() || e.isMetaDown() || e.isShiftDown())) return false; final Object source = e.getSource(); if (source instanceof JList) { diff --git a/platform/platform-impl/src/com/intellij/ide/startupWizard/SelectPluginsStep.java b/platform/platform-impl/src/com/intellij/ide/startupWizard/SelectPluginsStep.java index c2f978797011..e000ecb7e4a5 100644 --- a/platform/platform-impl/src/com/intellij/ide/startupWizard/SelectPluginsStep.java +++ b/platform/platform-impl/src/com/intellij/ide/startupWizard/SelectPluginsStep.java @@ -25,6 +25,7 @@ import com.intellij.ui.wizard.WizardNavigationState; import com.intellij.ui.wizard.WizardStep; import com.intellij.util.Function; import com.intellij.util.ui.UIUtil; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -98,7 +99,7 @@ public class SelectPluginsStep extends WizardStep { final int clickableArea = new JCheckBox("").getMinimumSize().width; new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (e.getX() < clickableArea) { toggleSelection(); } diff --git a/platform/platform-impl/src/com/intellij/notification/impl/IdeNotificationArea.java b/platform/platform-impl/src/com/intellij/notification/impl/IdeNotificationArea.java index 804b67741a1c..51c2dbff3fdf 100644 --- a/platform/platform-impl/src/com/intellij/notification/impl/IdeNotificationArea.java +++ b/platform/platform-impl/src/com/intellij/notification/impl/IdeNotificationArea.java @@ -63,7 +63,7 @@ public class IdeNotificationArea extends JLabel implements CustomStatusBarWidget }, this); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { EventLog.toggleLog(getProject(), null); return true; } diff --git a/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileChooserDialogImpl.java b/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileChooserDialogImpl.java index b11c28b8a4ef..b1165471f28f 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileChooserDialogImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileChooserDialogImpl.java @@ -196,7 +196,7 @@ public class FileChooserDialogImpl extends DialogWrapper implements FileChooserD label.setToolTipText("Recent files"); new ClickListener() { @Override - public boolean onClick(MouseEvent event, int clickCount) { + public boolean onClick(@NotNull MouseEvent event, int clickCount) { showRecentFilesPopup(); return true; } diff --git a/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/LinkMouseListenerBase.java b/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/LinkMouseListenerBase.java index 9b91ea49d7bf..402d88cef38a 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/LinkMouseListenerBase.java +++ b/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/LinkMouseListenerBase.java @@ -16,47 +16,71 @@ package com.intellij.openapi.vcs.changes.issueLinks; import com.intellij.ui.ClickListener; +import com.intellij.ui.SimpleColoredComponent; +import com.intellij.util.Consumer; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; -public abstract class LinkMouseListenerBase extends ClickListener implements MouseMotionListener { +public abstract class LinkMouseListenerBase extends ClickListener implements MouseMotionListener { + public static void installSingleTagOn(@NotNull SimpleColoredComponent component) { + new LinkMouseListenerBase>() { + @Nullable + @Override + protected Consumer getTagAt(@NotNull MouseEvent e) { + //noinspection unchecked + return (Consumer)((SimpleColoredComponent)e.getSource()).getFragmentTagAt(e.getX()); + } + + @Override + protected void handleTagClick(@Nullable Consumer tag, @NotNull MouseEvent event) { + if (tag != null) { + tag.consume(event); + } + } + }.installOn(component); + } + @Nullable - protected abstract Object getTagAt(final MouseEvent e); + protected abstract T getTagAt(@NotNull MouseEvent e); @Override - public boolean onClick(MouseEvent e, int clickCount) { - if (e.getButton() == 1) { - Object tag = getTagAt(e); - handleTagClick(tag, e); + public boolean onClick(@NotNull MouseEvent e, int clickCount) { + if (e.getButton() == MouseEvent.BUTTON1) { + handleTagClick(getTagAt(e), e); } return false; } - protected void handleTagClick(final Object tag, MouseEvent event) { + protected void handleTagClick(@Nullable T tag, @NotNull MouseEvent event) { if (tag instanceof Runnable) { - ((Runnable) tag).run(); + ((Runnable)tag).run(); } } - + + @Override public void mouseDragged(MouseEvent e) { } + @Override public void mouseMoved(MouseEvent e) { - Component tree = (Component)e.getSource(); + Component component = (Component)e.getSource(); Object tag = getTagAt(e); if (tag != null) { - tree.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); + component.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); } else { - tree.setCursor(Cursor.getDefaultCursor()); + component.setCursor(Cursor.getDefaultCursor()); } } - public void installOn(Component tree) { - super.installOn(tree); - tree.addMouseMotionListener(this); + @Override + public void installOn(@NotNull Component component) { + super.installOn(component); + + component.addMouseMotionListener(this); } } diff --git a/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/TreeLinkMouseListener.java b/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/TreeLinkMouseListener.java index fb829bd460bd..2b8e79219d31 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/TreeLinkMouseListener.java +++ b/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/TreeLinkMouseListener.java @@ -17,6 +17,7 @@ package com.intellij.openapi.vcs.changes.issueLinks; import com.intellij.openapi.util.Comparing; import com.intellij.ui.ColoredTreeCellRenderer; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -27,7 +28,7 @@ import java.awt.event.MouseEvent; /** * @author yole -*/ + */ public class TreeLinkMouseListener extends LinkMouseListenerBase { private final ColoredTreeCellRenderer myRenderer; protected TreeNode myLastHitNode; @@ -39,31 +40,30 @@ public class TreeLinkMouseListener extends LinkMouseListenerBase { protected void showTooltip(final JTree tree, final MouseEvent e, final HaveTooltip launcher) { final String text = tree.getToolTipText(e); final String newText = launcher == null ? null : launcher.getTooltip(); - if (! Comparing.equal(text, newText)) { + if (!Comparing.equal(text, newText)) { tree.setToolTipText(newText); } } - @Nullable @Override - protected Object getTagAt(final MouseEvent e) { - JTree tree = (JTree) e.getSource(); + @Nullable + @Override + protected Object getTagAt(@NotNull final MouseEvent e) { + JTree tree = (JTree)e.getSource(); Object tag = null; HaveTooltip haveTooltip = null; final TreePath path = tree.getPathForLocation(e.getX(), e.getY()); if (path != null) { final Rectangle rectangle = tree.getPathBounds(path); + assert rectangle != null; int dx = e.getX() - rectangle.x; - final TreeNode treeNode = (TreeNode) path.getLastPathComponent(); + final TreeNode treeNode = (TreeNode)path.getLastPathComponent(); if (myLastHitNode != treeNode) { myLastHitNode = treeNode; myRenderer.getTreeCellRendererComponent(tree, treeNode, false, false, treeNode.isLeaf(), -1, false); } - int i = myRenderer.findFragmentAt(dx); - if (i >= 0) { - tag = myRenderer.getFragmentTag(i); - if (treeNode instanceof HaveTooltip) { - haveTooltip = (HaveTooltip) treeNode; - } + tag = myRenderer.getFragmentTagAt(dx); + if (tag != null && treeNode instanceof HaveTooltip) { + haveTooltip = (HaveTooltip)treeNode; } } showTooltip(tree, e, haveTooltip); diff --git a/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/TreeNodePartListener.java b/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/TreeNodePartListener.java index 0ba0e80b7982..a3a1553bc19d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/TreeNodePartListener.java +++ b/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/TreeNodePartListener.java @@ -15,6 +15,8 @@ */ package com.intellij.openapi.vcs.changes.issueLinks; +import org.jetbrains.annotations.NotNull; + import javax.swing.*; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreePath; @@ -31,7 +33,7 @@ public class TreeNodePartListener extends LinkMouseListenerBase { myRenderer = renderer; } - protected Object getTagAt(final MouseEvent e) { + protected Object getTagAt(@NotNull final MouseEvent e) { final JTree tree = (JTree) e.getSource(); final TreePath path = tree.getPathForLocation(e.getX(), e.getY()); if (path != null) { diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/EncodingPanel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/EncodingPanel.java index e923b6287354..62c0355255a4 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/EncodingPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/EncodingPanel.java @@ -89,7 +89,7 @@ public class EncodingPanel extends EditorBasedWidget implements StatusBarWidget. new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { update(); showPopup(e); return true; diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/IdeStatusBarImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/IdeStatusBarImpl.java index 894f50d0f4cd..f9fed06ed05c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/IdeStatusBarImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/IdeStatusBarImpl.java @@ -699,7 +699,7 @@ public class IdeStatusBarImpl extends JComponent implements StatusBarEx { setToolTipText(presentation.getTooltipText()); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { final ListPopup popup = myPresentation.getPopupStep(); if (popup == null) return false; final Dimension dimension = popup.getContent().getPreferredSize(); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/LineSeparatorPanel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/LineSeparatorPanel.java index c81ef0347963..03bea0d33eec 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/LineSeparatorPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/LineSeparatorPanel.java @@ -76,7 +76,7 @@ public class LineSeparatorPanel extends EditorBasedWidget implements StatusBarWi new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { update(); showPopup(e); return true; diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java index d2cb6e92eab8..be3912f59ec3 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java @@ -35,6 +35,7 @@ import com.intellij.ui.ClickListener; import com.intellij.ui.JBColor; import com.intellij.util.Alarm; import com.intellij.util.text.DateFormatUtil; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -99,7 +100,7 @@ class StatusPanel extends JPanel { myTextPanel.setBorder(new EmptyBorder(0, 5, 0, 0)); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (myCurrentNotification != null || myAfterClick) { EventLog.toggleLog(getActiveProject(), myCurrentNotification); myAfterClick = true; diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/RecentProjectPanel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/RecentProjectPanel.java index 9e6a5423784c..9140fc200a77 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/RecentProjectPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/RecentProjectPanel.java @@ -67,7 +67,7 @@ public class RecentProjectPanel extends JPanel { new ClickListener(){ @Override - public boolean onClick(MouseEvent event, int clickCount) { + public boolean onClick(@NotNull MouseEvent event, int clickCount) { int selectedIndex = myList.getSelectedIndex(); if (selectedIndex >= 0) { if (myList.getCellBounds(selectedIndex, selectedIndex).contains(event.getPoint())) { diff --git a/platform/platform-impl/src/com/intellij/ui/HoverHyperlinkLabel.java b/platform/platform-impl/src/com/intellij/ui/HoverHyperlinkLabel.java index fe7984fb2f58..59cf3754035b 100644 --- a/platform/platform-impl/src/com/intellij/ui/HoverHyperlinkLabel.java +++ b/platform/platform-impl/src/com/intellij/ui/HoverHyperlinkLabel.java @@ -19,6 +19,7 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.ui.PlatformColors; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import javax.swing.event.HyperlinkEvent; @@ -62,7 +63,7 @@ public class HoverHyperlinkLabel extends JLabel { new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { HyperlinkEvent event = new HyperlinkEvent(HoverHyperlinkLabel.this, HyperlinkEvent.EventType.ACTIVATED, null); for (HyperlinkListener listener : myListeners) { listener.hyperlinkUpdate(event); diff --git a/platform/testRunner/src/com/intellij/execution/testframework/TrackRunningTestUtil.java b/platform/testRunner/src/com/intellij/execution/testframework/TrackRunningTestUtil.java index d94de74ebc24..eac165668320 100644 --- a/platform/testRunner/src/com/intellij/execution/testframework/TrackRunningTestUtil.java +++ b/platform/testRunner/src/com/intellij/execution/testframework/TrackRunningTestUtil.java @@ -20,6 +20,7 @@ import com.intellij.openapi.Disposable; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.Pass; import com.intellij.ui.ClickListener; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -40,7 +41,7 @@ public class TrackRunningTestUtil { public static void installStopListeners(final JTree tree, final Disposable parentDisposable, final Pass setSelection) { final ClickListener userSelectionListener = new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { setSelection.pass(setUserSelection(tree.getPathForLocation(e.getX(), e.getY()))); return true; } diff --git a/platform/util/src/com/intellij/openapi/ui/Splitter.java b/platform/util/src/com/intellij/openapi/ui/Splitter.java index cb0dfb883e7c..44d2317088c6 100644 --- a/platform/util/src/com/intellij/openapi/ui/Splitter.java +++ b/platform/util/src/com/intellij/openapi/ui/Splitter.java @@ -22,6 +22,7 @@ import com.intellij.openapi.wm.FocusWatcher; import com.intellij.ui.ClickListener; import com.intellij.ui.UIBundle; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -523,7 +524,7 @@ public class Splitter extends JPanel { .message("splitter.right.tooltip.text")); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { setProportion(1.0f - getMinProportion(mySecondComponent)); return true; } @@ -541,7 +542,7 @@ public class Splitter extends JPanel { splitCenterlabel.setToolTipText(UIBundle.message("splitter.center.tooltip.text")); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { setProportion(.5f); return true; } @@ -559,7 +560,7 @@ public class Splitter extends JPanel { .message("splitter.left.tooltip.text")); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { setProportion(getMinProportion(myFirstComponent)); return true; } diff --git a/platform/util/src/com/intellij/ui/ClickListener.java b/platform/util/src/com/intellij/ui/ClickListener.java index 82e3d8ab7fce..03dd68723569 100644 --- a/platform/util/src/com/intellij/ui/ClickListener.java +++ b/platform/util/src/com/intellij/ui/ClickListener.java @@ -19,6 +19,8 @@ */ package com.intellij.ui; +import org.jetbrains.annotations.NotNull; + import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter; @@ -30,9 +32,9 @@ public abstract class ClickListener { private static final long TIME_EPS = 500; // TODO: read system mouse sensitivity settings? private MouseAdapter myListener; - public abstract boolean onClick(MouseEvent event, int clickCount); + public abstract boolean onClick(@NotNull MouseEvent event, int clickCount); - public void installOn(final Component c) { + public void installOn(@NotNull Component c) { myListener = new MouseAdapter() { private Point pressPoint; private Point lastClickPoint; @@ -64,11 +66,9 @@ public abstract class ClickListener { lastClickPoint = clickedAt; pressPoint = null; - if (e.isConsumed()) return; - - if (clickedAt == null) return; - if (e.isPopupTrigger()) return; - if (!e.getComponent().contains(e.getPoint())) return; + if (e.isConsumed() || clickedAt == null || e.isPopupTrigger() || !e.getComponent().contains(e.getPoint())) { + return; + } if (isWithinEps(releasedAt, clickedAt) && onClick(e, clickCount)) { e.consume(); diff --git a/platform/vcs-api/src/com/intellij/openapi/vcs/ui/TextFieldAction.java b/platform/vcs-api/src/com/intellij/openapi/vcs/ui/TextFieldAction.java index b5705667e057..b189f699167d 100644 --- a/platform/vcs-api/src/com/intellij/openapi/vcs/ui/TextFieldAction.java +++ b/platform/vcs-api/src/com/intellij/openapi/vcs/ui/TextFieldAction.java @@ -19,6 +19,7 @@ import com.intellij.openapi.actionSystem.ex.CustomComponentAction; import com.intellij.openapi.util.SystemInfo; import com.intellij.ui.ClickListener; import com.intellij.ui.IdeBorderFactory; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -53,6 +54,7 @@ public abstract class TextFieldAction extends AnAction implements CustomComponen @Override public abstract void actionPerformed(@Nullable AnActionEvent e); + @Override public JComponent createCustomComponent(Presentation presentation) { // honestly borrowed from SearchTextField @@ -80,7 +82,7 @@ public abstract class TextFieldAction extends AnAction implements CustomComponen new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { actionPerformed(null); return true; } diff --git a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java index cae0b4fd3a63..4f7f39fe0994 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java +++ b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java @@ -43,6 +43,7 @@ import com.intellij.ui.table.JBTable; import com.intellij.util.diff.FilesTooBigForDiffException; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import javax.swing.border.EmptyBorder; @@ -141,7 +142,7 @@ public class DirDiffPanel implements Disposable, DataProvider { }.registerCustomShortcutSet(CustomShortcutSet.fromString("SPACE"), myTable); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (e.getButton() == MouseEvent.BUTTON3) return false; if (myTable.getRowCount() > 0) { final int row = myTable.rowAtPoint(e.getPoint()); diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/issueLinks/AbstractBaseTagMouseListener.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/issueLinks/AbstractBaseTagMouseListener.java index 9df410dfb6c4..675a1f40482b 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/issueLinks/AbstractBaseTagMouseListener.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/issueLinks/AbstractBaseTagMouseListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2010 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,16 +16,13 @@ package com.intellij.openapi.vcs.changes.issueLinks; import com.intellij.ide.BrowserUtil; -import com.intellij.ui.ClickListener; -import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.NotNull; -import java.awt.*; import java.awt.event.MouseEvent; -import java.awt.event.MouseMotionListener; -public abstract class AbstractBaseTagMouseListener extends ClickListener implements MouseMotionListener { +public abstract class AbstractBaseTagMouseListener extends LinkMouseListenerBase { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (e.getButton() == 1 && !e.isPopupTrigger()) { Object tag = getTagAt(e); if (tag instanceof Runnable) { @@ -33,34 +30,11 @@ public abstract class AbstractBaseTagMouseListener extends ClickListener impleme return true; } - if ((tag != null) && (! Object.class.getName().equals(tag.getClass().getName()))) { + if (tag != null && !Object.class.getName().equals(tag.getClass().getName())) { BrowserUtil.launchBrowser(tag.toString()); return true; } } return false; } - - @Nullable - public abstract Object getTagAt(final MouseEvent e); - - public void mouseDragged(MouseEvent e) { - } - - public void mouseMoved(MouseEvent e) { - Component table = (Component) e.getSource(); - Object tag = getTagAt(e); - if (tag != null) { - table.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); - } - else { - table.setCursor(Cursor.getDefaultCursor()); - } - } - - @Override - public void installOn(Component c) { - super.installOn(c); - c.addMouseMotionListener(this); - } } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/issueLinks/TableLinkMouseListener.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/issueLinks/TableLinkMouseListener.java index 4c88eb76d80c..7646befd1f81 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/issueLinks/TableLinkMouseListener.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/issueLinks/TableLinkMouseListener.java @@ -18,6 +18,7 @@ package com.intellij.openapi.vcs.changes.issueLinks; import com.intellij.ui.ColoredTableCellRenderer; import com.intellij.ui.dualView.DualView; import com.intellij.ui.dualView.TreeTableView; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -29,10 +30,11 @@ import java.awt.event.MouseEvent; * @author yole */ public class TableLinkMouseListener extends AbstractBaseTagMouseListener { + @Override @Nullable - public Object getTagAt(final MouseEvent e) { + public Object getTagAt(@NotNull final MouseEvent e) { // TODO[yole]: don't update renderer on every event, like it's done in TreeLinkMouseListener - Object tag = null; + Object tag; JTable table = (JTable)e.getSource(); int row = table.rowAtPoint(e.getPoint()); int column = table.columnAtPoint(e.getPoint()); @@ -57,13 +59,9 @@ public class TableLinkMouseListener extends AbstractBaseTagMouseListener { return null; } - private Object forColoredRenderer(MouseEvent e, JTable table, int row, int column, ColoredTableCellRenderer renderer) { + private static Object forColoredRenderer(MouseEvent e, JTable table, int row, int column, ColoredTableCellRenderer renderer) { renderer.getTableCellRendererComponent(table, table.getValueAt(row, column), false, false, row, column); final Rectangle rc = table.getCellRect(row, column, false); - int index = renderer.findFragmentAt(e.getPoint().x - rc.x); - if (index >= 0) { - return renderer.getFragmentTag(index); - } - return null; + return renderer.getFragmentTagAt(e.getX() - rc.x); } } \ No newline at end of file diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesTreeList.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesTreeList.java index 5b0bbd4a2cc8..af9f982c677e 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesTreeList.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesTreeList.java @@ -189,7 +189,7 @@ public abstract class ChangesTreeList extends JPanel implements TypeSafeDataP new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { final int idx = myList.locationToIndex(e.getPoint()); if (idx >= 0) { final Rectangle baseRect = myList.getCellBounds(idx, idx); diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/VcsStructureChooser.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/VcsStructureChooser.java index d51104f7c23c..0cbb65b36162 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/VcsStructureChooser.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/VcsStructureChooser.java @@ -202,7 +202,7 @@ public class VcsStructureChooser extends DialogWrapper { new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { int row = myTree.getRowForLocation(e.getX(), e.getY()); if (row < 0) return false; final Object o = myTree.getPathForRow(row).getLastPathComponent(); diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/FilterPopupComponent.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/FilterPopupComponent.java index f8b3148199ba..5faec5347edd 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/FilterPopupComponent.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/FilterPopupComponent.java @@ -150,7 +150,7 @@ abstract class FilterPopupComponent extends JPanel { private void showPopupMenuOnClick() { new ClickListener() { @Override - public boolean onClick(MouseEvent event, int clickCount) { + public boolean onClick(@NotNull MouseEvent event, int clickCount) { showPopupMenu(); return true; } diff --git a/platform/xdebugger-api/src/com/intellij/xdebugger/frame/XDebuggerTreeNodeHyperlink.java b/platform/xdebugger-api/src/com/intellij/xdebugger/frame/XDebuggerTreeNodeHyperlink.java index 621e59b1c2c4..0cda5554d7d6 100644 --- a/platform/xdebugger-api/src/com/intellij/xdebugger/frame/XDebuggerTreeNodeHyperlink.java +++ b/platform/xdebugger-api/src/com/intellij/xdebugger/frame/XDebuggerTreeNodeHyperlink.java @@ -24,6 +24,8 @@ import java.awt.event.MouseEvent; * Describes a hyperlink inside a debugger node */ public abstract class XDebuggerTreeNodeHyperlink { + public static final SimpleTextAttributes TEXT_ATTRIBUTES = SimpleTextAttributes.GRAY_ATTRIBUTES; + private final String linkText; protected XDebuggerTreeNodeHyperlink(@NotNull String linkText) { @@ -37,7 +39,7 @@ public abstract class XDebuggerTreeNodeHyperlink { @NotNull public SimpleTextAttributes getTextAttributes() { - return SimpleTextAttributes.GRAY_ATTRIBUTES; + return TEXT_ATTRIBUTES; } public abstract void onClick(MouseEvent event); diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/XValueHint.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/XValueHint.java index d48b3b17b328..09456d56580f 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/XValueHint.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/XValueHint.java @@ -22,12 +22,16 @@ import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.TextRange; +import com.intellij.openapi.vcs.changes.issueLinks.LinkMouseListenerBase; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.ui.SimpleColoredComponent; import com.intellij.ui.SimpleColoredText; +import com.intellij.util.Consumer; import com.intellij.xdebugger.XDebugSession; import com.intellij.xdebugger.XDebuggerUtil; import com.intellij.xdebugger.XSourcePosition; import com.intellij.xdebugger.evaluation.XDebuggerEvaluator; +import com.intellij.xdebugger.frame.XDebuggerTreeNodeHyperlink; import com.intellij.xdebugger.frame.XFullValueEvaluator; import com.intellij.xdebugger.frame.XValue; import com.intellij.xdebugger.frame.XValuePlace; @@ -37,6 +41,7 @@ import com.intellij.xdebugger.impl.actions.handlers.XDebuggerEvaluateActionHandl import com.intellij.xdebugger.impl.evaluate.quick.common.AbstractValueHint; import com.intellij.xdebugger.impl.evaluate.quick.common.ValueHintType; import com.intellij.xdebugger.impl.frame.XValueMarkers; +import com.intellij.xdebugger.impl.ui.DebuggerUIUtil; import com.intellij.xdebugger.impl.ui.XDebuggerUIConstants; import com.intellij.xdebugger.impl.ui.tree.nodes.XEvaluationCallbackBase; import com.intellij.xdebugger.impl.ui.tree.nodes.XValueNodeImpl; @@ -46,6 +51,7 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.awt.*; +import java.awt.event.MouseEvent; /** * @author nik @@ -81,6 +87,8 @@ public class XValueHint extends AbstractValueHint { @Override public void evaluated(@NotNull final XValue result) { result.computePresentation(new XValueNodePresentationConfigurator.ConfigurableXValueNodeImpl() { + private XFullValueEvaluator myFullValueEvaluator; + @Override public void applyPresentation(@Nullable Icon icon, @NotNull XValuePresentation valuePresenter, @@ -92,8 +100,20 @@ public class XValueHint extends AbstractValueHint { SimpleColoredText text = new SimpleColoredText(); text.append(myExpression, XDebuggerUIConstants.VALUE_NAME_ATTRIBUTES); XValueNodeImpl.buildText(valuePresenter, text); + if (!hasChildren) { - showHint(HintUtil.createInformationLabel(text)); + SimpleColoredComponent component = HintUtil.createInformationComponent(); + text.appendToComponent(component); + if (myFullValueEvaluator != null) { + component.append(myFullValueEvaluator.getLinkText(), XDebuggerTreeNodeHyperlink.TEXT_ATTRIBUTES, new Consumer() { + @Override + public void consume(MouseEvent event) { + DebuggerUIUtil.showValuePopup(myFullValueEvaluator, event, getProject()); + } + }); + LinkMouseListenerBase.installSingleTagOn(component); + } + showHint(component); } else if (getType() == ValueHintType.MOUSE_CLICK_HINT) { showTree(result, myExpression); @@ -111,7 +131,7 @@ public class XValueHint extends AbstractValueHint { @Override public void setFullValueEvaluator(@NotNull XFullValueEvaluator fullValueEvaluator) { - //todo[nik] implement? + myFullValueEvaluator = fullValueEvaluator; } @Override diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/common/AbstractValueHint.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/common/AbstractValueHint.java index cf6e0348663f..d42b35140d3e 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/common/AbstractValueHint.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/common/AbstractValueHint.java @@ -206,7 +206,7 @@ public abstract class AbstractValueHint { final JComponent component = HintUtil.createInformationLabel(text, IconUtil.getAddIcon()); addClickListenerToHierarchy(component, new ClickListener() { @Override - public boolean onClick(MouseEvent event, int clickCount) { + public boolean onClick(@NotNull MouseEvent event, int clickCount) { if (myCurrentHint != null) { myCurrentHint.hide(); } diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/XDebuggerTree.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/XDebuggerTree.java index 1e5f4159dd0e..2cf8c71b9594 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/XDebuggerTree.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/XDebuggerTree.java @@ -141,7 +141,7 @@ public class XDebuggerTree extends DnDAwareTree implements DataProvider, Disposa setCellRenderer(new XDebuggerTreeRenderer()); new TreeLinkMouseListener(new XDebuggerTreeRenderer()) { @Override - protected void handleTagClick(Object tag, MouseEvent event) { + protected void handleTagClick(@Nullable Object tag, @NotNull MouseEvent event) { if (tag instanceof XDebuggerTreeNodeHyperlink) { ((XDebuggerTreeNodeHyperlink)tag).onClick(event); } diff --git a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsoperations/cvsTagOrBranch/ui/TagsPanel.java b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsoperations/cvsTagOrBranch/ui/TagsPanel.java index c01e1eb32012..0b91db661b26 100644 --- a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsoperations/cvsTagOrBranch/ui/TagsPanel.java +++ b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsoperations/cvsTagOrBranch/ui/TagsPanel.java @@ -20,6 +20,7 @@ import com.intellij.openapi.ui.popup.PopupChooserBuilder; import com.intellij.ui.ClickListener; import com.intellij.ui.components.JBList; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import javax.swing.table.TableCellRenderer; @@ -56,7 +57,7 @@ public class TagsPanel extends JPanel implements TableCellRenderer{ new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { showTags(); return true; } diff --git a/plugins/git4idea/src/git4idea/history/wholeTree/BasePopupAction.java b/plugins/git4idea/src/git4idea/history/wholeTree/BasePopupAction.java index f4f505413c6a..95a981c1d4a5 100644 --- a/plugins/git4idea/src/git4idea/history/wholeTree/BasePopupAction.java +++ b/plugins/git4idea/src/git4idea/history/wholeTree/BasePopupAction.java @@ -28,6 +28,7 @@ import com.intellij.ui.ClickListener; import com.intellij.ui.awt.RelativePoint; import com.intellij.util.Consumer; import com.intellij.util.ui.UIUtil; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.*; @@ -64,7 +65,7 @@ public abstract class BasePopupAction extends DumbAwareAction implements CustomC new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { doAction(e); return true; } diff --git a/plugins/git4idea/src/git4idea/history/wholeTree/GitLogUI.java b/plugins/git4idea/src/git4idea/history/wholeTree/GitLogUI.java index 17414e76893e..209d2ad3f410 100644 --- a/plugins/git4idea/src/git4idea/history/wholeTree/GitLogUI.java +++ b/plugins/git4idea/src/git4idea/history/wholeTree/GitLogUI.java @@ -685,11 +685,7 @@ public class GitLogUI implements Disposable { protected Object tryGetTag(MouseEvent e, JTable table, int row, int column) { myDescriptionRenderer.getTableCellRendererComponent(table, table.getValueAt(row, column), false, false, row, column); final Rectangle rc = table.getCellRect(row, column, false); - int index = myDescriptionRenderer.myInner.findFragmentAt(e.getPoint().x - rc.x - myDescriptionRenderer.getCurrentWidth()); - if (index >= 0) { - return myDescriptionRenderer.myInner.getFragmentTag(index); - } - return null; + return myDescriptionRenderer.myInner.getFragmentTag(e.getPoint().x - rc.x - myDescriptionRenderer.getCurrentWidth()); } }; final ActionToolbar actionToolbar = createToolbar(); diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/ui/RichTextActionProcessor.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/ui/RichTextActionProcessor.java index 0742e4d2c501..46b6ff4281fb 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/ui/RichTextActionProcessor.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/ui/RichTextActionProcessor.java @@ -58,7 +58,7 @@ public class RichTextActionProcessor implements RichTextControlBuilder.RichTextP new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { final AsyncResult callback = DataManager.getInstance().getDataContextFromFocus(); final DataContext context = callback.getResult(); if (context == null) { diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/ToBeMergedDialog.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/ToBeMergedDialog.java index 19a8832b0b45..f77f33d41b02 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/ToBeMergedDialog.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/ToBeMergedDialog.java @@ -235,13 +235,15 @@ public class ToBeMergedDialog extends DialogWrapper implements MergeDialogI { private void initUI() { final ListSelectionListener selectionListener = new ListSelectionListener() { + @Override public void valueChanged(ListSelectionEvent e) { final List objects = myRevisionsList.getSelectedObjects(); myRepositoryChangesBrowser.setChangesToDisplay(Collections.emptyList()); myAlreadyMerged.clear(); - if (objects != null && (!objects.isEmpty())) { + if ((!objects.isEmpty())) { final List lists = ObjectsConvertor.convert(objects, new Convertor() { + @Override public CommittedChangeList convert(Object o) { if (o instanceof CommittedChangeList) { final CommittedChangeList cl = (CommittedChangeList)o; @@ -296,33 +298,29 @@ public class ToBeMergedDialog extends DialogWrapper implements MergeDialogI { myRevisionsList.setShowGrid(false); final AbstractBaseTagMouseListener mouseListener = new AbstractBaseTagMouseListener() { @Override - public Object getTagAt(MouseEvent e) { - Object tag = null; + public Object getTagAt(@NotNull MouseEvent e) { JTable table = (JTable)e.getSource(); int row = table.rowAtPoint(e.getPoint()); int column = table.columnAtPoint(e.getPoint()); if (row == -1 || column == -1) return null; listCellRenderer.customizeCellRenderer(table, table.getValueAt(row, column), table.isRowSelected(row), false, row, column); - final ColoredTreeCellRenderer renderer = listCellRenderer.myRenderer; - final Rectangle rc = table.getCellRect(row, column, false); - int index = renderer.findFragmentAt(e.getPoint().x - rc.x); - if (index >= 0) { - tag = renderer.getFragmentTag(index); - } - return tag; + return listCellRenderer.myRenderer.getFragmentTagAt(e.getPoint().x - table.getCellRect(row, column, false).x); } }; mouseListener.installOn(myRevisionsList); final PagedListWithActions.InnerComponentManager listsManager = new PagedListWithActions.InnerComponentManager() { + @Override public Component getComponent() { return myRevisionsList; } + @Override public void setData(List committedChangeLists) { flatModel.setItems(committedChangeLists); flatModel.fireTableDataChanged(); } + @Override public void refresh() { myRevisionsList.revalidate(); myRevisionsList.repaint(); @@ -353,11 +351,14 @@ public class ToBeMergedDialog extends DialogWrapper implements MergeDialogI { private void setChangesDecorator() { myRepositoryChangesBrowser.setDecorator(new ChangeNodeDecorator() { + @Override public void decorate(Change change, SimpleColoredComponent component, boolean isShowFlatten) { } + @Override public List> stressPartsOfFileName(Change change, String parentPath) { return null; } + @Override public void preDecorate(Change change, ChangesBrowserNodeRenderer renderer, boolean showFlatten) { if (myAlreadyMerged.contains(change)) { renderer.append(" [already merged] ", SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES); @@ -370,7 +371,7 @@ public class ToBeMergedDialog extends DialogWrapper implements MergeDialogI { final int checkboxWidth = new JCheckBox().getPreferredSize().width; new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { final int idx = myRevisionsList.rowAtPoint(e.getPoint()); if (idx >= 0) { final Rectangle baseRect = myRevisionsList.getCellRect(idx, 0, false); @@ -391,7 +392,9 @@ public class ToBeMergedDialog extends DialogWrapper implements MergeDialogI { public void keyReleased(KeyEvent e) { if (KeyEvent.VK_SPACE == e.getKeyCode()) { final List selected = myRevisionsList.getSelectedObjects(); - if (selected == null || selected.isEmpty()) return; + if (selected.isEmpty()) { + return; + } for (Object o : selected) { if (o instanceof SvnChangeList) { @@ -512,6 +515,7 @@ public class ToBeMergedDialog extends DialogWrapper implements MergeDialogI { } } + @Override public final Component getTableCellRendererComponent( JTable table, Object value, @@ -525,8 +529,6 @@ public class ToBeMergedDialog extends DialogWrapper implements MergeDialogI { } } - private final static int ourPageSize = 30; - private static final ColumnInfo FAKE_COLUMN = new ColumnInfo("fake column"){ @Override public CommittedChangeList valueOf(CommittedChangeList committedChangeList) { diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnHistoryProvider.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnHistoryProvider.java index b5dfd8ccdbd4..931fcc6a5977 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnHistoryProvider.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnHistoryProvider.java @@ -66,6 +66,7 @@ public class SvnHistoryProvider myVcs = vcs; } + @Override public boolean supportsHistoryForDirectories() { return true; } @@ -80,6 +81,7 @@ public class SvnHistoryProvider return true; } + @Override public VcsDependentHistoryComponents getUICustomization(final VcsHistorySession session, JComponent forShortcutRegistration) { final ColumnInfo[] columns; final Consumer listener; @@ -95,6 +97,7 @@ public class SvnHistoryProvider field.setBackground(UIUtil.getComboBoxDisabledBackground()); field.setWrapStyleWord(true); listener = new Consumer() { + @Override public void consume(VcsFileRevision vcsFileRevision) { field.setText(mergeSourceColumn.getText(vcsFileRevision)); } @@ -156,6 +159,7 @@ public class SvnHistoryProvider return new SvnHistorySession(myVcs, revisions, filePath, aBoolean, currentRevision, false, ! filePath.isNonLocal()); } + @Override @Nullable public VcsHistorySession createSessionFor(final FilePath filePath) throws VcsException { final VcsAppendableHistoryPartnerAdapter adapter = new VcsAppendableHistoryPartnerAdapter(); @@ -165,6 +169,7 @@ public class SvnHistoryProvider return adapter.getSession(); } + @Override public void reportAppendableHistory(FilePath path, final VcsAppendableHistorySessionPartner partner) throws VcsException { // we need + 1 rows to be reported to further detect that number of rows exceeded the limit reportAppendableHistory(path, partner, null, null, VcsConfiguration.getInstance(myVcs.getProject()).MAXIMUM_HISTORY_ROWS + 1, null, false); @@ -221,6 +226,7 @@ public class SvnHistoryProvider indicator.setText(SvnBundle.message("progress.text2.collecting.history", path.getName())); } final Consumer consumer = new Consumer() { + @Override public void consume(VcsFileRevision vcsFileRevision) { if (!Boolean.TRUE.equals(sessionReported.get())) { partner.reportCreatedEmptySession(historySession); @@ -454,14 +460,17 @@ public class SvnHistoryProvider } } + @Override public String getHelpId() { return null; } + @Override public AnAction[] getAdditionalActions(final Runnable refresher) { return new AnAction[]{ ShowAllAffectedGenericAction.getInstance(), new MergeSourceDetailsAction(), new SvnEditCommitMessageFromFileHistoryAction()}; } + @Override public boolean isDateOmittable() { return false; } @@ -500,6 +509,7 @@ public class SvnHistoryProvider myUrl = url; myRepositoryRoot = repoRootURL; myTracker = new SvnMergeSourceTracker(new ThrowableConsumer, SVNException>() { + @Override public void consume(final Pair svnLogEntryIntegerPair) throws SVNException { final SVNLogEntry logEntry = svnLogEntryIntegerPair.getFirst(); @@ -581,11 +591,12 @@ public class SvnHistoryProvider return false; } + @Override public void handleLogEntry(SVNLogEntry logEntry) throws SVNException { myTracker.consume(logEntry); } - private void addToListByLevel(final SvnFileRevision revision, final SvnFileRevision revisionToAdd, final int level) { + private static void addToListByLevel(final SvnFileRevision revision, final SvnFileRevision revisionToAdd, final int level) { if (level < 0) { return; } @@ -683,6 +694,7 @@ public class SvnHistoryProvider return myRenderer; } + @Override public RevisionMergeSourceInfo valueOf(final VcsFileRevision vcsFileRevision) { return vcsFileRevision != null ? new RevisionMergeSourceInfo(vcsFileRevision) : null; } @@ -714,7 +726,7 @@ public class SvnHistoryProvider } @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (e.getButton() == 1 && !e.isPopupTrigger()) { Object tag = getTagAt(e); if (tag == myTag) { @@ -741,6 +753,7 @@ public class SvnHistoryProvider return null; } + @Override public void mouseMoved(MouseEvent e) { JTable table = (JTable)e.getSource(); Object tag = getTagAt(e); @@ -765,6 +778,7 @@ public class SvnHistoryProvider return RevisionMergeSourceInfo.toString(value); } + @Override protected void customizeCellRenderer(final JTable table, final Object value, final boolean selected, @@ -813,6 +827,7 @@ public class SvnHistoryProvider private static class CopyFromColumnInfo extends ColumnInfo { private final Icon myIcon = PlatformIcons.COPY_ICON; private final ColoredTableCellRenderer myRenderer = new ColoredTableCellRenderer() { + @Override protected void customizeCellRenderer(final JTable table, final Object value, final boolean selected, @@ -833,6 +848,7 @@ public class SvnHistoryProvider super(SvnBundle.message("copy.column.title")); } + @Override public String valueOf(final VcsFileRevision o) { return o instanceof SvnFileRevision ? ((SvnFileRevision)o).getCopyFromPath() : ""; } diff --git a/plugins/ui-designer-core/src/com/intellij/designer/inspection/AbstractQuickFixManager.java b/plugins/ui-designer-core/src/com/intellij/designer/inspection/AbstractQuickFixManager.java index bf8e071ad8ce..7692d5418388 100644 --- a/plugins/ui-designer-core/src/com/intellij/designer/inspection/AbstractQuickFixManager.java +++ b/plugins/ui-designer-core/src/com/intellij/designer/inspection/AbstractQuickFixManager.java @@ -377,7 +377,7 @@ public abstract class AbstractQuickFixManager { new ClickListener() { @Override - public boolean onClick(MouseEvent event, int clickCount) { + public boolean onClick(@NotNull MouseEvent event, int clickCount) { showPopup(); return true; } diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/quickFixes/LightBulbComponentImpl.java b/plugins/ui-designer/src/com/intellij/uiDesigner/quickFixes/LightBulbComponentImpl.java index 25d2b1f5c5a3..bc94b00f2d82 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/quickFixes/LightBulbComponentImpl.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/quickFixes/LightBulbComponentImpl.java @@ -50,7 +50,7 @@ final class LightBulbComponentImpl extends JComponent{ new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { myManager.showIntentionPopup(); return true; } diff --git a/python/ide/src/com/jetbrains/python/configuration/EditSdkDialog.java b/python/ide/src/com/jetbrains/python/configuration/EditSdkDialog.java index 988b5e92593e..2ad22fd89b44 100644 --- a/python/ide/src/com/jetbrains/python/configuration/EditSdkDialog.java +++ b/python/ide/src/com/jetbrains/python/configuration/EditSdkDialog.java @@ -27,6 +27,7 @@ import com.intellij.ui.components.JBLabel; import com.intellij.util.NullableFunction; import com.jetbrains.python.sdk.PythonSdkAdditionalData; import com.jetbrains.python.sdk.PythonSdkType; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import javax.swing.event.DocumentEvent; @@ -82,7 +83,7 @@ public class EditSdkDialog extends DialogWrapper { init(); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { myAssociateCheckbox.setSelected(false); myAssociateCheckbox.setEnabled(true); myAssociateCheckbox.setText("Associate this environment with current project"); diff --git a/python/ide/src/com/jetbrains/python/configuration/PyConfigureInterpretersLinkPanel.java b/python/ide/src/com/jetbrains/python/configuration/PyConfigureInterpretersLinkPanel.java index 41c2ebe53a40..08f0912eb7ca 100644 --- a/python/ide/src/com/jetbrains/python/configuration/PyConfigureInterpretersLinkPanel.java +++ b/python/ide/src/com/jetbrains/python/configuration/PyConfigureInterpretersLinkPanel.java @@ -19,6 +19,7 @@ import com.intellij.ide.DataManager; import com.intellij.openapi.options.newEditor.OptionsEditor; import com.intellij.ui.ClickListener; import com.intellij.ui.components.JBLabel; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.*; @@ -36,7 +37,7 @@ public class PyConfigureInterpretersLinkPanel extends JPanel { myConfigureLabel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); new ClickListener() { @Override - public boolean onClick(MouseEvent e, int clickCount) { + public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (clickCount == 1) { final OptionsEditor optionsEditor = OptionsEditor.KEY.getData(DataManager.getInstance().getDataContext(parentPanel)); if (optionsEditor != null) {