1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
package com.c2kernel.gui.tabs;
import java.awt.Component;
import java.awt.Rectangle;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.Icon;
import javax.swing.JTabbedPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import com.c2kernel.gui.EntityDetails;
/**
* @author Developpement
*
* Allows a close icone in JTabbePane
*/
public class JTabbedPaneWithCloseIcons extends JTabbedPane implements MouseListener, ChangeListener
{
/**
*
*/
public JTabbedPaneWithCloseIcons()
{
super();
addMouseListener(this);
addChangeListener(this);
}
/**
* @see javax.swing.JTabbedPane#addTab(String, Icon, Component, String)
*/
public void addTab(String title, Icon arg2, Component component, String arg3)
{
super.addTab(title, new CloseTabIcon(arg2), component, arg3);
}
/**
* @see java.awt.event.MouseListener#mouseClicked(MouseEvent)
*/
public void mouseClicked(MouseEvent e)
{
int tabNumber = getUI().tabForCoordinate(this, e.getX(), e.getY());
Component cp = null;
if (tabNumber < 0)
return;
Rectangle rect = ((CloseTabIcon) getIconAt(tabNumber)).getBounds();
if (rect.contains(e.getX(), e.getY())||(e.getModifiers()& MouseEvent.CTRL_MASK) != 0)
{ //the tab is being closed
cp = this.getComponent(tabNumber);
//if (getComponentCount() != 1)
if (cp instanceof EntityDetails)
{
((EntityDetails) cp).closeTab();
remove(cp);
}
}
stateChanged(new ChangeEvent(this));
}
/**
* @see java.awt.event.MouseListener#mouseEntered(MouseEvent)
*/
public void mouseEntered(MouseEvent e)
{
}
/**
* @see java.awt.event.MouseListener#mouseExited(MouseEvent)
*/
public void mouseExited(MouseEvent e)
{
}
/**
* @see java.awt.event.MouseListener#mousePressed(MouseEvent)
*/
public void mousePressed(MouseEvent e)
{
}
/**
* @see java.awt.event.MouseListener#mouseReleased(MouseEvent)
*/
public void mouseReleased(MouseEvent e)
{
}
public void stateChanged(ChangeEvent e)
{
if (getSelectedComponent()!= null)
((EntityDetails) getSelectedComponent()).refresh();
}
}
|