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
022    public Style(Color color, Color backColor, Stroke stroke, Font font) {
023        super();
024        this.color = color;
025        this.backColor = backColor;
026        this.stroke = stroke;
027        this.font = font;
028    }
029
030    public Color getColor() {
031        return color;
032    }
033
034    public void setColor(Color color) {
035        this.color = color;
036    }
037
038    public Color getBackColor() {
039        return backColor;
040    }
041
042    public void setBackColor(Color backColor) {
043        this.backColor = backColor;
044    }
045
046    public Stroke getStroke() {
047        return stroke;
048    }
049
050    public void setStroke(Stroke stroke) {
051        this.stroke = stroke;
052    }
053
054    public Font getFont() {
055        return font;
056    }
057
058    public void setFont(Font font) {
059        this.font = font;
060    }
061
062    private static AlphaComposite getAlphaComposite(Color color) {
063        return color.getAlpha() == 255 ? OPAQUE : TRANSPARENCY;
064    }
065
066    public AlphaComposite getAlphaComposite() {
067        return getAlphaComposite(color);
068    }
069
070    public AlphaComposite getBackAlphaComposite() {
071        return getAlphaComposite(backColor);
072    }
073}