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