diff --git a/beakerx/beakerx/tabledisplay/tableitems.py b/beakerx/beakerx/tabledisplay/tableitems.py index a216a91504..f858098cf2 100644 --- a/beakerx/beakerx/tabledisplay/tableitems.py +++ b/beakerx/beakerx/tabledisplay/tableitems.py @@ -57,21 +57,27 @@ def __init__(self, x): class DecimalStringFormat: type = "decimal" - minDecimals = 4 - maxDecimals = 4 - def __init__(self, min=4, max=4): - self.minDecimals = min - self.maxDecimals = max + def __init__(self, **kwargs): + self.minDecimals = kwargs.get('min', 4) + self.maxDecimals = kwargs.get('max', 4) class ImageFormat: type = "image" + def __init__(self, **kwargs): + if 'width' in kwargs: + self.width = kwargs.get('width') + class HTMLFormat: type = "html" + def __init__(self, **kwargs): + if 'width' in kwargs: + self.width = kwargs.get('width') + class HighlightStyle(Enum): FULL_ROW = 1 @@ -80,6 +86,7 @@ class HighlightStyle(Enum): class HeatmapHighlighter: type = "HeatmapHighlighter" + def __init__(self, colName, style, minVal, maxVal, minColor, maxColor): self.colName = colName self.style = style.name @@ -98,16 +105,16 @@ def getDataBarsRenderer(include_text=True): class TableDisplayStringFormat: @staticmethod - def getDecimalFormat(min, max): - return DecimalStringFormat(min, max) + def getDecimalFormat(**kwargs): + return DecimalStringFormat(**kwargs) @staticmethod - def getHTMLFormat(): - return HTMLFormat() + def getHTMLFormat(**kwargs): + return HTMLFormat(**kwargs) @staticmethod - def getImageFormat(): - return ImageFormat() + def getImageFormat(**kwargs): + return ImageFormat(**kwargs) class TableDisplayCellHighlighter: FULL_ROW = HighlightStyle.FULL_ROW diff --git a/kernel/base/src/main/java/com/twosigma/beakerx/table/format/HTMLStringFormat.java b/kernel/base/src/main/java/com/twosigma/beakerx/table/format/HTMLStringFormat.java index 04a9ad806f..ffc4febd48 100644 --- a/kernel/base/src/main/java/com/twosigma/beakerx/table/format/HTMLStringFormat.java +++ b/kernel/base/src/main/java/com/twosigma/beakerx/table/format/HTMLStringFormat.java @@ -17,7 +17,20 @@ public class HTMLStringFormat extends TableDisplayStringFormat { + private Integer width; + public HTMLStringFormat() { } + public HTMLStringFormat(Integer width) { + this.width = width; + } + + public Integer getWidth() { + return width; + } + + public void setWidth(Integer width) { + this.width = width; + } } diff --git a/kernel/base/src/main/java/com/twosigma/beakerx/table/format/ImageStringFormat.java b/kernel/base/src/main/java/com/twosigma/beakerx/table/format/ImageStringFormat.java index 0725c8df10..1229e1febb 100644 --- a/kernel/base/src/main/java/com/twosigma/beakerx/table/format/ImageStringFormat.java +++ b/kernel/base/src/main/java/com/twosigma/beakerx/table/format/ImageStringFormat.java @@ -17,6 +17,20 @@ public class ImageStringFormat extends TableDisplayStringFormat { + private Integer width; + public ImageStringFormat() { } + + public ImageStringFormat(Integer width) { + this.width = width; + } + + public Integer getWidth() { + return width; + } + + public void setWidth(Integer width) { + this.width = width; + } } diff --git a/kernel/base/src/main/java/com/twosigma/beakerx/table/format/TableDisplayStringFormat.java b/kernel/base/src/main/java/com/twosigma/beakerx/table/format/TableDisplayStringFormat.java index 4297de95ea..35d7366cd3 100644 --- a/kernel/base/src/main/java/com/twosigma/beakerx/table/format/TableDisplayStringFormat.java +++ b/kernel/base/src/main/java/com/twosigma/beakerx/table/format/TableDisplayStringFormat.java @@ -29,6 +29,11 @@ public static TableDisplayStringFormat getHTMLFormat() { return new HTMLStringFormat(); } + // Get a formatter that shows strings as formatted HTML with specified width + public static TableDisplayStringFormat getHTMLFormat(int width) { + return new HTMLStringFormat(width); + } + // Get a formatter that will show Date in a timestamp format with millisecond precision public static TableDisplayStringFormat getTimeFormat() { return new TimeStringFormat(); @@ -54,4 +59,9 @@ public static TableDisplayStringFormat getImageFormat() { return new ImageStringFormat(); } + // Get a formatter that will show derived source as an image with specified width + public static TableDisplayStringFormat getImageFormat(int width) { + return new ImageStringFormat(width); + } + } diff --git a/kernel/base/src/main/java/com/twosigma/beakerx/table/serializer/HTMLStringFormatSerializer.java b/kernel/base/src/main/java/com/twosigma/beakerx/table/serializer/HTMLStringFormatSerializer.java index 54c53232c8..35af9915db 100644 --- a/kernel/base/src/main/java/com/twosigma/beakerx/table/serializer/HTMLStringFormatSerializer.java +++ b/kernel/base/src/main/java/com/twosigma/beakerx/table/serializer/HTMLStringFormatSerializer.java @@ -27,6 +27,7 @@ public class HTMLStringFormatSerializer extends JsonSerializer public static final String TYPE = "type"; public static final String VALUE_HTML = "html"; + public static final String WIDTH = "width"; @Override public void serialize(HTMLStringFormat value, @@ -37,6 +38,9 @@ public void serialize(HTMLStringFormat value, synchronized (value) { jgen.writeStartObject(); jgen.writeObjectField(TYPE, VALUE_HTML); + if (value.getWidth() != null) { + jgen.writeObjectField(WIDTH, value.getWidth()); + } jgen.writeEndObject(); } } diff --git a/kernel/base/src/main/java/com/twosigma/beakerx/table/serializer/ImageStringFormatSerializer.java b/kernel/base/src/main/java/com/twosigma/beakerx/table/serializer/ImageStringFormatSerializer.java index 225891d381..3967a1fa5f 100644 --- a/kernel/base/src/main/java/com/twosigma/beakerx/table/serializer/ImageStringFormatSerializer.java +++ b/kernel/base/src/main/java/com/twosigma/beakerx/table/serializer/ImageStringFormatSerializer.java @@ -27,6 +27,7 @@ public class ImageStringFormatSerializer extends JsonSerializer