sclass JG22Labels { settable bool showCount = true; transient JLabel lblInfo = jlabel(); transient JPanel line = jline(); cachedVisualize { var labels = labels(); if (showCount) { setText(lblInfo, nLabels(labels) + (empty(labels) ? "" : ":")); line.add(lblInfo); } fOr (label : labels) line.add(makeLabelComponent(label)); ret line; } JG22Label makeLabelComponent(G22Label label) { ret new JG22Label(label); } swappable Cl labels() { null; } }