diff --git a/README.md b/README.md
index 6e3e31e..db17962 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,12 @@
### Features:
- Support text color.
- Support background color.
+ - Support 256 colors (RGB).
+ - Support ANSI colors.
+ - Support indexed colors.
- Support text style.
+ - Lightweight and fast.
+ - Easy to use.
### How to add this library into your project
**Step 1**. Add the dependency
@@ -17,7 +22,6 @@
0.1.5
```
-**Step 2**. run this command `mvn install`
#### Gradle:
**Step 1**. Add the JitPack repository to your build file
@@ -37,43 +41,30 @@ allprojects {
}
```
-### Usage:
-```java
-ConsoleManager manager = new DefaultConsoleManager(); // Create a new console manager
-manager.setTextColor(TextColor.LIGHT_RED); // Set text color
-manager.setBackgroundColor(BackgroundColor.DARK_BLUE); // Set background color
-
-manager.println("Hello World!"); // Print text
-```
-
+## Usage:
-```java
-ConsoleManager manager = new DefaultConsoleManager(); // Create a new console manager
-manager.setTextColor(TextColor.LIGHT_RED); // Set text color
-manager.setBackgroundColor(BackgroundColor.DARK_BLUE); // Set background color
-manager.setTextStyle(TextStyle.ITALIC); // Set text style
+## Requirements for development:
+- Maven
+- jdk 17
+- IntelliJ IDEA (not required but recommended)
-manager.println("Hello World!"); // Print text
-```
-
+## TODO
+- [ ] Add Tests
+- [ ] Add Formatter
+- [ ] Add Documentation
+- [ ] Add more examples
-```java
-public class Example1 {
- public static void main(String[] args) {
- ConsoleManager manager = new DefaultConsoleManager();
+### Available in
- manager.print("Hello", BackgroundColor.DARK_YELLOW, TextColor.DARK_WHITE, TextStyle.BOLD, TextStyle.ITALIC);
- manager.print(", ", TextColor.LIGHT_GREEN);
- manager.print("I'm ", TextColor.DARK_YELLOW);
- manager.print("Anas", TextColor.LIGHT_BLUE, TextStyle.DOUBLE_UNDERLINE);
- manager.println(" :D", TextColor.LIGHT_CYAN);
- manager.println("\tFrom", TextColor.LIGHT_RED, TextStyle.ITALIC);
- manager.print("Eg", BackgroundColor.LIGHT_RED);
- manager.print("y", BackgroundColor.DARK_WHITE);
- manager.print("pt", BackgroundColor.DARK_BLACK);
- }
-}
-```
-
+[![GitHub](https://img.shields.io/badge/GitHub-Main%20repo-brightgreen?style=for-the-badge&logo=GitHub)](https://github.com/Anas-Elgarhy/jpwd)
+[![GitLab](https://img.shields.io/badge/GitLab-Mirror%20repo-brightgreen?style=for-the-badge&logo=GitLab)](https://gitlab.com/java-utils1/jpwd)
+[![BitBucket](https://img.shields.io/badge/BitBucket-Mirror%20repo-brightgreen?style=for-the-badge&logo=BitBucket)](https://bitbucket.org/anas_elgarhy/jpwd)
+[![Codeberg](https://img.shields.io/badge/Codeberg-Mirror%20repo-brightgreen?style=for-the-badge&logo=Codeberg)](https://codeberg.org/java-utils/jpwd)
-#### License: MIT
\ No newline at end of file
+
+[![Quality gate](https://sonarcloud.io/api/project_badges/quality_gate?project=Anas-Elgarhy_jpwd)](https://sonarcloud.io/summary/new_code?id=Anas-Elgarhy_jpwd)
+
+
+[![SonarCloud](https://sonarcloud.io/images/project_badges/sonarcloud-black.svg)](https://sonarcloud.io/summary/new_code?id=Anas-Elgarhy_jpwd)
+
+![License: GPL-3.0](https://img.shields.io/badge/License-GPL%203.0-blue.svg)
diff --git a/src/main/java/com/anas/jcolorfulconsole/ColoredString.java b/src/main/java/com/anas/jcolorfulconsole/ColoredString.java
index 9c6a90f..35bf080 100644
--- a/src/main/java/com/anas/jcolorfulconsole/ColoredString.java
+++ b/src/main/java/com/anas/jcolorfulconsole/ColoredString.java
@@ -12,18 +12,39 @@ public class ColoredString {
private TextColor backgroundColor;
private ArrayList styles;
+ /**
+ * Create a new empty ColoredString object
+ */
public ColoredString() {
this(null);
}
+ /**
+ * Create a new ColoredString object with the given string
+ * @param str The string to be colored
+ * @param styles The styles to be applied to the string (optional)
+ */
public ColoredString(String str, TextStyle... styles) {
this(str, (TextColor) null, styles);
}
+ /**
+ * Create a new ColoredString object with the given string and foreground color
+ * @param str The string to be colored
+ * @param foregroundColor The foreground color to be applied to the string
+ * @param styles The styles to be applied to the string (optional)
+ */
public ColoredString(String str, TextColor foregroundColor, TextStyle... styles) {
this(str, foregroundColor, null, styles);
}
+ /**
+ * Create a new ColoredString object with the given string and foreground and background colors
+ * @param str The string to be colored
+ * @param foregroundColor The foreground color to be applied to the string
+ * @param backgroundColor The background color to be applied to the string
+ * @param styles The styles to be applied to the string (optional)
+ */
public ColoredString(String str, TextColor foregroundColor, TextColor backgroundColor, TextStyle... styles) {
strBytes = str != null ?
str.getBytes(StandardCharsets.UTF_8) : null;
@@ -36,10 +57,23 @@ public class ColoredString {
}
}
+ /**
+ * Create a new ColoredString object with the given string and foreground color as string of name of the color or hexadecimal color code
+ * @param str The string to be colored
+ * @param foregroundColor The foreground color to be applied to the string as string of name of the color or hexadecimal color code
+ * @param styles The styles to be applied to the string (optional)
+ */
public ColoredString(String str, String foregroundColor, TextStyle... styles) {
this(str, foregroundColor, null, styles);
}
+ /**
+ * Create a new ColoredString object with the given string and foreground and background colors as string of name of the color or hexadecimal color code
+ * @param str The string to be colored
+ * @param foregroundColor The foreground color to be applied to the string as string of name of the color or hexadecimal color code
+ * @param backgroundColor The background color to be applied to the string as string of name of the color or hexadecimal color code
+ * @param styles The styles to be applied to the string (optional)
+ */
public ColoredString(String str, String foregroundColor, String backgroundColor, TextStyle... styles) {
this(str,
TextColor.Factory.fromString(foregroundColor),
@@ -47,35 +81,67 @@ public class ColoredString {
styles);
}
-
+ /**
+ * Set the foreground color (text color)
+ * @param textColor The foreground color to be applied to the string
+ */
public void setForegroundColor(TextColor textColor) {
this.foregroundColor = textColor;
}
- public void setForegroundColor(String color) {
- this.setForegroundColor(TextColor.Factory.fromString(color));
+ /**
+ * Set the foreground color (text color) as string of name of the color or hexadecimal color code
+ * @param textColor The foreground color to be applied to the string as string of name of the color or hexadecimal color code
+ */
+ public void setForegroundColor(String textColor) {
+ this.setForegroundColor(TextColor.Factory.fromString(textColor));
}
+ /**
+ * Set the background color
+ * @param backgroundColor The background color to be applied to the string
+ */
public void setBackgroundColor(TextColor backgroundColor) {
this.backgroundColor = backgroundColor;
}
- public void setBackgroundColor(String color) {
- this.setBackgroundColor(TextColor.Factory.fromString(color));
+
+ /**
+ * Set the background color as string of name of the color or hexadecimal color code
+ * @param backgroundColor The background color to be applied to the string as string of name of the color or hexadecimal color code
+ */
+ public void setBackgroundColor(String backgroundColor) {
+ this.setBackgroundColor(TextColor.Factory.fromString(backgroundColor));
}
+ /**'
+ * Get the foreground color (text color)
+ * @return The foreground color, null if not set
+ */
public TextColor getForegroundColor() {
return foregroundColor;
}
+ /**
+ * Get the background color
+ * @return The background color, null if not set
+ */
public TextColor getBackgroundColor() {
return backgroundColor;
}
+ /**
+ * Get the string as byte array
+ * @return The string as byte array
+ */
public byte[] getBytes() {
return strBytes;
}
+ /**
+ * Get the string with the applied styles and colors as byte array
+ * @return The string with the applied styles and colors as byte array
+ */
public byte[] getColoredBytes() {
if (strBytes == null) {
return null;
@@ -83,10 +149,18 @@ public class ColoredString {
return toString().getBytes(StandardCharsets.UTF_8);
}
+ /**
+ * Set the string
+ * @param str The string to be colored
+ */
public void setStr(String str) {
strBytes = str.getBytes(StandardCharsets.UTF_8);
}
+ /**
+ * Add style to the string
+ * @param style The style to be applied to the string
+ */
public void addStyle(TextStyle style) {
if (styles == null) {
styles = new ArrayList<>();
@@ -94,6 +168,10 @@ public class ColoredString {
styles.add(style);
}
+ /**
+ * Remove style from the string
+ * @param style The style to be removed from the string
+ */
public void removeStyle(TextStyle style) {
if (styles == null) {
return;
@@ -102,6 +180,10 @@ public class ColoredString {
}
+ /**
+ * Get the string with the applied styles and colors
+ * @return The string with the applied styles and colors
+ */
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@@ -143,6 +225,11 @@ public class ColoredString {
return sb.toString();
}
+
+ /**
+ * Get the string without the applied styles and colors
+ * @return The string without the applied styles and colors
+ */
public String toNormalStringString() {
return strBytes == null || strBytes.length < 1 ?
null : new String(strBytes, StandardCharsets.UTF_8);