Skip to content

Commit 8d36b84

Browse files
committed
remove all JavaFX dependencies
1 parent 9781090 commit 8d36b84

9 files changed

+24
-28
lines changed

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,6 @@ subprojects {
201201
file {
202202
whenMerged {
203203
def jre = entries.find { it.path.contains 'org.eclipse.jdt.launching.JRE_CONTAINER' }
204-
jre.accessRules.add(new org.gradle.plugins.ide.eclipse.model.AccessRule('0', 'javafx/**'))
205204
}
206205
}
207206
plusConfigurations << configurations.provided
@@ -286,6 +285,7 @@ gitPublish {
286285
project('text-io') {
287286
dependencies {
288287
compile 'jline:jline:2.14.5'
288+
compile 'org.beryx:awt-color-factory:1.0.0'
289289
}
290290
}
291291

doc/getting_started.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[[getting_started]]
22
= Getting Started
33

4-
CAUTION: You need Java 8 or newer and JavaFX in order to use Text-IO.
4+
CAUTION: You need Java 8 or newer in order to use Text-IO.
55

66
Text-IO is available in Maven Central and JCenter.
77

doc/user_guide.adoc

+2-2
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ Default value: `Ctrl C`.
309309

310310

311311
The values of the color properties are interpreted using the
312-
https://docs.oracle.com/javase/8/javafx/api/javafx/scene/paint/Color.html#web-java.lang.String-[Color.web(String colorString)].
312+
https://static.javadoc.io/org.beryx/awt-color-factory/1.0.0/org/beryx/awt/color/ColorFactory.html#web(java.lang.String)[ColorFactory.web(String colorString)].
313313
method.
314314
This means that you can specify colors in various ways, such as: `red`, `#aa38e0`, `0x40A8CC`, `rgba(112,36,228,0.9)`, `hsla(270,100%,100%,1.0)` etc.
315315

@@ -323,7 +323,7 @@ Using this TerminalProperties, you can dynamically configure properties by calli
323323
link:javadoc/org/beryx/textio/TerminalProperties.html#put-java.lang.String-java.lang.Object-['put(String key, Object value)'] method.
324324
Additionally, convenience methods are available for frequently used properties (for example:
325325
link:javadoc/org/beryx/textio/TerminalProperties.html#setInputBold-boolean-[setInputBold(boolean bold)] or
326-
link:javadoc/org/beryx/textio/TerminalProperties.html#setPromptColor-javafx.scene.paint.Color-[setPromptColor(Color color)]).
326+
link:javadoc/org/beryx/textio/TerminalProperties.html#setPromptColor-java.awt.Color-[setPromptColor(Color color)]).
327327

328328

329329
TIP: You can learn how to configure and use terminal properties by looking at the

gradle/wrapper/gradle-wrapper.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-3.4-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-all.zip

text-io/src/main/java/org/beryx/textio/TerminalProperties.java

+2-5
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
package org.beryx.textio;
1717

18-
import javafx.scene.paint.Color;
18+
import java.awt.Color;
1919
import org.slf4j.Logger;
2020
import org.slf4j.LoggerFactory;
2121

@@ -323,10 +323,7 @@ public void addBooleanListener(String key, boolean defaultValue, BooleanChangeLi
323323

324324

325325
private static String toHex(Color color) {
326-
int r = (int)Math.round(color.getRed() * 255.0);
327-
int g = (int)Math.round(color.getGreen() * 255.0);
328-
int b = (int)Math.round(color.getBlue() * 255.0);
329-
return String.format("#%02x%02x%02x", r, g, b);
326+
return String.format("#%02x%02x%02x", color.getRed(), color.getGreen(), color.getBlue());
330327
}
331328

332329
/** Convenience method that associates the specified {@code color} with the key {@value PropertiesConstants#PROP_PROMPT_COLOR} */

text-io/src/main/java/org/beryx/textio/jline/JLineTextTerminal.java

+15-14
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@
1515
*/
1616
package org.beryx.textio.jline;
1717

18-
import javafx.scene.paint.Color;
18+
import java.awt.Color;
1919
import jline.console.ConsoleReader;
2020
import jline.console.CursorBuffer;
2121
import jline.console.UserInterruptException;
22+
import org.beryx.awt.color.ColorFactory;
2223
import org.beryx.textio.*;
2324
import org.slf4j.Logger;
2425
import org.slf4j.LoggerFactory;
@@ -123,12 +124,12 @@ private static String getStandardColorCode(Color color) {
123124
}
124125

125126
private static double getColorDistance(Color col1, Color col2) {
126-
double r1 = col1.getRed();
127-
double g1 = col1.getGreen();
128-
double b1 = col1.getBlue();
129-
double r2 = col2.getRed();
130-
double g2 = col2.getGreen();
131-
double b2 = col2.getBlue();
127+
double r1 = col1.getRed() / 255.0;
128+
double g1 = col1.getGreen() / 255.0;
129+
double b1 = col1.getBlue() / 255.0;
130+
double r2 = col2.getRed() / 255.0;
131+
double g2 = col2.getGreen() / 255.0;
132+
double b2 = col2.getBlue() / 255.0;
132133

133134
double rmean = (r1 + r2) / 2;
134135
double dr = r1 - r2;
@@ -139,17 +140,17 @@ private static double getColorDistance(Color col1, Color col2) {
139140
}
140141

141142
private static String getIndexedColorCode(Color color) {
142-
double r = 255 * color.getRed();
143-
double g = 255 * color.getGreen();
144-
double b = 255 * color.getBlue();
143+
double r = color.getRed();
144+
double g = color.getGreen();
145+
double b = color.getBlue();
145146
int val = 16 + 36 * mapTo6(r) + 6 * mapTo6(g) + mapTo6(b);
146147
return "8;5;" + val;
147148
}
148149

149150
private static String getRGBColorCode(Color color) {
150-
int r = (int)(255 * color.getRed());
151-
int g = (int)(255 * color.getGreen());
152-
int b = (int)(255 * color.getBlue());
151+
int r = color.getRed();
152+
int g = color.getGreen();
153+
int b = color.getBlue();
153154
return "8;2;" + r + ";" + g + ";" + b;
154155
}
155156

@@ -164,7 +165,7 @@ public Optional<String> getColorCode(String colorName) {
164165
if(code >= 0) {
165166
return Optional.of("" + code);
166167
}
167-
Color color = Color.web(colorName);
168+
Color color = ColorFactory.web(colorName);
168169
return Optional.of(ansiColorMode.getAnsiColorCode(color));
169170
} catch (Exception e) {
170171
// the error will be logged below

text-io/src/main/java/org/beryx/textio/jline/JLineTextTerminalProvider.java

-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ public class JLineTextTerminalProvider implements TextTerminalProvider {
2525
public JLineTextTerminal getTextTerminal() {
2626
if(System.console() == null) return null;
2727
try {
28-
getClass().getClassLoader().loadClass("javafx.scene.paint.Color");
2928
ConsoleReader reader = new ConsoleReader();
3029
return new JLineTextTerminal(reader);
3130
} catch (Exception e) {

text-io/src/main/java/org/beryx/textio/swing/SwingTextTerminal.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package org.beryx.textio.swing;
1717

18+
import org.beryx.awt.color.ColorFactory;
1819
import org.beryx.textio.*;
1920
import org.slf4j.Logger;
2021
import org.slf4j.LoggerFactory;
@@ -704,8 +705,7 @@ protected void updateScrollPaneSize(boolean pack) {
704705
public static Optional<Color> getColor(String colorName) {
705706
if(colorName == null || colorName.isEmpty()) return Optional.empty();
706707
try {
707-
javafx.scene.paint.Color fxColor = javafx.scene.paint.Color.web(colorName);
708-
return Optional.of(new Color((float)fxColor.getRed(), (float)fxColor.getGreen(), (float)fxColor.getBlue(), (float)fxColor.getOpacity()));
708+
return Optional.of(ColorFactory.web(colorName));
709709
} catch (Exception e) {
710710
logger.warn("Invalid color: {}", colorName);
711711
return Optional.empty();

text-io/src/main/java/org/beryx/textio/swing/SwingTextTerminalProvider.java

-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ public class SwingTextTerminalProvider implements TextTerminalProvider {
2626
public SwingTextTerminal getTextTerminal() {
2727
if (isHeadless()) return null;
2828
try {
29-
getClass().getClassLoader().loadClass("javafx.scene.paint.Color");
3029
return new SwingTextTerminal();
3130
} catch(Exception e) {
3231
return null;

0 commit comments

Comments
 (0)