### Question:
TablePaneAttributeAdapter implements GriffonPivotAdapter, org.apache.pivot.wtk.TablePaneAttributeListener { public void columnSpanChanged(org.apache.pivot.wtk.TablePane arg0, org.apache.pivot.wtk.Component arg1, int arg2) { if (columnSpanChanged != null) { columnSpanChanged.call(arg0, arg1, arg2); } }  CallableWithArgs<Void> getRowSpanChanged(); CallableWithArgs<Void> getColumnSpanChanged(); void setRowSpanChanged(CallableWithArgs<Void> rowSpanChanged); void setColumnSpanChanged(CallableWithArgs<Void> columnSpanChanged); void rowSpanChanged(org.apache.pivot.wtk.TablePane arg0, org.apache.pivot.wtk.Component arg1, int arg2); void columnSpanChanged(org.apache.pivot.wtk.TablePane arg0, org.apache.pivot.wtk.Component arg1, int arg2);  }### Answer:
@Test public void testColumnSpanChanged() { final boolean[] invoked = new boolean[1]; CallableWithArgs<Void> callable = new CallableWithArgs<Void>() { public Void call(Object... args) { invoked[0] = true; return null; } }; assertNull(adapter.getColumnSpanChanged()); adapter.columnSpanChanged(null, null, 0); assertFalse(invoked[0]); adapter.setColumnSpanChanged(callable); adapter.columnSpanChanged(null, null, 0); assertTrue(invoked[0]); }