com.explodingpixels.macwidgets
Class MacWidgetFactory

java.lang.Object
  extended by com.explodingpixels.macwidgets.MacWidgetFactory

public class MacWidgetFactory
extends java.lang.Object

A factory for creating various types of Mac style widgets. See each method's javadoc for detailed descriptions of the components, as well as screen shots and links to specific sections in Apples Human Interface Guidelines.


Constructor Summary
MacWidgetFactory()
           
 
Method Summary
static TriAreaComponent createBottomBar(BottomBarSize size)
          Creates a Mac style Bottom Bar.
static ComponentBottomBar createComponentStatusBar()
           
static javax.swing.JLabel createEmphasizedLabel(java.lang.String text)
           
static javax.swing.JTable createITunesTable(javax.swing.table.TableModel tableModel)
           
static javax.swing.JTree createSourceList(javax.swing.tree.TreeModel model)
           
static javax.swing.JScrollPane createSourceListScrollPane(javax.swing.JComponent content)
           
static javax.swing.JComponent createSpacer(int width, int height)
          Creates a transparent spacer of the given width and height.
static javax.swing.JSplitPane createSplitPaneForSourceList(SourceList sourceList, javax.swing.JComponent component)
           
static com.explodingpixels.painter.Painter<java.awt.Component> createTexturedWindowWorkaroundPainter()
           
static PreferencesTabBar createUnifiedPreferencesTabBar()
           
static TriAreaComponent createUnifiedToolBar()
          Creates a Mac style Unified Tool Bar.
static javax.swing.JLabel makeEmphasizedLabel(javax.swing.JLabel label)
           
static javax.swing.JLabel makeEmphasizedLabel(javax.swing.JLabel label, java.awt.Color focusedColor, java.awt.Color unfocusedColor, java.awt.Color emphasisColor)
           
static javax.swing.JTree makeSourceList(javax.swing.JTree tree)
           
static javax.swing.JScrollPane makeSourceListScrollPane(javax.swing.JScrollPane scrollPane)
           
static javax.swing.JScrollPane wrapITunesTableInJScrollPane(javax.swing.JTable table)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MacWidgetFactory

public MacWidgetFactory()
Method Detail

createITunesTable

public static javax.swing.JTable createITunesTable(javax.swing.table.TableModel tableModel)

wrapITunesTableInJScrollPane

public static javax.swing.JScrollPane wrapITunesTableInJScrollPane(javax.swing.JTable table)

createUnifiedToolBar

public static TriAreaComponent createUnifiedToolBar()
Creates a Mac style Unified Tool Bar. For a full description of what a Unified Tool Bar is, see the Toolbars section of Apple's Human Interface Guidelines. Here's an example of the what this method creates:

Here's a simple example that creates a Unified Tool Bar:
 TriAreaComponent toolBar =  MacWidgetFactory.createUnifiedToolBar();
 JButton button = new JButton("My Button");
 button.putClientProperty("JButton.buttonType", "textured");
 toolBar.addComponentToLeft(button);
 

Returns:
a TriAreaComponent configured as a Unified Tool Bar.

createUnifiedPreferencesTabBar

public static PreferencesTabBar createUnifiedPreferencesTabBar()

createComponentStatusBar

public static ComponentBottomBar createComponentStatusBar()

createBottomBar

public static TriAreaComponent createBottomBar(BottomBarSize size)
Creates a Mac style Bottom Bar. For a full descrption of what a Bottom Bar is, see the Bottom Bars section of Apple's Human Interface Guidelines. Here's an example of what this method cretes:

Here's a simple example that creates a Bottom Bar:
 TriAreaComponent bottomBar = MacWidgetFactory.createBottomBar(BottomBarSize.LARGE);
 bottomBar.addComponentToCenter(MacWidgetFactory.createEmphasizedLabel("My Label"));
 

Parameters:
size - the size of the Bottom Bar.
Returns:
a TriAreaComponent configured as a Bottom Bar.

createSpacer

public static javax.swing.JComponent createSpacer(int width,
                                                  int height)
Creates a transparent spacer of the given width and height. If you don't care about a particular dimension, that is, you only want a horiztonal spacer, than simply provide zero for the value your not interested in.

Parameters:
width - the width of the spacer - zero if the width doesn't matter.
height - the height of the spacer - zero if the height doesn't matter.
Returns:
a transparent spacer of the given size.

createEmphasizedLabel

public static javax.swing.JLabel createEmphasizedLabel(java.lang.String text)

makeEmphasizedLabel

public static javax.swing.JLabel makeEmphasizedLabel(javax.swing.JLabel label)

makeEmphasizedLabel

public static javax.swing.JLabel makeEmphasizedLabel(javax.swing.JLabel label,
                                                     java.awt.Color focusedColor,
                                                     java.awt.Color unfocusedColor,
                                                     java.awt.Color emphasisColor)

createSplitPaneForSourceList

public static javax.swing.JSplitPane createSplitPaneForSourceList(SourceList sourceList,
                                                                  javax.swing.JComponent component)

createSourceList

public static javax.swing.JTree createSourceList(javax.swing.tree.TreeModel model)

makeSourceList

public static javax.swing.JTree makeSourceList(javax.swing.JTree tree)

createSourceListScrollPane

public static javax.swing.JScrollPane createSourceListScrollPane(javax.swing.JComponent content)

makeSourceListScrollPane

public static javax.swing.JScrollPane makeSourceListScrollPane(javax.swing.JScrollPane scrollPane)

createTexturedWindowWorkaroundPainter

public static com.explodingpixels.painter.Painter<java.awt.Component> createTexturedWindowWorkaroundPainter()