BevelBorder.java :  » J2ME » Persian-Mobile-Dictionary » pmd » gui » border » Java Open Source

Java Open Source » J2ME » Persian Mobile Dictionary 
Persian Mobile Dictionary » pmd » gui » border » BevelBorder.java
/* 
 * Copyright (c) 2007, persianmobidict.sourceforge.net
 * Released under the GNU General Public License
 */

package pmd.gui.border;

import javax.microedition.lcdui.Graphics;

/**
 *
 * @author  Hooman Valibeigi
 */
public class BevelBorder extends AbstractBorder {
    
    public static final int RAISED  = 0;
    public static final int LOWERED = 1;
    
    private static final Insets insets = new Insets(3, 3, 3, 3);
    
    private int bevelType;
    private int highlightOuter;
    private int highlightInner;
    private int shadowInner;
    private int shadowOuter;
    
    
    public BevelBorder(int bevelType, int highlightOuter, int highlightInner, int shadowOuter, int shadowInner) {
        super(insets);
        setBevelType(bevelType);
        setColors(highlightOuter, highlightInner, shadowOuter, shadowInner);
    }
    
    
    public void setColors(int highlightOuter, int highlightInner, int shadowOuter, int shadowInner) {
        this.highlightOuter = highlightOuter;
        this.highlightInner = highlightInner;
        this.shadowOuter = shadowOuter;
        this.shadowInner = shadowInner;
    }
    
    public void setBevelType(int bevelType) {
        this.bevelType = bevelType;
    }
    
    public void paintBorder(Graphics g, int x, int y, int w, int h) {
        if (bevelType == RAISED)
            paintRaisedBevel(g, x, y, w, h);
        else
            paintLoweredBevel(g, x, y, w, h);
    }
    
    private void paintRaisedBevel(Graphics g, int x, int y, int w, int h)  {
        g.translate(x, y);

        g.setColor(highlightOuter);
        g.drawLine(0, 0, 0, h-2);
        g.drawLine(1, 0, w-2, 0);

        g.setColor(highlightInner);
        g.drawLine(1, 1, 1, h-3);
        g.drawLine(2, 1, w-3, 1);

        g.setColor(shadowOuter);
        g.drawLine(0, h-1, w-1, h-1);
        g.drawLine(w-1, 0, w-1, h-2);

        g.setColor(shadowInner);
        g.drawLine(1, h-2, w-2, h-2);
        g.drawLine(w-2, 1, w-2, h-3);

        g.translate(-x, -y);
    }

    private void paintLoweredBevel(Graphics g, int x, int y, int w, int h)  {
        g.translate(x, y);

        g.setColor(shadowOuter);
        g.drawLine(0, 0, 0, h-1);
        g.drawLine(1, 0, w-1, 0);

        g.setColor(shadowInner);
        g.drawLine(1, 1, 1, h-2);
        g.drawLine(2, 1, w-2, 1);

        g.setColor(highlightOuter);
        g.drawLine(1, h-1, w-1, h-1);
        g.drawLine(w-1, 1, w-1, h-2);

        g.setColor(highlightInner);
        g.drawLine(2, h-2, w-2, h-2);
        g.drawLine(w-2, 2, w-2, h-3);

        g.translate(-x, -y);
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.