mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
annotations, listener leak
This commit is contained in:
@@ -436,4 +436,29 @@
|
||||
<item name='javax.swing.JTable void sorterChanged(javax.swing.event.RowSorterEvent) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='javax.swing.JTabbedPane JTabbedPane(int) 0'>
|
||||
<annotation name='org.intellij.lang.annotations.MagicConstant'>
|
||||
<val name="intValues" val="{javax.swing.SwingConstants.TOP, javax.swing.SwingConstants.BOTTOM, javax.swing.SwingConstants.LEFT, javax.swing.SwingConstants.RIGHT}"/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='javax.swing.JTabbedPane JTabbedPane(int, int) 0'>
|
||||
<annotation name='org.intellij.lang.annotations.MagicConstant'>
|
||||
<val name="intValues" val="{javax.swing.SwingConstants.TOP, javax.swing.SwingConstants.BOTTOM, javax.swing.SwingConstants.LEFT, javax.swing.SwingConstants.RIGHT}"/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='javax.swing.JTable int getTabPlacement()'>
|
||||
<annotation name='org.intellij.lang.annotations.MagicConstant'>
|
||||
<val name="intValues" val="{javax.swing.SwingConstants.TOP, javax.swing.SwingConstants.BOTTOM, javax.swing.SwingConstants.LEFT, javax.swing.SwingConstants.RIGHT}"/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='javax.swing.JTabbedPane JTabbedPane(int, int) 1'>
|
||||
<annotation name='org.intellij.lang.annotations.MagicConstant'>
|
||||
<val name="intValues" val="{javax.swing.JTabbedPane.WRAP_TAB_LAYOUT, javax.swing.JTabbedPane.SCROLL_TAB_LAYOUT}"/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='javax.swing.JTable int getTabLayoutPolicy()'>
|
||||
<annotation name='org.intellij.lang.annotations.MagicConstant'>
|
||||
<val name="intValues" val="{javax.swing.JTabbedPane.WRAP_TAB_LAYOUT, javax.swing.JTabbedPane.SCROLL_TAB_LAYOUT}"/>
|
||||
</annotation>
|
||||
</item>
|
||||
</root>
|
||||
|
||||
@@ -63,4 +63,10 @@ public class JdkConstants {
|
||||
|
||||
@MagicConstant(intValues = {TitledBorder.DEFAULT_POSITION, TitledBorder.ABOVE_TOP, TitledBorder.TOP, TitledBorder.BELOW_TOP, TitledBorder.ABOVE_BOTTOM, TitledBorder.BOTTOM, TitledBorder.BELOW_BOTTOM})
|
||||
public @interface TitledBorderTitlePosition{}
|
||||
|
||||
@MagicConstant(intValues = {SwingConstants.TOP, SwingConstants.BOTTOM, SwingConstants.LEFT, SwingConstants.RIGHT})
|
||||
public @interface TabPlacement{}
|
||||
|
||||
@MagicConstant(intValues = {JTabbedPane.WRAP_TAB_LAYOUT, JTabbedPane.SCROLL_TAB_LAYOUT})
|
||||
public @interface TabLayoutPolicy{}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,8 @@ package com.intellij.ui.components;
|
||||
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.intellij.lang.annotations.JdkConstants;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
@@ -13,17 +15,17 @@ import java.awt.event.HierarchyListener;
|
||||
* @author evgeny.zakrevsky
|
||||
*/
|
||||
public class JBTabbedPane extends JTabbedPane implements HierarchyListener {
|
||||
public static final String LABEL_FROM_TABBED_PANE = "JBTabbedPane.labelFromTabbedPane";
|
||||
@NonNls public static final String LABEL_FROM_TABBED_PANE = "JBTabbedPane.labelFromTabbedPane";
|
||||
private int previousSelectedIndex = -1;
|
||||
|
||||
public JBTabbedPane() {
|
||||
}
|
||||
|
||||
public JBTabbedPane(int tabPlacement) {
|
||||
public JBTabbedPane(@JdkConstants.TabPlacement int tabPlacement) {
|
||||
super(tabPlacement);
|
||||
}
|
||||
|
||||
public JBTabbedPane(int tabPlacement, int tabLayoutPolicy) {
|
||||
public JBTabbedPane(@JdkConstants.TabPlacement int tabPlacement, @JdkConstants.TabLayoutPolicy int tabLayoutPolicy) {
|
||||
super(tabPlacement, tabLayoutPolicy);
|
||||
}
|
||||
|
||||
@@ -88,4 +90,12 @@ public class JBTabbedPane extends JTabbedPane implements HierarchyListener {
|
||||
UIUtil.setNotOpaqueRecursively(e.getComponent());
|
||||
repaint();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeNotify() {
|
||||
super.removeNotify();
|
||||
for (int i=0; i<getTabCount(); i++) {
|
||||
getComponentAt(i).removeHierarchyListener(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.intellij.openapi.actionSystem.IdeActions;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.ui.components.JBTabbedPane;
|
||||
import org.intellij.lang.annotations.JdkConstants;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -47,11 +48,12 @@ public class TabbedPaneImpl extends JBTabbedPane implements TabbedPane {
|
||||
private AnAction myPreviousTabAction = null;
|
||||
public PrevNextActionsDescriptor myInstallKeyboardNavigation = null;
|
||||
|
||||
public TabbedPaneImpl(final int tabPlacement) {
|
||||
public TabbedPaneImpl(@JdkConstants.TabPlacement int tabPlacement) {
|
||||
super(tabPlacement);
|
||||
setFocusable(false);
|
||||
addMouseListener(
|
||||
new MouseAdapter() {
|
||||
@Override
|
||||
public void mousePressed(final MouseEvent e) {
|
||||
_requestDefaultFocus();
|
||||
}
|
||||
@@ -59,10 +61,12 @@ public class TabbedPaneImpl extends JBTabbedPane implements TabbedPane {
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setKeyboardNavigation(PrevNextActionsDescriptor installKeyboardNavigation) {
|
||||
myInstallKeyboardNavigation = installKeyboardNavigation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JComponent getComponent() {
|
||||
return this;
|
||||
}
|
||||
@@ -90,6 +94,7 @@ public class TabbedPaneImpl extends JBTabbedPane implements TabbedPane {
|
||||
setEnabledInModalContext(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(final AnActionEvent e) {
|
||||
int index = getSelectedIndex() + 1;
|
||||
if (index >= getTabCount()) {
|
||||
@@ -107,6 +112,7 @@ public class TabbedPaneImpl extends JBTabbedPane implements TabbedPane {
|
||||
setEnabledInModalContext(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(final AnActionEvent e) {
|
||||
int index = getSelectedIndex() - 1;
|
||||
if (index < 0) {
|
||||
@@ -132,6 +138,7 @@ public class TabbedPaneImpl extends JBTabbedPane implements TabbedPane {
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void setUI(final TabbedPaneUI ui){
|
||||
super.setUI(ui);
|
||||
if(ui instanceof BasicTabbedPaneUI){
|
||||
@@ -146,6 +153,7 @@ public class TabbedPaneImpl extends JBTabbedPane implements TabbedPane {
|
||||
* the method does nothing.
|
||||
* @param index index of tab to be scrolled.
|
||||
*/
|
||||
@Override
|
||||
public final void scrollTabToVisible(final int index){
|
||||
if(myScrollableTabSupport==null|| WRAP_TAB_LAYOUT==getTabLayoutPolicy()){ // tab scrolling isn't supported by UI
|
||||
return;
|
||||
@@ -188,6 +196,7 @@ public class TabbedPaneImpl extends JBTabbedPane implements TabbedPane {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSelectedIndex(final int index){
|
||||
if (index >= getTabCount()) return;
|
||||
|
||||
@@ -206,6 +215,7 @@ public class TabbedPaneImpl extends JBTabbedPane implements TabbedPane {
|
||||
|
||||
//http://www.jetbrains.net/jira/browse/IDEADEV-22331
|
||||
//to let repaint happen since AIOBE is thrown from Mac OSX's UI
|
||||
@Override
|
||||
protected void fireStateChanged() {
|
||||
// Guaranteed to return a non-null array
|
||||
Object[] listeners = listenerList.getListenerList();
|
||||
@@ -219,6 +229,7 @@ public class TabbedPaneImpl extends JBTabbedPane implements TabbedPane {
|
||||
if (each != null && each.getClass().getName().indexOf("apple.laf.CUIAquaTabbedPane") >= 0) {
|
||||
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
revalidate();
|
||||
repaint();
|
||||
@@ -234,6 +245,7 @@ public class TabbedPaneImpl extends JBTabbedPane implements TabbedPane {
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public final void removeTabAt (final int index) {
|
||||
super.removeTabAt (index);
|
||||
//This event should be fired necessarily because when swing fires an event
|
||||
@@ -323,6 +335,7 @@ public class TabbedPaneImpl extends JBTabbedPane implements TabbedPane {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDisposed() {
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user