org.formaria.swing
Class HyperLabel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.AbstractButton
                  extended by javax.swing.JButton
                      extended by org.formaria.swing.HyperLabel
All Implemented Interfaces:
java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.ItemSelectable, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.SwingConstants, StyleComponent, TextHolder

public class HyperLabel
extends javax.swing.JButton
implements TextHolder, java.awt.event.MouseListener, StyleComponent

A hyperlink component, showing an underline when under the cursor and enabling button like actions on mouse click

Copyright (c) Formaria Ltd., 2008, This software is licensed under the GNU Public License (GPL), please see license.txt for more details. If you make commercial use of this software you must purchase a commercial license from formaria.

$Revision: 1.2 $

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JButton
javax.swing.JButton.AccessibleJButton
 
Nested classes/interfaces inherited from class javax.swing.AbstractButton
javax.swing.AbstractButton.AccessibleAbstractButton, javax.swing.AbstractButton.ButtonChangeListener
 
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  java.lang.String alignment
           
protected  boolean forceMouseOver
           
protected  java.lang.String origText
           
protected  boolean selected
           
protected  Style selectedStyle
           
protected  Style style
           
protected  StyleManager styleMgr
           
protected  Translator translator
           
 
Fields inherited from class javax.swing.AbstractButton
actionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, ICON_CHANGED_PROPERTY, itemListener, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, PRESSED_ICON_CHANGED_PROPERTY, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, SELECTED_ICON_CHANGED_PROPERTY, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTY
 
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
HyperLabel()
          Create a new hyperlink label
 
Method Summary
 java.lang.String getContent()
          Get the content of the label
protected  java.lang.String getFormattedText()
          Get the formatted (html) text for the label
 java.awt.Insets getInsets()
           
 boolean getSelected()
          Get the selection state of the component
 void mouseClicked(java.awt.event.MouseEvent me)
          The user has clicked on the component
 void mouseEntered(java.awt.event.MouseEvent me)
          The cursor has just entered the component's area
 void mouseExited(java.awt.event.MouseEvent me)
          The cursor has just exited the component's area
 void mousePressed(java.awt.event.MouseEvent me)
          The mouse has been pressed while the mouse is over the component
 void mouseReleased(java.awt.event.MouseEvent me)
          The mouse has been released while the mouse is over the component
 void paintComponent(java.awt.Graphics g)
           
 void setAlignment(java.lang.String align)
          Set the text alignment
 void setAntiAlias(boolean aa)
           
 void setContent(java.lang.String content)
          Set the raw (un-translated) text of the label
 void setFont(java.awt.Font f)
          Set the font for the label
 void setForceMouseOver(boolean force)
          Set the component to render it's text as though in a rollover state, with the text underlined.
 void setSelected(boolean state)
          Set the selected state of the component, as the component is slected it is drawn in the selected style
 void setSelectedStyle(java.lang.String name)
          Set the style of a selected hyper link
 void setStyle(java.lang.String name)
          Set the component style
 void setStyle(Style s)
          Set the component style
 void setText(java.lang.String text)
          Set the component text
 void setToolTip(java.lang.String text)
          Set the text of the tooltip
 
Methods inherited from class javax.swing.JButton
getAccessibleContext, getUIClassID, isDefaultButton, isDefaultCapable, paramString, removeNotify, setDefaultCapable, updateUI
 
Methods inherited from class javax.swing.AbstractButton
actionPropertyChanged, addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, configurePropertiesFromAction, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, doClick, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHideActionText, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, init, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, isSelected, paintBorder, removeActionListener, removeChangeListener, removeItemListener, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setEnabled, setFocusPainted, setHideActionText, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setModel, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelectedIcon, setUI, setVerticalAlignment, setVerticalTextPosition
 
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, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, 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
 
Methods inherited from interface org.formaria.aria.TextHolder
getText
 

Field Detail

origText

protected java.lang.String origText

style

protected Style style

selectedStyle

protected Style selectedStyle

alignment

protected java.lang.String alignment

selected

protected boolean selected

translator

protected Translator translator

styleMgr

protected StyleManager styleMgr

forceMouseOver

protected boolean forceMouseOver
Constructor Detail

HyperLabel

public HyperLabel()
Create a new hyperlink label

Method Detail

getInsets

public java.awt.Insets getInsets()
Overrides:
getInsets in class javax.swing.JComponent

setStyle

public void setStyle(java.lang.String name)
Set the component style

Specified by:
setStyle in interface StyleComponent
Parameters:
name - the new style name

setStyle

public void setStyle(Style s)
Set the component style

Parameters:
name - the new style name

setForceMouseOver

public void setForceMouseOver(boolean force)
Set the component to render it's text as though in a rollover state, with the text underlined.

Parameters:
force - the new flag state, true to set the component to the rollover/underlined state

setSelectedStyle

public void setSelectedStyle(java.lang.String name)
Set the style of a selected hyper link

Parameters:
name - the selected style name

setFont

public void setFont(java.awt.Font f)
Set the font for the label

Overrides:
setFont in class javax.swing.JComponent
Parameters:
f - the new font

setSelected

public void setSelected(boolean state)
Set the selected state of the component, as the component is slected it is drawn in the selected style

Overrides:
setSelected in class javax.swing.AbstractButton
Parameters:
state - true to select this link

getSelected

public boolean getSelected()
Get the selection state of the component

Returns:
true if the link is seldted

getFormattedText

protected java.lang.String getFormattedText()
Get the formatted (html) text for the label

Returns:
the label's html

paintComponent

public void paintComponent(java.awt.Graphics g)
Overrides:
paintComponent in class javax.swing.JComponent

setContent

public void setContent(java.lang.String content)
Set the raw (un-translated) text of the label

Parameters:
content - The translation key or the text to display if no translation is to take place

setAlignment

public void setAlignment(java.lang.String align)
Set the text alignment

Parameters:
align - left, right, center

setText

public void setText(java.lang.String text)
Set the component text

Specified by:
setText in interface TextHolder
Overrides:
setText in class javax.swing.AbstractButton
Parameters:
text - the component text

setToolTip

public void setToolTip(java.lang.String text)
Set the text of the tooltip

Parameters:
text -

getContent

public java.lang.String getContent()
Get the content of the label

Returns:
the original text (un-translated)

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent me)
The cursor has just entered the component's area

Specified by:
mouseEntered in interface java.awt.event.MouseListener
Parameters:
me - the current mouse event

mouseExited

public void mouseExited(java.awt.event.MouseEvent me)
The cursor has just exited the component's area

Specified by:
mouseExited in interface java.awt.event.MouseListener
Parameters:
me - the current mouse event

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent me)
The user has clicked on the component

Specified by:
mouseClicked in interface java.awt.event.MouseListener
Parameters:
me - the current mouse event

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent me)
The mouse has been released while the mouse is over the component

Specified by:
mouseReleased in interface java.awt.event.MouseListener
Parameters:
me - the current mouse event

mousePressed

public void mousePressed(java.awt.event.MouseEvent me)
The mouse has been pressed while the mouse is over the component

Specified by:
mousePressed in interface java.awt.event.MouseListener
Parameters:
me - the current mouse event

setAntiAlias

public void setAntiAlias(boolean aa)