1
13 package gate.gui;
14
15
16 import java.awt.Color;
17 import java.awt.Component;
18 import java.awt.event.MouseAdapter;
19 import java.awt.event.MouseEvent;
20
21 import javax.swing.JTabbedPane;
22 import javax.swing.event.ChangeEvent;
23 import javax.swing.event.ChangeListener;
24
25
29 public class TabHighlighter {
30 public TabHighlighter(JTabbedPane pane, Component comp,
31 Color highlightColour){
32 this.tPane = pane;
33 this.tab = tPane.indexOfComponent(comp);
34 this.highlightColour = highlightColour;
35 tPane.getModel().addChangeListener(new ChangeListener() {
36 public void stateChanged(ChangeEvent e) {
37 if(tPane.getSelectedIndex() == tab) removeHighlight();
38 }
39 });
40
41 tPane.addMouseListener(new MouseAdapter() {
42 public void mouseClicked(MouseEvent e) {
43 if(tPane.getSelectedIndex() == tab) removeHighlight();
44 }
45 });
46
47 }
49
52 public void highlight(){
53 if(tPane.getSelectedIndex() != tab){
54 if(tPane.getBackgroundAt(tab).equals(highlightColour)) return;
55
56 oldColour = tPane.getBackgroundAt(tab);
57 tPane.setBackgroundAt(tab, highlightColour);
58 }
59 }
61
62
65 public void removeHighlight(){
66 tPane.setBackgroundAt(tab, oldColour);
67 }
69 JTabbedPane tPane;
70 int tab;
71 Color highlightColour;
72 Color oldColour;
73 }