# \[BUG\]Style Customizer Dataset Gradient

**URL:** <https://forum.inductiveautomation.com/t/bug-style-customizer-dataset-gradient/112777>\
**Category:** Ignition\
**Tags:** ignition81, vision\
**Created:** [December 11, 2025, 11:00pm UTC](https://forum.inductiveautomation.com/t/bug-style-customizer-dataset-gradient/112777 "2025-12-11T23:00:38Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [December 11, 2025, 11:00pm UTC](https://forum.inductiveautomation.com/t/bug-style-customizer-dataset-gradient/112777/1 "2025-12-11T23:00:38Z")

</div>

v8.1.35

I have a shape with a custom property that drives a style customizer to update the fill paint. This is what my styles dataset looks like.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/8/28a35d875db3f58371cb9e49f40cb6fbea09f444.png)

I am trying to update the gradient color(s). I cannot edit the `fillPaint` column at all in the dataset viewer, but I am able to edit the other columns. I try to copy the dataset and edit it in n++.

```python
"#NAMES"
"status","animationIndex","animationDuration","fillPaint"
"#TYPES"
"I","I","I","java.awt.Paint"
"#ROWS","5"
"0","0","1000","com.inductiveautomation.ignition.client.util.gui.paints.RelativeLinearGradientPaint@651f0ade"
"1","0","1000","com.inductiveautomation.ignition.client.util.gui.paints.RelativeLinearGradientPaint@2723f246"
"2","0","1000","com.inductiveautomation.ignition.client.util.gui.paints.RelativeLinearGradientPaint@3576b796"
"3","0","800","com.inductiveautomation.ignition.client.util.gui.paints.RelativeLinearGradientPaint@36107dbe"
"3","1","800","color(0,255,255,255)"

```

→ (second gradient updated)

```python
"#NAMES"
"status","animationIndex","animationDuration","fillPaint"
"#TYPES"
"I","I","I","java.awt.Paint"
"#ROWS","5"
"0","0","1000","com.inductiveautomation.ignition.client.util.gui.paints.RelativeLinearGradientPaint@7e4450d2"
"1","0","1000","com.inductiveautomation.ignition.client.util.gui.paints.RelativeLinearGradientPaint@5d0869fc"
"2","0","1000","com.inductiveautomation.ignition.client.util.gui.paints.RelativeLinearGradientPaint@3e18aba5"
"3","0","800","com.inductiveautomation.ignition.client.util.gui.paints.RelativeLinearGradientPaint@11f7da90"
"3","1","800","color(71,255,255,255)"

```

But I get this error when pasting it back

```python
ClassCastException: Cannot coerce string value 'com.inductiveautomation.ignition.client.util.gui.paints.RelativeLinearGradientPaint@5d0869fc' into a color

```

What’s weird is that this error isn’t thrown on the _first_ gradient, but the one that was updated.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [December 11, 2025, 11:21pm UTC](https://forum.inductiveautomation.com/t/bug-style-customizer-dataset-gradient/112777/2 "2025-12-11T23:21:24Z")

</div>

> [@amarks](#):
>
> `com.inductiveautomation.ignition.client.util.gui.paints.RelativeLinearGradientPaint@36107dbe`

That's a default Java `toString()` representation of an object, which is fine while the object lives in memory or when it's serialized by Vision, but is _not_ sufficient if you copy out to CSV and paste back in (a necessarily lossy serialization/deserialization operation).

There's no canonical acceptable string format for a complicated gradient paint, so you'll have to do what you're trying to do in some other way; you cannot copy out to clipboard and paste back in.

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [December 11, 2025, 11:38pm UTC](https://forum.inductiveautomation.com/t/bug-style-customizer-dataset-gradient/112777/3 "2025-12-11T23:38:04Z")

</div>

Alright, I’m also trying to figure out how it _got in there_ in the first place…

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [December 12, 2025, 7:40pm UTC](https://forum.inductiveautomation.com/t/bug-style-customizer-dataset-gradient/112777/4 "2025-12-12T19:40:31Z")

</div>

If you set up a shape with a gradient (by directly editing the fill paint property), you're allowed to set up a gradient fill, because the property type is `Paint`, not the more restrictive `Color` (which is all the style customizer is _intended_ to support.)

But as a convenience, the style customizer 'grabs' the current value of the property when you open it and attempt to create a new style, which can lead you to an otherwise "impossible" style in the style customizer:

 ![Screenshot 2025-12-12 at 11.37.18 AM](https://us1.discourse-cdn.com/inductiveautomation/original/3X/9/a/9ab38d9af6fc59d45b041ded9f15418b64539f09.jpeg)

At least, that's one possible way to do it; there might be others. It's basically a bug that we allow this, though it does appear to work (as long as you're careful not to edit the fill through the customizer or dataset).

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [December 12, 2025, 8:06pm UTC](https://forum.inductiveautomation.com/t/bug-style-customizer-dataset-gradient/112777/5 "2025-12-12T20:06:48Z")

</div>

That explains how to get _one_ gradient in the styles table. Still unsure how there are _multiple_ in this one

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 12, 2025, 8:10pm UTC](https://forum.inductiveautomation.com/t/bug-style-customizer-dataset-gradient/112777/6 "2025-12-12T20:10:43Z")

</div>

Such a dataset could be created with a script. Who made it originally?

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [December 12, 2025, 8:11pm UTC](https://forum.inductiveautomation.com/t/bug-style-customizer-dataset-gradient/112777/7 "2025-12-12T20:11:47Z")

</div>

Me 😅

I don’t think I used a script…

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [December 12, 2025, 8:18pm UTC](https://forum.inductiveautomation.com/t/bug-style-customizer-dataset-gradient/112777/8 "2025-12-12T20:18:43Z")

</div>

If you do what I said once and _then_ add rows, it'll repeat the gradient to the other rows.
