# Dropdown Border Type Issue

**URL:** <https://forum.inductiveautomation.com/t/dropdown-border-type-issue/70497>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [March 1, 2023, 7:27pm UTC](https://forum.inductiveautomation.com/t/dropdown-border-type-issue/70497 "2023-03-01T19:27:14Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Andrew\_Scott](https://avatars.discourse-cdn.com/v4/letter/a/e99b99/32.png) [@Andrew\_Scott](https://forum.inductiveautomation.com/u/Andrew_Scott)\
**Post date:** [March 1, 2023, 7:27pm UTC](https://forum.inductiveautomation.com/t/dropdown-border-type-issue/70497/1 "2023-03-01T19:27:14Z")

</div>

We have found an issue with utilizing titled border type for dropdown list boxes. Our application uses a dark theme/background. When we port our app over to 8.1.x the DDLB that are of titleBorder seem to lose their dropdown arrow (it’s there, but barely visible).

To rectify the problem and to have an arrow that is feasible for factory workers to use we opted to use the default dropdown box border style (OtherBorder). However, since we have a ton of dropdown boxes that share this titleBorder style and have various types of scripting and expressions hanging off these components, we cannot just simply recreate them. We need to change the border and the colors.

To do this we opted for a programmatic solution that would take a default dropdown box (unaltered) and copy its border property to the existing window component.

Everything works just fine in 7.9.

When we port to 8.1.x we cannot open the window in the Designer or at Execution time nor can we change the template that has that control with this dropdown used as the “master”. Anywhere that template was placed at time of porting (export/import) it shows as invalid.

Yes, I know ignition does not support importing of 7.9 projects to 8.1.x, but did not want to have to reload the entire gateway to test a change.

**Error when trying to open window in 8.1:**  
SerializationException: Unexpected parsing error during binary deserialization.  
caused by IOExceptionWithCause: java.lang.ClassNotFoundException: com.incors.plaf.alloy.cz  
caused by ClassNotFoundException: com.incors.plaf.alloy.cz

Any help would be appreciated.  
Thank you.

---

<div class="post-metadata">

**Author:** ![andrews](https://avatars.discourse-cdn.com/v4/letter/a/898d66/32.png) [@andrews](https://forum.inductiveautomation.com/u/andrews)\
**Post date:** [March 1, 2023, 7:28pm UTC](https://forum.inductiveautomation.com/t/dropdown-border-type-issue/70497/2 "2023-03-01T19:28:48Z")

</div>

Why not setup a dev gateway of the same version?

---

<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:** [March 1, 2023, 7:32pm UTC](https://forum.inductiveautomation.com/t/dropdown-border-type-issue/70497/3 "2023-03-01T19:32:01Z")

</div>

> [@Andrew\_Scott](#):
>
> ClassNotFoundException: com.incors.plaf.alloy.cz

IA changed the "Look and Feel" java implementation, and this class doesn't exist beyond v7.9. (The old look-and-feel wasn't available in newer java, IIRC.)

If you haven't done this sort of hacking, v7.9 projects should import in v8.x, though you probably want to use full gateway backups to get full conversion effects. (It is going _backwards_ that isn't supported.)

---

<div class="post-metadata">

**Author:** ![andrews](https://avatars.discourse-cdn.com/v4/letter/a/898d66/32.png) [@andrews](https://forum.inductiveautomation.com/u/andrews)\
**Post date:** [March 1, 2023, 7:46pm UTC](https://forum.inductiveautomation.com/t/dropdown-border-type-issue/70497/4 "2023-03-01T19:46:33Z")

</div>

> [@Ignition Gateway is FAULTED 8.1.5](https://forum.inductiveautomation.com/t/ignition-gateway-is-faulted-8-1-5/70492/4):
>
> Okay, it's faulted because of this error: INFO | jvm 1 | 2023/03/01 14:59:05 | E [IgnitionGateway] [17:59:05]: Error during context startup. INFO | jvm 1 | 2023/03/01 14:59:05 | java.lang.NullPointerException: null INFO | jvm 1 | 2023/03/01 14:59:05 | at java.base/java.io.ByteArrayInputStream.\<init\>(Unknown Source) INFO | jvm 1 | 2023/03/01 14:59:05 | at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer.deserialize(XML…

> Blockquote In general, it's not safe to assume Ignition is "forwards compatible", meaning you should not import anything from a newer version into an older version.

Not sure how relevant that is.

---

<div class="post-metadata">

**Author:** ![Andrew\_Scott](https://avatars.discourse-cdn.com/v4/letter/a/e99b99/32.png) [@Andrew\_Scott](https://forum.inductiveautomation.com/u/Andrew_Scott)\
**Post date:** [March 1, 2023, 7:48pm UTC](https://forum.inductiveautomation.com/t/dropdown-border-type-issue/70497/5 "2023-03-01T19:48:08Z")

</div>

What's funny is that in small tests where we create a ddlb (default OtherBorder) in 7.9. Then export that to 8.1. There isn't an issue. It's only if we programmatically "copy" a border from an existing unaltered DDLB for which the problem arises.

---

<div class="post-metadata">

**Author:** ![Andrew\_Scott](https://avatars.discourse-cdn.com/v4/letter/a/e99b99/32.png) [@Andrew\_Scott](https://forum.inductiveautomation.com/u/Andrew_Scott)\
**Post date:** [March 1, 2023, 7:50pm UTC](https://forum.inductiveautomation.com/t/dropdown-border-type-issue/70497/6 "2023-03-01T19:50:02Z")

</div>

Not going from 8.1.x to 7.9, but thank you.

---

<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:** [March 1, 2023, 9:04pm UTC](https://forum.inductiveautomation.com/t/dropdown-border-type-issue/70497/7 "2023-03-01T21:04:17Z")

</div>

You're going to have to change your process on the 7.9 side to no longer use these classes, because as Phil noted, they're no longer there in 8.X, and Vision _relies_ on explicit class hierarchies to construct components & windows.

You _could_ add a custom module that loads the classes required into Vision, but that's a big task. Much simpler would be to shift + right click the window in the 7.9 designer and use the 'Copy XML to Clipboard' action. Compare how the borders that _work_ vs the ones that _don't work_ are represented. Change your scripting such that there's no difference between the two.

---

<div class="post-metadata">

**Author:** ![Andrew\_Scott](https://avatars.discourse-cdn.com/v4/letter/a/e99b99/32.png) [@Andrew\_Scott](https://forum.inductiveautomation.com/u/Andrew_Scott)\
**Post date:** [March 8, 2023, 4:56pm UTC](https://forum.inductiveautomation.com/t/dropdown-border-type-issue/70497/8 "2023-03-08T16:56:05Z")

</div>

Wanted to let you know that we solved the issue of the invalid otherBorder on the DDLB. We took the border of another control where the border (javax.swing type) was **com.incors.plaf.alloy.cu** and replaced the dropdown listbox border when it was **com.incors.plaf.alloy.cz** with the **com.incors.plaf.alloy.cu** version.

# newBorder is of type 'com.incors.plaf.ally.cu':

if type(myComponent.border) == 'com.incors.plaf.alloy.cz':  
myComponent.border = newBorder

This allowed us to migrate the dropdown listbox from 7.9 to 8.1 w/o incident.
