From b086f57f56bf0eb9dab9cf321a0f69aaaae84347 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Wed, 30 May 2012 08:37:45 +0200 Subject: Initial Maven Conversion --- .../gui/tabs/JTabbedPaneWithCloseIcons.java | 96 ++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 src/main/java/com/c2kernel/gui/tabs/JTabbedPaneWithCloseIcons.java (limited to 'src/main/java/com/c2kernel/gui/tabs/JTabbedPaneWithCloseIcons.java') diff --git a/src/main/java/com/c2kernel/gui/tabs/JTabbedPaneWithCloseIcons.java b/src/main/java/com/c2kernel/gui/tabs/JTabbedPaneWithCloseIcons.java new file mode 100644 index 0000000..8f047ca --- /dev/null +++ b/src/main/java/com/c2kernel/gui/tabs/JTabbedPaneWithCloseIcons.java @@ -0,0 +1,96 @@ +package com.c2kernel.gui.tabs; +import java.awt.Component; +import java.awt.Rectangle; +import java.awt.event.InputEvent; +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) + */ + @Override + 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) + */ + @Override + 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()& InputEvent.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) + */ + @Override + public void mouseEntered(MouseEvent e) + { + } + /** + * @see java.awt.event.MouseListener#mouseExited(MouseEvent) + */ + @Override + public void mouseExited(MouseEvent e) + { + } + /** + * @see java.awt.event.MouseListener#mousePressed(MouseEvent) + */ + @Override + public void mousePressed(MouseEvent e) + { + } + /** + * @see java.awt.event.MouseListener#mouseReleased(MouseEvent) + */ + @Override + public void mouseReleased(MouseEvent e) + { + } + @Override + public void stateChanged(ChangeEvent e) + { + if (getSelectedComponent()!= null) + ((EntityDetails) getSelectedComponent()).refresh(); + } +} -- cgit v1.2.3