diff --git a/java/jdkAnnotations/javax/swing/annotations.xml b/java/jdkAnnotations/javax/swing/annotations.xml
index bdeda007bbcc..c8de36b3b5f1 100644
--- a/java/jdkAnnotations/javax/swing/annotations.xml
+++ b/java/jdkAnnotations/javax/swing/annotations.xml
@@ -436,4 +436,29 @@
-
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
diff --git a/platform/annotations/src/org/intellij/lang/annotations/JdkConstants.java b/platform/annotations/src/org/intellij/lang/annotations/JdkConstants.java
index 18c3dad23f8b..c4625eb1c705 100644
--- a/platform/annotations/src/org/intellij/lang/annotations/JdkConstants.java
+++ b/platform/annotations/src/org/intellij/lang/annotations/JdkConstants.java
@@ -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{}
}
diff --git a/platform/platform-api/src/com/intellij/ui/components/JBTabbedPane.java b/platform/platform-api/src/com/intellij/ui/components/JBTabbedPane.java
index 6bf0688812a0..bfc0c18f5d16 100644
--- a/platform/platform-api/src/com/intellij/ui/components/JBTabbedPane.java
+++ b/platform/platform-api/src/com/intellij/ui/components/JBTabbedPane.java
@@ -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()) {
@@ -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;
}