source: trunk/src/org/expeditee/gui/ColorUtils.java@ 1102

Last change on this file since 1102 was 1102, checked in by davidb, 6 years ago

Reworking of the code-base to separate logic from graphics. This version of Expeditee now supports a JFX graphics as an alternative to SWING

File size: 1.8 KB
Line 
1/**
2 * ColorUtils.java
3 * Copyright (C) 2010 New Zealand Digital Library, http://expeditee.org
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19package org.expeditee.gui;
20
21import org.expeditee.core.Colour;
22
23public class ColorUtils {
24
25 /**
26 * Gets the next color in the specified color wheel.
27 *
28 * @param color
29 * the current color
30 * @param wheel
31 * the color wheel from which to find the next color
32 * @param skip
33 * a color to ignore, for example the current background color
34 * when getting the next foreground color or null if no colors
35 * should be skipped
36 * @return the next color on the color wheel
37 */
38 public static Colour getNextColor(Colour color, Colour[] wheel, Colour skip) {
39 if (color == null) {
40 color = wheel[0];
41 } else {
42 // search through the colour wheel to find the next colour
43 int pos = -1;
44 for (int i = 0; i < wheel.length; i++) {
45 if (color.equals(wheel[i])) {
46 pos = i;
47 break;
48 }
49 }
50 pos++;
51 pos = pos % wheel.length;
52 color = wheel[pos];
53 }
54
55 if (skip != null && skip.equals(color))
56 return getNextColor(color, wheel, skip);
57
58 return color;
59 }
60}
Note: See TracBrowser for help on using the repository browser.