FileDocCategorySizeDatePackage
MetalUtils.javaAPI DocJava SE 6 API15470Tue Jun 10 00:26:50 BST 2008javax.swing.plaf.metal

MetalUtils

public class MetalUtils extends Object
This is a dumping ground for random stuff we want to use in several places.
version
1.39 11/17/05
author
Steve Wilson

Fields Summary
Constructors Summary
Methods Summary
static voiddrawActiveButtonBorder(java.awt.Graphics g, int x, int y, int w, int h)

        drawFlush3DBorder(g, x, y, w, h);
        g.setColor( MetalLookAndFeel.getPrimaryControl() );
	g.drawLine( x+1, y+1, x+1, h-3 );
	g.drawLine( x+1, y+1, w-3, x+1 );
        g.setColor( MetalLookAndFeel.getPrimaryControlDarkShadow() );
	g.drawLine( x+2, h-2, w-2, h-2 );
	g.drawLine( w-2, y+2, w-2, h-2 );
    
static voiddrawButtonBorder(java.awt.Graphics g, int x, int y, int w, int h, boolean active)

        if (active) {
            drawActiveButtonBorder(g, x, y, w, h);	    
        } else {
            drawFlush3DBorder(g, x, y, w, h);
	}
    
static voiddrawDark3DBorder(java.awt.Graphics g, java.awt.Rectangle r)
This draws a variant "Flush 3D Border" It is used for things like active toggle buttons. This is used rarely.

        drawDark3DBorder(g, r.x, r.y, r.width, r.height);
    
static voiddrawDark3DBorder(java.awt.Graphics g, int x, int y, int w, int h)
This draws a variant "Flush 3D Border" It is used for things like active toggle buttons. This is used rarely.

        g.translate( x, y);

        drawFlush3DBorder(g, 0, 0, w, h);

        g.setColor( MetalLookAndFeel.getControl() );
	g.drawLine( 1, 1, 1, h-2 );
	g.drawLine( 1, 1, w-2, 1 );
        g.setColor( MetalLookAndFeel.getControlShadow() );
	g.drawLine( 1, h-2, 1, h-2 );
	g.drawLine( w-2, 1, w-2, 1 );
        g.translate( -x, -y);
    
static voiddrawDefaultButtonBorder(java.awt.Graphics g, int x, int y, int w, int h, boolean active)

        drawButtonBorder(g, x+1, y+1, w-1, h-1, active);	    
        g.translate(x, y);
        g.setColor( MetalLookAndFeel.getControlDarkShadow() );
	g.drawRect( 0, 0, w-3, h-3 );
	g.drawLine( w-2, 0, w-2, 0);
	g.drawLine( 0, h-2, 0, h-2);
        g.translate(-x, -y);
    
static voiddrawDefaultButtonPressedBorder(java.awt.Graphics g, int x, int y, int w, int h)

        drawPressed3DBorder(g, x + 1, y + 1, w - 1, h - 1);
        g.translate(x, y);
        g.setColor(MetalLookAndFeel.getControlDarkShadow());
        g.drawRect(0, 0, w - 3, h - 3);
        g.drawLine(w - 2, 0, w - 2, 0);
        g.drawLine(0, h - 2, 0, h - 2);
        g.setColor(MetalLookAndFeel.getControl());
        g.drawLine(w - 1, 0, w - 1, 0);
        g.drawLine(0, h - 1, 0, h - 1);
        g.translate(-x, -y);
    
static voiddrawDisabledBorder(java.awt.Graphics g, int x, int y, int w, int h)

        g.translate( x, y);
        g.setColor( MetalLookAndFeel.getControlShadow() );
	g.drawRect( 0, 0, w-1, h-1 );
        g.translate(-x, -y);
    
static voiddrawFlush3DBorder(java.awt.Graphics g, java.awt.Rectangle r)

        drawFlush3DBorder(g, r.x, r.y, r.width, r.height);
    
static voiddrawFlush3DBorder(java.awt.Graphics g, int x, int y, int w, int h)
This draws the "Flush 3D Border" which is used throughout the Metal L&F

        g.translate( x, y);
        g.setColor( MetalLookAndFeel.getControlDarkShadow() );
	g.drawRect( 0, 0, w-2, h-2 );
        g.setColor( MetalLookAndFeel.getControlHighlight() );
	g.drawRect( 1, 1, w-2, h-2 );
        g.setColor( MetalLookAndFeel.getControl() );
	g.drawLine( 0, h-1, 1, h-2 );
	g.drawLine( w-1, 0, w-2, 1 );
        g.translate( -x, -y);
    
static booleandrawGradient(java.awt.Component c, java.awt.Graphics g, java.lang.String key, int x, int y, int w, int h, boolean vertical)
Draws a radial type gradient. The gradient will be drawn vertically if vertical is true, otherwise horizontally. The UIManager key consists of five values: r1 r2 c1 c2 c3. The gradient is broken down into four chunks drawn in order from the origin.
  1. Gradient r1 % of the size from c1 to c2
  2. Rectangle r2 % of the size in c2.
  3. Gradient r1 % of the size from c2 to c1
  4. The remaining size will be filled with a gradient from c1 to c3.

param
c Component rendering to
param
g Graphics to draw to.
param
key UIManager key used to look up gradient values.
param
x X coordinate to draw from
param
y Y coordinate to draw from
param
w Width to draw to
param
h Height to draw to
param
vertical Direction of the gradient
return
true if key exists, otherwise false.

        java.util.List gradient = (java.util.List)UIManager.get(key);
        if (gradient == null || !(g instanceof Graphics2D)) {
            return false;
        }

        if (w <= 0 || h <= 0) {
            return true;
        }

        GradientPainter.INSTANCE.paint(
                c, (Graphics2D)g, gradient, x, y, w, h, vertical);
        return true;
    
static voiddrawPressed3DBorder(java.awt.Graphics g, java.awt.Rectangle r)
This draws a variant "Flush 3D Border" It is used for things like pressed buttons.

        drawPressed3DBorder( g, r.x, r.y, r.width, r.height );
    
static voiddrawPressed3DBorder(java.awt.Graphics g, int x, int y, int w, int h)
This draws a variant "Flush 3D Border" It is used for things like pressed buttons.

        g.translate( x, y);

        drawFlush3DBorder(g, 0, 0, w, h);

        g.setColor( MetalLookAndFeel.getControlShadow() );
	g.drawLine( 1, 1, 1, h-2 );
	g.drawLine( 1, 1, w-2, 1 );
        g.translate( -x, -y);
    
static intgetInt(java.lang.Object key, int defaultValue)

        Object value = UIManager.get(key);

        if (value instanceof Integer) {
            return ((Integer)value).intValue();
        }
        if (value instanceof String) {
            try {
                return Integer.parseInt((String)value);
            } catch (NumberFormatException nfe) {}
        }
        return defaultValue;
    
static javax.swing.IcongetOceanDisabledButtonIcon(java.awt.Image image)

        Object[] range = (Object[])UIManager.get("Button.disabledGrayRange");
        int min = 180;
        int max = 215;
        if (range != null) {
            min = ((Integer)range[0]).intValue();
            max = ((Integer)range[1]).intValue();
        }
	ImageProducer prod = new FilteredImageSource(image.getSource(),
                      new OceanDisabledButtonImageFilter(min , max));
	return new ImageIconUIResource(Toolkit.getDefaultToolkit().createImage(prod));
    
static javax.swing.IcongetOceanToolBarIcon(java.awt.Image i)

	ImageProducer prod = new FilteredImageSource(i.getSource(),
                             new OceanToolBarImageFilter());
	return new ImageIconUIResource(Toolkit.getDefaultToolkit().createImage(prod));
    
static booleanisLeftToRight(java.awt.Component c)

        return c.getComponentOrientation().isLeftToRight();
    
static booleanisToolBarButton(javax.swing.JComponent c)
Returns true if the specified widget is in a toolbar.

        return (c.getParent() instanceof JToolBar);