/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package app.navigps.gui.borders;
import app.navigps.gui.detailspanel.AlphaInterface;
import java.awt.AlphaComposite;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.border.AbstractBorder;
/**
*
* @author wara
*/
public abstract class AlphaBorder extends AbstractBorder implements AlphaInterface{
private float upperThresholdAlpha = 1f;
private float alpha = 1f;
/**
* @return the upperThresholdAlpha
*/
@Override
public float getUpperThresholdAlpha() {
return upperThresholdAlpha;
}
/**
* @param upperThresholdAlpha the upperThresholdAlpha to set
*/
@Override
public void setUpperThresholdAlpha(float upperThresholdAlpha) {
this.upperThresholdAlpha = upperThresholdAlpha;
}
@Override
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
Graphics2D g2 = (Graphics2D)g;
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,getAlpha()));
super.paintBorder(c, g2, x, y, width, height);
}
/**
* @return the alpha
*/
@Override
public float getAlpha() {
return alpha;
}
/**
* @param alpha the alpha to set
* @return
*/
@Override
public boolean setAlpha(float alpha) {
if(alpha<=getUpperThresholdAlpha()){
this.alpha = alpha;
return true;
}return false;
}
}