abstract sclass DynSCP extends DynModule { SingleComponentPanel scp; transient ReliableSingleThread rstRevisualize2 = new(r revisualize2_impl); final JComponent visualize() { ret scp = singleComponentPanel(visualize2()); } void unvisualize() { scp = null; unvisualize2(); } JComponent visualize2() { null; } void unvisualize() {} // overridable void revisualize2() { rstRevisualize2.trigger(); } void revisualize2_impl() { lock lock; if (scp != null) scp.setComponent(visualize2()); } }