# \[IGN-6531\]The check-mark box is not visible (it is transparent) in ignition version 8.1.17

**URL:** <https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435>\
**Category:** Ignition\
**Tags:** vision\
**Created:** [August 25, 2022, 7:22am UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435 "2022-08-25T07:22:20Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sebastijan\_Zaloznik](https://avatars.discourse-cdn.com/v4/letter/s/76d3ee/32.png) [@Sebastijan\_Zaloznik](https://forum.inductiveautomation.com/u/Sebastijan_Zaloznik)\
**Post date:** [August 25, 2022, 7:22am UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/1 "2022-08-25T07:22:20Z")

</div>

Hello all.

We are using ignition version 8.1.17 and we are facing the issue of the check box in the power tables. Meaning that they are transparent but if you click on the raw to select it present itself but still very slight.

NOTE:If the background is white it is ok, soon the background is black it “disappears”.

Can you please help me with this topic? I also posted a picture for you to see how it looks.

 ![image (9)](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/b/3b198e598eca5ce73c7e8d3dc99b675a01730c2b.png)

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [August 25, 2022, 9:44am UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/2 "2022-08-25T09:44:12Z")

</div>

This is probably a background color issue. if so, change the checkmark box’s background color in the component property editor. If you are changing the parent’s background color dynamically, with themes or something of that nature, bind the checkbox’s background color, so that it changes appropriately

---

<div class="post-metadata">

**Author:** ![Sebastijan\_Zaloznik](https://avatars.discourse-cdn.com/v4/letter/s/76d3ee/32.png) [@Sebastijan\_Zaloznik](https://forum.inductiveautomation.com/u/Sebastijan_Zaloznik)\
**Post date:** [August 25, 2022, 9:51am UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/3 "2022-08-25T09:51:37Z")

</div>

The check-mark box is built in the code itself. When we build data and headers we push “False” also in there knowing for the power table that the check-mark should be set.

Where to find this specific property only for the check mark to modify specially color, this i cannot find.

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [August 25, 2022, 10:03am UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/4 "2022-08-25T10:03:37Z")

</div>

That makes sense. I forgot about the Boolean column that can be added to the power tables

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [August 25, 2022, 12:32pm UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/5 "2022-08-25T12:32:57Z")

</div>

Perhaps one approach to this problem could be to modify the column color using the the configureCell extension function to set the columns color to some variation of grey

```auto
if colName == "Selected":
       return {'background': (211,211,211)}

```

This could probably even be qualified with the power table’s background color, so that it only occurs if black is selected:

```auto
if self.background == (0,0,0)
	if colName == "Selected":
		return {'background': (211,211,211)}

```

or, perhaps the problem is actually the foreground color. Another approach could be to change the foreground color of the boolean column, so that it contrasts better with the black using the same method mentioned above:

```auto
if colName == "Selected":
	return {'foreground': (255,255,255)}

```

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [August 27, 2022, 9:42am UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/6 "2022-08-27T09:42:13Z")

</div>

Still digging around under the hood for a better solution. Here is what I’ve found so far:

```auto
import java.awt.Color
import javax.swing.border.Border
table = event.source.table
editor = table.getDefaultEditor(java.lang.Boolean)
renderer = table.getDefaultRenderer(java.lang.Boolean)
renderer.setBackground(java.awt.Color(255,255,255))
renderer.setForeground(java.awt.Color(255, 255, 255))
table.setDefaultRenderer(java.lang.Boolean, renderer)
#renderer.border = javax.swing.plaf.synth.SynthCheckBoxUI.paintBorder()
renderer.repaint( )

print "Table = ", 
print table
print ""
print "Editor = ", 
print editor
print ""
print "Renderer = ", 
print renderer
print ""
print "Border = ",
print renderer.border

```

This code produces the following information, but has absolutely no effect on the checkbox:

```auto
Table = com.inductiveautomation.factorypmi.application.components.VisionAdvancedTable$3[Power Table->view,0,0,610x273,alignmentX=0.0,alignmentY=0.0,border=,flags=251658600,maximumSize=,minimumSize=,preferredSize=,autoCreateColumnsFromModel=true,autoResizeMode=AUTO_RESIZE_SUBSEQUENT_COLUMNS,cellSelectionEnabled=false,editingColumn=-1,editingRow=-1,gridColor=javax.swing.plaf.ColorUIResource[r=250,g=250,b=251],preferredViewportSize=java.awt.Dimension[width=450,height=400],rowHeight=16,rowMargin=1,rowSelectionAllowed=true,selectionBackground=javax.swing.plaf.ColorUIResource[r=71,g=169,b=230],selectionForeground=javax.swing.plaf.ColorUIResource[r=255,g=255,b=255],showHorizontalLines=true,showVerticalLines=true]

Editor = com.jidesoft.grid.BooleanCheckBoxCellEditor@3c4d8d28

Renderer = javax.swing.table.DefaultTableCellRenderer[Table.cellRenderer,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@291abc5b,flags=25165832,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=,verticalAlignment=CENTER,verticalTextPosition=CENTER]

Border = javax.swing.plaf.synth.SynthBorder@291abc5b

```

---

<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:** [August 27, 2022, 1:12pm UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/7 "2022-08-27T13:12:20Z")

</div>

You are passing `java.lang.Boolean` where you should be passing either `True` or `False`. `java.lang.Boolean` is the **class** for booleans, not a boolean itself.

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [August 29, 2022, 2:39am UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/8 "2022-08-29T02:39:39Z")

</div>

@pturmel:  
That particular function needs a specific class specified. It won’t allow `java.lang.Boolean.TRUE` to be passed

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [August 29, 2022, 2:41am UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/9 "2022-08-29T02:41:47Z")

</div>

I finally figured this out. Add this code to your configureCell extension function, and it will give you exactly what you were originally looking for:

```auto
	if colName == "Selected":
		if rowIndex != self.selectedRow:
			import java.awt.BorderLayout
			import javax.swing.JCheckBox
			table = self.table
			editorComponent = table.getCellEditor(rowIndex, colIndex).getTableCellEditorComponent(table, value, selected, rowIndex, colIndex)
			editorComponent.setOpaque(0)
			editorComponent.setBackground(java.awt.Color(255, 255, 255))
			editorComponent.setBorderPainted(0)
			return{'renderer': editorComponent}

```

The preceding code produces this result:  
 ![ResultCapture](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/d/3dd58cdf15f53be8d7d1ab731aa3bda5ab61012e.png)

Edit: added column name qualifier and moved the self.selected qualifier to eliminate some errors that were showing up in the console

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [August 29, 2022, 2:58am UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/10 "2022-08-29T02:58:51Z")

</div>

Even though this code works, I would consider it a “get by.”

I feel that this really is a bug that needs to be addressed on IA’s side.

---

<div class="post-metadata">

**Author:** ![Sebastijan\_Zaloznik](https://avatars.discourse-cdn.com/v4/letter/s/76d3ee/32.png) [@Sebastijan\_Zaloznik](https://forum.inductiveautomation.com/u/Sebastijan_Zaloznik)\
**Post date:** [August 29, 2022, 7:20am UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/11 "2022-08-29T07:20:15Z")

</div>

Hello justinedwards.jle…

Much appreciate the help and time you put into this. I will try it today and see how this plays out.

I will let you know as soon as possible.

Best regards,  
Sebastijan

---

<div class="post-metadata">

**Author:** ![Sebastijan\_Zaloznik](https://avatars.discourse-cdn.com/v4/letter/s/76d3ee/32.png) [@Sebastijan\_Zaloznik](https://forum.inductiveautomation.com/u/Sebastijan_Zaloznik)\
**Post date:** [August 29, 2022, 12:00pm UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/12 "2022-08-29T12:00:48Z")

</div>

Hey… just letting you know that it worked perfectly. Much appreciated.

---

<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:** [August 29, 2022, 4:32pm UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/13 "2022-08-29T16:32:58Z")

</div>

> [@justinedwards.jle](#):
>
> Even though this code works, I would consider it a “get by.”
> 
> I feel that this really is a bug that needs to be addressed on IA’s side.

I would agree. The situation is somewhat complicated, though; if you set `opaque` to false, then any customization to the background color in `configureCell` won't be applied.

For a fun bonus, though, you _can_ greatly simplify your script. The docstring doesn't hint at this, but any bean property can be set on the rendering component automatically, so you can just return a dictionary like this when appropriate:

```python
return {'background': 'white', 'opaque': False, 'borderPainted': False}

```

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [August 30, 2022, 3:14am UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/14 "2022-08-30T03:14:23Z")

</div>

> [@paul-griffith](#):
>
> if you set `opaque` to false, then any customization to the background color in `configureCell` won’t be applied.

Perhaps an alternate approach would be to just toy around with the opacity of the customizers until a workable and uniform look and feel is achieved.  
Example:

```auto
def configureCell(self, value, textValue, selected, rowIndex, colIndex, colName, rowView, colView):
	import java.awt.Color	
	customizations = {'background':java.awt.Color(255, 255, 255, 60)}
	if rowView % 2 != 0:
		customizations = {'background': java.awt.Color(150, 150, 150, 255)}
	return customizations

```

**The preceding code produces the following result:**  
 ![VariableOpacityResultCapture](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/9/79101d35bfd6c86d597e40a7f6218c718fba8839.png)

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [August 30, 2022, 10:40am UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/15 "2022-08-30T10:40:23Z")

</div>

I played around with this a little bit more, and I found something interesting that is possibly of note. I developed this code to make the power table completely transparent believing that if I blew all of the background colors out, then perhaps I could build them back in in a way that didn’t effect the JCheckboxes. So far, I found that the Boolean column behaves differently than the other classes:

```auto
def configureCell(self, value, textValue, selected, rowIndex, colIndex, colName, rowView, colView):
	import java.awt.BorderLayout
	layout = self.layout.getViewport()
	layout.setOpaque(0)
	self.table.setOpaque(0)
	self.table.getDefaultRenderer(self.table.getColumnClass(colIndex)).setOpaque(0)
	self.background = java.awt.Color(255, 255, 255 ,0)
	customizations = {}
	customizations = {'background': java.awt.Color(0, 0, 0 ,0)}
	return customizations

```

**The preceding code produces this result:**

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/e/f/ef8e98d5dc628a6b4253485ca863a0c9d6a46e7f.png)

Now, when I restore the original customizations, all of the other columns respond in the expected way, but the boolean column remains transparent while only the JCheckboxes inherit the color:

```auto
	if rowView % 2 != 0:
		customizations = {'background': java.awt.Color(150, 150, 150 ,255)}
	else:
		customizations = {'background':java.awt.Color(0, 0, 0, 255)}

```

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/5/35d961a8ff4878ea24a7d9c1c5cf3553a7b83096.png)

Filtering the customizers using column class allows me to get all of the checkboxes white (what we want), but we are still back to the original problem of not being able to customize the Boolean column row by row

```auto
	if self.table.getColumnClass(colIndex) != java.lang.Boolean:
		if rowView % 2 != 0:
			customizations = {'background': java.awt.Color(150, 150, 150 ,255)}
		else:
			customizations = {'background':java.awt.Color(0, 0, 0, 255)}
	else:
		customizations = {'background': java.awt.Color(255, 255, 255 ,255)}
	return customizations

```

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/a/ca5c1ca52d46edeada9310f8952d97ba1ba9378d.png)

Anybody have an idea? One idea I’m toying with is simply positioning an empty power table under this one. Since the column is transparent, the grey and black cells from other table’s empty column would effectively produce the effect I’m looking for if I could bind the number of rows and the scroll functions of the two tables together.

**Edit: added missing** `self.background = java.awt.Color(255, 255, 255 ,0)` **to the script. This is required for transparency to occur. I had originally done this manually from the property editor, so I had accidently left it unscripted**

---

<div class="post-metadata">

**Author:** ![dkhayes117](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dkhayes117/32/68344_2.png) [@dkhayes117](https://forum.inductiveautomation.com/u/dkhayes117)\
**Post date:** [August 30, 2022, 1:24pm UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/16 "2022-08-30T13:24:56Z")

</div>

I gave up on customizing checkboxes. For my application, I didn’t like the color and thought the checkboxes were too small. What I ended up doing is changing the column type from boolean to int and using iconPath to display an icon instead of a checkbox. Works much better when customizing, imo.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/7/27e2e17a25f64565d7fefd407e966794bc65d41b.png)

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [August 30, 2022, 7:37pm UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/17 "2022-08-30T19:37:12Z")

</div>

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/b/6/b64378b8afe438a4c47586b23ee2724eb8c7ab56.png)

The goal of having normalized checkboxes on a power table with alternating colors that include black is achievable by making the Boolean column transparent and layering another power table underneath it. It requires binding the data of the lower z order chart to the primary so the alternating rows always line up. I also dispensed with the lower layer’s borders and hid all but one its columns, so the columns of the primary table can be resized without the other table being revealed.

During scrolling, the following code will automatically keep the the two tables synchronized if embedded into a standard `javax.swing.event.ChangeListener` that is launched from the `initialize` extension function.

```auto
currentPosition = self.layout.getViewport().getViewPosition()
self.parent.getComponent('Background Power Table').layout.getViewport().setViewPosition(currentPosition)

```

In any case, as fun as this was to explore all the way down the bottom of the proverbial rabbit hole, the idea presented @dkhayes117 is a far superior get by. If I ever have to do a dark mode in one of my projects that requires a power table with check marks, dkhayes117’s idea is definitely the one I am inclined to implement.

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [July 25, 2023, 10:31am UTC](https://forum.inductiveautomation.com/t/ign-6531-the-check-mark-box-is-not-visible-it-is-transparent-in-ignition-version-8-1-17/63435/18 "2023-07-25T10:31:55Z")

</div>

Recently, I was messing around with [painting the cells of a power table a gradient color](https://forum.inductiveautomation.com/t/power-table-row-and-cell-gradient-coloring/75754/4), and the process gave me an idea on an alternative approach to this old problem. Combining what I learned painting the gradient cells and [code I had previously developed for changing the checkbox size on the alarm status table](https://forum.inductiveautomation.com/t/alarm-table-checkbox-size/67665/2), I was able to produce this work around using the configureCell extension function:

[https://us1.discourse-cdn.com/inductiveautomation/original/3X/a/c/acfc24d48c7224ab955aeb44fe81f180c94e89ce.mp4](https://us1.discourse-cdn.com/inductiveautomation/original/3X/a/c/acfc24d48c7224ab955aeb44fe81f180c94e89ce.mp4)

The code checks each column to see if the column class is Boolean. If not, it colors the rows the normal way, but if it is a bool, it creates an image icon to put in place of the JCheckbox. To make the checkbox look good when toggling, I had to set the column to not editable, and use the onMouseClick extension function to change the value in the dataset. Otherwise, it looked kind of funny because the editor would override the painting and turn the whole cell white for a second.

Here is the configureCell script:

```auto
#def configureCell(self, [...]):
	from java.lang import Boolean
	from java.awt import BasicStroke
	from java.awt.image import BufferedImage
	from javax.swing import ImageIcon
	cellRect = self.table.getCellRect(rowIndex, colIndex, True)
	squareDims = 12
	margin = 14
	x = int(0.5 * float(cellRect.width - squareDims - margin))
	y = int(0.5 *float(cellRect.height - squareDims - margin))
	if self.table.getColumnClass(colView) != Boolean:
		if selected:
			return {'background': self.selectionBackground}
		if rowView % 2 != 0:
			return {'background': 'gray', 'foreground': 'white'}
		else:
			return {'background':'black', 'foreground': 'white'}
	else:
		renderer = self.table.defaultCellRenderer
		if selected:
			renderer.background = self.selectionBackground
		elif rowView % 2 != 0:
			renderer.background = system.gui.color('gray')
		else:
			renderer.background = system.gui.color('black')
		checkedImage = BufferedImage(cellRect.width - margin, cellRect.height - margin, BufferedImage.TYPE_INT_ARGB)
		checkBox = checkedImage.createGraphics()
		if self.data.getValueAt(rowIndex, colIndex):
			checkBox.setPaint(system.gui.color('blue'))
		else:
			checkBox.setPaint(system.gui.color('white'))
		checkBox.fillRect(x, y, squareDims, squareDims)
		checkBox.setColor(system.gui.color('white'))
		checkBox.setStroke(BasicStroke(2))
		checkBox.drawLine(x + 2, y + 5, x + 4, y + 8)
		checkBox.drawLine(x + 4, y + 8, x + 10, y + 2)
		renderer.icon = ImageIcon(checkedImage)
		renderer.text = None
		return {'renderer':renderer}

```

Here is the onMouseClick script:

```auto
#def onMouseClick(self, [...]):
	from java.lang import Boolean
	if self.table.model.getColumnClass(colIndex) == Boolean:
		currentValue = self.data.getValueAt(rowIndex, colIndex)
		self.data = system.dataset.setValue(self.data, rowIndex, colIndex, not currentValue)

```

**Edit:**  
I still had the original table I used during my earlier attempt. Here's what it looks like with the updated approach:  
 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/d/e/dedca3afc3f9499a4272a22b2bc4b1654fc46120.png)
