abstract sclass DynBigNumber extends DynModule { S description; O value; int fontSize = 40; transient SimpleLiveValue lvText = new(S); transient SimpleLiveValue lvDesc = new(S); // PUBLIC API // any Number, or anything persistable with toString void setValue(O value) { setField(+value); makeTexts(); } void setDescription(S desc) { setField('description, desc); makeTexts(); } O getValue() { ret value; } S getDescription() { ret description; } // END PUBLIC API void makeTexts() { lvText.set(value == null ? "-" : str(value)); lvDesc.set(description); } void start { persistOnChangedField = false; makeTexts(); } JComponent visualize() { ret jLiveValueSection(lvDesc, centerLabel(makeBold(setFontSize(fontSize, jLiveValueLabel(lvText))))); } }