// Actually set things up. private void init() { if (Settings.debug) System.err.println("Creating new custom kit"); updateDelegate(); panes = new HashSet(); // Set the font correctly on already-opened windows, so the user // can see customizations live. Also make sure that our delegate // is kept up-to-date. listener = new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent ev) { if (ev.getPropertyName().equals(Settings.PROP_kitClass)) updateDelegate(); else if (ev.getPropertyName().equals(Settings.PROP_font)) { if (panes != null) { Iterator it = panes.iterator(); while (it.hasNext()) { JEditorPane pane = (JEditorPane) it.next(); pane.setFont(Settings.font); pane.repaint(); } } } } }; Settings.DEFAULT.addPropertyChangeListener(listener); }
protected void finalize() throws Exception { if (Settings.debug) System.err.println("Destroying custom kit"); Settings.DEFAULT.removePropertyChangeListener(listener); }