public void propertyChange(PropertyChangeEvent evt) { String prop = evt.getPropertyName(); Object newValue = evt.getNewValue(); Object oldValue = evt.getOldValue(); if ("focusOwner".equals(prop) && oldValue instanceof JTextArea) { JTextArea freeText = (JTextArea) oldValue; if (freeText.equals(freeTextPane)) { freeText.setEditable(false); if (contentTextChange) { contentTextChange = false; resetAppearanceShapes(); } if (freeText instanceof FreeTextArea) { ((FreeTextArea) freeText).setActive(false); } } } else if ("focusOwner".equals(prop) && newValue instanceof JTextArea) { JTextArea freeText = (JTextArea) newValue; if (freeText.equals(freeTextPane) && !annotation.getFlagReadOnly()) { freeText.setEditable(true); if (freeText instanceof FreeTextArea) { ((FreeTextArea) freeText).setActive(true); } } } }