+ IPropertyChangeListener fontRegistryListener = new IPropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ setTextFont( FontDescriptor.createFrom((FontData[]) event.getNewValue()) );
+ }
+ };
+
+ private void setTextFont(FontDescriptor font) {
+ FontDescriptor oldFontDesc = textFontDescriptor;
+ textFont = resourceManager.createFont(font);
+ textFontDescriptor = font;
+ applyTextFont(textFont);
+
+ // Only destroy old font after the new font has been set!
+ if (oldFontDesc != null)
+ resourceManager.destroyFont(oldFontDesc);
+ }
+
+ private void applyTextFont(Font font) {
+ if (output != null)
+ output.setFont(font);
+ if (deco != null)
+ deco.setFont(font);
+ if (input != null) {
+ input.setFont(font);
+ adjustInputSize(input.getText());
+ }
+ }
+
+ public abstract Logger getLogger();