mirror of
https://github.com/mitb-archive/filebot
synced 2024-08-13 17:03:45 -04:00
59 lines
1.7 KiB
Java
59 lines
1.7 KiB
Java
package net.filebot.ui.rename;
|
|
|
|
import static net.filebot.util.FileUtilities.*;
|
|
import static net.filebot.util.ui.SwingUI.*;
|
|
|
|
import java.awt.Color;
|
|
import java.io.File;
|
|
import java.util.List;
|
|
|
|
public class TextColorizer {
|
|
|
|
private Color pathRainbowBeginColor;
|
|
private Color pathRainbowEndColor;
|
|
|
|
private String before;
|
|
private String after;
|
|
|
|
public TextColorizer() {
|
|
this("<html><nobr>", "</nobr></html>");
|
|
}
|
|
|
|
public TextColorizer(String before, String after) {
|
|
this(before, after, new Color(0xCC3300), new Color(0x008080));
|
|
}
|
|
|
|
public TextColorizer(String before, String after, Color pathRainbowBeginColor, Color pathRainbowEndColor) {
|
|
this.before = before;
|
|
this.after = after;
|
|
this.pathRainbowBeginColor = pathRainbowBeginColor;
|
|
this.pathRainbowEndColor = pathRainbowEndColor;
|
|
}
|
|
|
|
public StringBuilder colorizePath(StringBuilder html, File file, boolean hasExtension) {
|
|
html.append(before);
|
|
|
|
// colorize parent path
|
|
List<File> path = listPath(file);
|
|
for (int i = 0; i < path.size() - 1; i++) {
|
|
float f = (path.size() <= 2) ? 1 : (float) i / (path.size() - 2);
|
|
Color c = interpolateHSB(pathRainbowBeginColor, pathRainbowEndColor, f);
|
|
html.append(String.format("<span style='color:rgb(%1$d, %2$d, %3$d)'>%4$s</span><span style='color:rgb(%1$d, %2$d, %3$d)'>/</span>", c.getRed(), c.getGreen(), c.getBlue(), escapeHTML(getFolderName(path.get(i)))));
|
|
}
|
|
|
|
// only colorize extension
|
|
if (hasExtension) {
|
|
html.append(escapeHTML(getNameWithoutExtension(file.getName())));
|
|
String extension = getExtension(file);
|
|
if (extension != null) {
|
|
html.append(String.format("<span style='color:#607080'>.%s</span>", escapeHTML(extension))); // highlight extension
|
|
}
|
|
} else {
|
|
html.append(file.getName());
|
|
}
|
|
|
|
return html.append(after);
|
|
}
|
|
|
|
}
|