001package org.openstreetmap.gui.jmapviewer;
002
003import java.awt.AlphaComposite;
004import java.awt.Color;
005import java.awt.Font;
006import java.awt.Stroke;
007
008public class Style {
009    private Color color;
010    private Color backColor;
011    private Stroke stroke;
012    private Font font;
013    
014    private static final AlphaComposite TRANSPARENCY = AlphaComposite.getInstance(AlphaComposite.SRC_OVER);
015    private static final AlphaComposite OPAQUE = AlphaComposite.getInstance(AlphaComposite.SRC);
016
017    public Style(){
018        super();
019    }
020    public Style(Color color, Color backColor, Stroke stroke, Font font) {
021        super();
022        this.color = color;
023        this.backColor = backColor;
024        this.stroke = stroke;
025        this.font = font;
026    }
027
028    public Color getColor() {
029        return color;
030    }
031    public void setColor(Color color) {
032        this.color = color;
033    }
034    public Color getBackColor() {
035        return backColor;
036    }
037    public void setBackColor(Color backColor) {
038        this.backColor = backColor;
039    }
040    public Stroke getStroke() {
041        return stroke;
042    }
043    public void setStroke(Stroke stroke) {
044        this.stroke = stroke;
045    }
046    public Font getFont() {
047        return font;
048    }
049    public void setFont(Font font) {
050        this.font = font;
051    }
052    private AlphaComposite getAlphaComposite(Color color){
053        return color.getAlpha()==255?OPAQUE:TRANSPARENCY;
054    }
055    public AlphaComposite getAlphaComposite(){
056        return getAlphaComposite(color);
057    }
058    public AlphaComposite getBackAlphaComposite(){
059        return getAlphaComposite(backColor);
060    }
061}