2
* Copyright (c) 2005-2010 Substance Kirill Grouchnikov. All Rights Reserved.
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions are met:
7
* o Redistributions of source code must retain the above copyright notice,
8
* this list of conditions and the following disclaimer.
10
* o Redistributions in binary form must reproduce the above copyright notice,
11
* this list of conditions and the following disclaimer in the documentation
12
* and/or other materials provided with the distribution.
14
* o Neither the name of Substance Kirill Grouchnikov nor the names of
15
* its contributors may be used to endorse or promote products derived
16
* from this software without specific prior written permission.
18
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
20
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
22
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
27
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
package org.pushingpixels.substance.internal.colorscheme;
32
import java.awt.Color;
34
import org.pushingpixels.substance.api.SubstanceColorScheme;
35
import org.pushingpixels.substance.api.colorscheme.BaseColorScheme;
36
import org.pushingpixels.substance.internal.utils.SubstanceColorUtilities;
39
* Implementation of inverted color scheme. Inverted color scheme is based on
40
* some original color scheme, switching the dark colors by light colors and
41
* inverting the foreground color.
43
* @author Kirill Grouchnikov
45
public class InvertedColorScheme extends BaseColorScheme {
47
* The main ultra-light color.
49
private Color mainUltraLightColor;
52
* The main extra-light color.
54
private Color mainExtraLightColor;
57
* The main light color.
59
private Color mainLightColor;
62
* The main medium color.
64
private Color mainMidColor;
67
* The main dark color.
69
private Color mainDarkColor;
72
* The main ultra-dark color.
74
private Color mainUltraDarkColor;
77
* The foreground color.
79
private Color foregroundColor;
82
* The original color scheme.
84
private SubstanceColorScheme origScheme;
87
* Creates a new inverted scheme.
90
* The original color scheme.
92
public InvertedColorScheme(SubstanceColorScheme origScheme) {
93
super("Inverted " + origScheme.getDisplayName(), getResolver(origScheme).invert());
94
this.origScheme = origScheme;
95
this.foregroundColor = SubstanceColorUtilities.invertColor(origScheme
96
.getForegroundColor());
97
this.mainUltraDarkColor = SubstanceColorUtilities
98
.invertColor(origScheme.getUltraLightColor());
99
this.mainDarkColor = SubstanceColorUtilities.invertColor(origScheme
100
.getExtraLightColor());
101
this.mainMidColor = SubstanceColorUtilities.invertColor(origScheme
103
this.mainLightColor = SubstanceColorUtilities.invertColor(origScheme
105
this.mainExtraLightColor = SubstanceColorUtilities
106
.invertColor(origScheme.getDarkColor());
107
this.mainUltraLightColor = SubstanceColorUtilities
108
.invertColor(origScheme.getUltraDarkColor());
114
* @see org.pushingpixels.substance.color.ColorScheme#getForegroundColor()
117
public Color getForegroundColor() {
118
return this.foregroundColor;
124
* @see org.pushingpixels.substance.color.ColorScheme#getUltraLightColor()
127
public Color getUltraLightColor() {
128
return this.mainUltraLightColor;
134
* @see org.pushingpixels.substance.color.ColorScheme#getExtraLightColor()
137
public Color getExtraLightColor() {
138
return this.mainExtraLightColor;
144
* @see org.pushingpixels.substance.color.ColorScheme#getLightColor()
147
public Color getLightColor() {
148
return this.mainLightColor;
154
* @see org.pushingpixels.substance.color.ColorScheme#getMidColor()
157
public Color getMidColor() {
158
return this.mainMidColor;
164
* @see org.pushingpixels.substance.color.ColorScheme#getDarkColor()
167
public Color getDarkColor() {
168
return this.mainDarkColor;
174
* @see org.pushingpixels.substance.color.ColorScheme#getUltraDarkColor()
177
public Color getUltraDarkColor() {
178
return this.mainUltraDarkColor;
182
* Returns the original color scheme.
184
* @return The original color scheme.
186
public SubstanceColorScheme getOrigScheme() {
187
return this.origScheme;