XJTabbedPane.java
01 /*  XJTabbedPane.java
02  *
03  *  Copyright (c) 1995-2012, The University of Sheffield. See the file
04  *  COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
05  *
06  *  This file is part of GATE (see http://gate.ac.uk/), and is free
07  *  software, licenced under the GNU Library General Public License,
08  *  Version 2, June 1991 (in the distribution as file licence.html,
09  *  and also available at http://gate.ac.uk/gate/licence.html).
10  *
11  *  Valentin Tablan 04/04/2001
12  *
13  *  $Id: XJTabbedPane.java 17612 2014-03-10 08:51:17Z markagreenwood $
14  *
15  */
16 
17 package gate.swing;
18 
19 import java.awt.Point;
20 import java.awt.Component;
21 
22 import javax.swing.JTabbedPane;
23 import javax.swing.Icon;
24 
25 /**
26  * An extended version of {@link javax.swing.JTabbedPane}.
27  */
28 @SuppressWarnings("serial")
29 public class XJTabbedPane extends JTabbedPane {
30 
31   public XJTabbedPane(int tabPlacement){
32     super(tabPlacement);
33   }
34 
35   /**
36    * Gets the tab index for a given location
37    */
38   public int getIndexAt(Point p){
39     for(int i = 0; i < getTabCount(); i++){
40       if(getBoundsAt(i).contains(p)) return i;
41     }
42     return -1;
43   }// int getIndexAt(Point p)
44 
45   @Override
46   public void setTitleAt(int index, String title) {
47     if (title.length() 15) { // shorten the tab title with ellipsis
48       setToolTipText("<html>" + title + "<br>" + getToolTipText() "</html>");
49       title = title.substring(015"\u2026";
50       super.setTitleAt(index, title);
51     else {
52       super.setTitleAt(index, title);
53     }
54   }
55 
56   @Override
57   public void insertTab(String title, Icon icon, Component component, String tip, int index) {
58     if (title.length() 15) { // shorten the tab title with ellispsis
59       tip = "<html>" + title + "<br>" + tip + "</html>";
60       title = title.substring(015"\u2026";
61       super.insertTab(title, icon, component, tip, index);
62     else {
63       super.insertTab(title, icon, component, tip, index);
64     }
65   }
66 
67 }// class XJTabbedPane extends JTabbedPane