support t,l,b,r,#colour format for borders

This commit is contained in:
Konstantin Bulenkov
2018-09-05 22:31:15 +02:00
parent 7e7008b77f
commit bd7c65a23d
@@ -10,6 +10,7 @@ import com.intellij.ui.ColorUtil;
import com.intellij.util.SVGLoader;
import com.intellij.util.ui.JBDimension;
import com.intellij.util.ui.JBInsets;
import com.intellij.util.ui.JBUI;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -233,8 +234,17 @@ public class UITheme {
return parseInsets(value);
} else if (key.endsWith("Border") || key.endsWith("border")) {
try {
if (StringUtil.split(value, ",").size() == 4) {
List<String> ints = StringUtil.split(value, ",");
if (ints.size() == 4) {
return new BorderUIResource.EmptyBorderUIResource(parseInsets(value));
} else if (ints.size() == 5) {
return JBUI.Borders.customLine(ColorUtil.fromHex(ints.get(4)),
Integer.parseInt(ints.get(0)),
Integer.parseInt(ints.get(1)),
Integer.parseInt(ints.get(2)),
Integer.parseInt(ints.get(3)));
} else if (ColorUtil.fromHex(value, null) != null) {
return JBUI.Borders.customLine(ColorUtil.fromHex(value), 1);
} else {
return Class.forName(value).newInstance();
}