org.salespointframework.desktop.multiwindow
Class IconTabbedPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JTabbedPane
                  extended by org.salespointframework.desktop.multiwindow.IconTabbedPane
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.SwingConstants

public class IconTabbedPane
extends javax.swing.JTabbedPane

A JTabbedPane which has a close ('X') icon on each tab. It is also possible to render the tabs unclosable, i.e. without an icon.

See Also:
Serialized Form

Nested Class Summary
protected  class IconTabbedPane.AdvancedTabComponent
          a tab component which provides tab coloring, tab preview and a close button
 
Nested classes/interfaces inherited from class javax.swing.JTabbedPane
javax.swing.JTabbedPane.AccessibleJTabbedPane, javax.swing.JTabbedPane.ModelListener
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected static javax.swing.ImageIcon CLOSE_ICON
          The imageIcon to be used as close icon.
private  javax.swing.JFrame frame
          The frame which hosts this element
private  boolean m_fAllowClose
          Indicates whether the tabs can be closed or not.
private  java.util.ArrayList<WindowsExtensions.JProxyFrame> proxies
           
static boolean TAB_PREVIEW_RENDER_SMOOTH
          Control flag for preview image rendering. set to false, if you experience performance problems
static boolean TAB_SHOW_ADVANCED_INFORMATION
          This flag controls whether advanced tab information should be shown on mouse over or not.
private  int tabNumber
          The tab whose close button has been clicked most recently.
 
Fields inherited from class javax.swing.JTabbedPane
changeEvent, changeListener, model, SCROLL_TAB_LAYOUT, tabPlacement, WRAP_TAB_LAYOUT
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
IconTabbedPane(boolean fAllowClose, javax.swing.JFrame frame)
          Creates an IconTabbedPane.
IconTabbedPane(javax.swing.JFrame frame)
          Creates an IconTabbedPane with close buttons set.
 
Method Summary
 void addTab(java.lang.String title, java.awt.Component component)
          Adds a tab to the IconTabbedPane.
 boolean getAllowClose()
           
 int getIconClicked()
           
 WindowsExtensions.JProxyFrame getProxy(int index)
           
protected  void makeGlassTransparent(java.awt.image.BufferedImage bi)
           
 void remove(long hwnd)
           
 void removeTabAt(int i)
           
 void setAllowClose(boolean fAllowClose)
          Specifies if closing of tabs should be permitted or not.
 void setCloseIcon(javax.swing.ImageIcon iNewIcon)
          Specifies a new close icon.
 void setIconicPreview(long hwnd)
           
 void setIconicThumb(long hwnd, int w, int h)
           
 void setSelectedIndex(long hwnd)
           
 void setTitleAt(int index, java.lang.String title)
          set tab title and update IconTabbedPane.AdvancedTabComponent
 
Methods inherited from class javax.swing.JTabbedPane
add, add, add, add, add, addChangeListener, addTab, addTab, createChangeListener, fireStateChanged, getAccessibleContext, getBackgroundAt, getBoundsAt, getChangeListeners, getComponentAt, getDisabledIconAt, getDisplayedMnemonicIndexAt, getForegroundAt, getIconAt, getMnemonicAt, getModel, getSelectedComponent, getSelectedIndex, getTabComponentAt, getTabCount, getTabLayoutPolicy, getTabPlacement, getTabRunCount, getTitleAt, getToolTipText, getToolTipTextAt, getUI, getUIClassID, indexAtLocation, indexOfComponent, indexOfTab, indexOfTab, indexOfTabComponent, insertTab, isEnabledAt, paramString, remove, remove, removeAll, removeChangeListener, setBackgroundAt, setComponentAt, setDisabledIconAt, setDisplayedMnemonicIndexAt, setEnabledAt, setForegroundAt, setIconAt, setMnemonicAt, setModel, setSelectedComponent, setSelectedIndex, setTabComponentAt, setTabLayoutPolicy, setTabPlacement, setToolTipTextAt, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

m_fAllowClose

private boolean m_fAllowClose
Indicates whether the tabs can be closed or not.


tabNumber

private int tabNumber
The tab whose close button has been clicked most recently.


frame

private javax.swing.JFrame frame
The frame which hosts this element


TAB_SHOW_ADVANCED_INFORMATION

public static boolean TAB_SHOW_ADVANCED_INFORMATION
This flag controls whether advanced tab information should be shown on mouse over or not.


TAB_PREVIEW_RENDER_SMOOTH

public static boolean TAB_PREVIEW_RENDER_SMOOTH
Control flag for preview image rendering. set to false, if you experience performance problems


proxies

private java.util.ArrayList<WindowsExtensions.JProxyFrame> proxies

CLOSE_ICON

protected static javax.swing.ImageIcon CLOSE_ICON
The imageIcon to be used as close icon.

Constructor Detail

IconTabbedPane

public IconTabbedPane(boolean fAllowClose,
                      javax.swing.JFrame frame)
Creates an IconTabbedPane. A MouseListener is added that listens to clicks on the close button if set.

Parameters:
fAllowClose - Indicates if close buttons should be set or not.

IconTabbedPane

public IconTabbedPane(javax.swing.JFrame frame)
Creates an IconTabbedPane with close buttons set. Calls IconTabbedPane(true)

Method Detail

setCloseIcon

public void setCloseIcon(javax.swing.ImageIcon iNewIcon)
Specifies a new close icon. Icons which are set on currently open tabs will not be changed automatically.

Parameters:
iNewIcon - the new ImageIcon to be used as close icon.

addTab

public void addTab(java.lang.String title,
                   java.awt.Component component)
Adds a tab to the IconTabbedPane. Depending on whether closing is allowed or not a close icon will be set or not, respectively.

Overrides:
addTab in class javax.swing.JTabbedPane
Parameters:
title - the component's title
component - the compoment to be added as tab

setTitleAt

public void setTitleAt(int index,
                       java.lang.String title)
set tab title and update IconTabbedPane.AdvancedTabComponent

Overrides:
setTitleAt in class javax.swing.JTabbedPane

removeTabAt

public void removeTabAt(int i)
Overrides:
removeTabAt in class javax.swing.JTabbedPane

remove

public void remove(long hwnd)

setIconicThumb

public void setIconicThumb(long hwnd,
                           int w,
                           int h)

getProxy

public WindowsExtensions.JProxyFrame getProxy(int index)

makeGlassTransparent

protected void makeGlassTransparent(java.awt.image.BufferedImage bi)

setIconicPreview

public void setIconicPreview(long hwnd)

setSelectedIndex

public void setSelectedIndex(long hwnd)

getIconClicked

public int getIconClicked()
Returns:
the index of the tab whose close icon has been clicked most recently

setAllowClose

public void setAllowClose(boolean fAllowClose)
Specifies if closing of tabs should be permitted or not.

Parameters:
fAllowClose -

getAllowClose

public boolean getAllowClose()
Returns:
if closing of tabs is allowed or not.