/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package app.navigps.gui.Scrollbar.ui; import app.navigps.utils.Utils; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import javax.swing.JComponent; import javax.swing.JScrollBar; import javax.swing.plaf.metal.MetalScrollBarUI; /** * * @author wara */ public class LineScrollBarUI extends MetalScrollBarUI { private Color darkShadowColor = new Color(100,100,100,200); private Color shadowColor = new Color(200,200,200,200); private Color highlightColor = new Color(200,255,200,200); /** * */ @Override protected void installDefaults() { super.installDefaults(); scrollBarWidth = 13; } /** * * @param g * @param c * @param trackBounds */ @Override protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) { //super.paintTrack(g, c, trackBounds); Graphics2D g2 = (Graphics2D)g; //g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.translate( trackBounds.x, trackBounds.y ); boolean leftToRight = c.getComponentOrientation().isLeftToRight(); if ( scrollbar.getOrientation() == JScrollBar.VERTICAL ){ if ( !isFreeStanding ) { trackBounds.width += 2; if ( !leftToRight ) { g2.translate( -1, 0 ); } } if ( c.isEnabled() ) {// VERTICAL g2.setColor(darkShadowColor); int halfArea = trackBounds.width/2; g2.drawLine( halfArea, 3,halfArea, trackBounds.height ); g2.setColor(shadowColor); for(int i=1;i<3;i++){ int delta = i*50; g2.setColor(Utils.checkColor(darkShadowColor.getRed()+delta, darkShadowColor.getGreen()+delta, darkShadowColor.getBlue()+delta)); g2.drawLine( halfArea + i, 3-i, halfArea + i, trackBounds.height - i ); } } else { //MetalUtils.drawDisabledBorder(g, 0, 0, trackBounds.width, trackBounds.height ); } if ( !isFreeStanding ) { trackBounds.width -= 2; if ( !leftToRight ) { g2.translate( 1, 0 ); } } } else{ // HORIZONTAL if ( !isFreeStanding ) { trackBounds.height += 2; } if ( c.isEnabled() ) { g2.setColor( darkShadowColor ); int halfArea = trackBounds.height/2; g2.drawLine( 0,halfArea, trackBounds.width - 3,halfArea); g2.setColor( shadowColor ); for (int i = 1; i < 3; i++){ int delta = i*50; g2.setColor(Utils.checkColor(darkShadowColor.getRed()+delta, darkShadowColor.getGreen()+delta, darkShadowColor.getBlue()+delta)); g2.drawLine( i,halfArea+i, trackBounds.width-2,halfArea+i); } } else { //MetalUtils.drawDisabledBorder(g, 0, 0, trackBounds.width, trackBounds.height ); } if ( !isFreeStanding ) { trackBounds.height -= 2; } } g2.translate( -trackBounds.x, -trackBounds.y ); } }