Adds an ASCII banner (not ascii art)
This commit is contained in:
parent
d0b6beb014
commit
c03062e4da
1 changed files with 47 additions and 0 deletions
47
src/main/java/dev/zontreck/ariaslib/terminal/Banners.java
Normal file
47
src/main/java/dev/zontreck/ariaslib/terminal/Banners.java
Normal file
|
@ -0,0 +1,47 @@
|
|||
package dev.zontreck.ariaslib.terminal;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Banners
|
||||
{
|
||||
|
||||
public static String generateBanner(String text) {
|
||||
int maxLength = calculateMaxLength(text);
|
||||
List<String> bannerLines = new ArrayList<>();
|
||||
StringBuilder border = new StringBuilder();
|
||||
for (int i = 0; i < maxLength + 4; i++) {
|
||||
border.append("*");
|
||||
}
|
||||
bannerLines.add(border.toString());
|
||||
bannerLines.add("* " + centerText(text, maxLength) + " *");
|
||||
bannerLines.add(border.toString());
|
||||
return String.join("\n", bannerLines);
|
||||
}
|
||||
|
||||
private static String centerText(String text, int maxLength) {
|
||||
StringBuilder centeredText = new StringBuilder();
|
||||
int spacesToAdd = (maxLength - text.length()) / 2;
|
||||
for (int i = 0; i < spacesToAdd; i++) {
|
||||
centeredText.append(" ");
|
||||
}
|
||||
centeredText.append(text);
|
||||
for (int i = 0; i < spacesToAdd; i++) {
|
||||
centeredText.append(" ");
|
||||
}
|
||||
if (centeredText.length() < maxLength) {
|
||||
centeredText.append(" ");
|
||||
}
|
||||
return centeredText.toString();
|
||||
}
|
||||
|
||||
private static int calculateMaxLength(String text) {
|
||||
int maxLength = 0;
|
||||
for (String line : text.split("\n")) {
|
||||
if (line.length() > maxLength) {
|
||||
maxLength = line.length();
|
||||
}
|
||||
}
|
||||
return maxLength;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue