/* * (C) Copyright 2005 Nilo J. Gonzalez * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser Gereral Public Licence as published by the Free * Software Foundation; either version 2 of the Licence, or (at your opinion) any * later version. * * This library is distributed in the hope that it will be usefull, but WITHOUT ANY * WARRANTY; without even the implied warranty of merchantability or fitness for a * particular purpose. See the GNU Lesser General Public Licence for more details. * * You should have received a copy of the GNU Lesser General Public Licence along * with this library; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, Ma 02111-1307 USA. * * http://www.gnu.org/licenses/lgpl.html (English) * http://gugs.sindominio.net/gnu-gpl/lgpl-es.html (Espa�ol) * * * Original author: Nilo J. Gonzalez */ /** * Esta clase implementa los botones de las barras de scroll. * @author Nilo J. Gonzalez */ package com.nilo.plaf.nimrod; import java.awt.*; import javax.swing.*; import javax.swing.plaf.metal.*; public class NimRODScrollButton extends MetalScrollButton { private static final long serialVersionUID = 1L; public NimRODScrollButton( int direction, int width, boolean freeStanding) { super( direction, width+1, freeStanding); } public void paint( Graphics g) { Rectangle rec = new Rectangle( 0,0, getWidth(),getHeight()); Graphics2D g2D = (Graphics2D)g; GradientPaint grad = null; if (getDirection() == SwingConstants.EAST || getDirection() == SwingConstants.WEST) { if ( getModel().isPressed() || getModel().isSelected() ) { grad = new GradientPaint( 0,0, NimRODUtils.getSombra(), 0,rec.height, NimRODUtils.getBrillo()); } else { grad = new GradientPaint( 0,0, NimRODUtils.getBrillo(), 0,rec.height, NimRODUtils.getSombra()); } } else { if ( getModel().isPressed() || getModel().isSelected() ) { grad = new GradientPaint( 0,0, NimRODUtils.getSombra(), rec.width,0, NimRODUtils.getBrillo()); } else { grad = new GradientPaint( 0,0, NimRODUtils.getBrillo(), rec.width,0, NimRODUtils.getSombra()); } } g2D.setColor( NimRODLookAndFeel.getControl()); g2D.fillRect( rec.x, rec.y, rec.width, rec.height); g2D.setPaint( grad); g2D.fillRect( rec.x, rec.y, rec.width, rec.height); if ( getModel().isRollover() ) { g2D.setColor( NimRODUtils.getRolloverColor()); g2D.fillRect( rec.x, rec.y, rec.width, rec.height); } g2D.setColor( NimRODLookAndFeel.getControlDarkShadow()); g2D.drawRect( rec.x, rec.y, rec.width-1, rec.height-1); Icon icon = null; switch ( getDirection() ) { case SwingConstants.EAST : icon = UIManager.getIcon( "ScrollBar.eastButtonIcon"); break; case SwingConstants.WEST : icon = UIManager.getIcon( "ScrollBar.westButtonIcon"); break; case SwingConstants.NORTH : icon = UIManager.getIcon( "ScrollBar.northButtonIcon"); break; case SwingConstants.SOUTH : icon = UIManager.getIcon( "ScrollBar.southButtonIcon"); break; } icon.paintIcon( this, g2D, rec.x, rec.y); } }