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}