void (ChangeEvent e) { DefaultMutableTreeNode node = (DefaultMutableTreeNode)myTree.getLastSelectedPathComponent(); if (node instanceof EditableTreeNode) { JComponent editedComponent = (JComponent)node.getUserObject(); InputVerifier verifier = editedComponent.getInputVerifier(); if (verifier != null && !verifier.verify(editedComponent)) { // if invalid and interrupted, then revert ((EditableTreeNode)node).fireOnCancel(); } else { if (mySyncStrategy) { resetEditSync(); ContainerUtil.process(getChildNodesByType(root, RepositoryNode.class, false), node1 -> { node1.fireOnChange(); return true; }); } else { ((EditableTreeNode)node).fireOnChange(); } } } myTree.firePropertyChange(PushLogTreeUtil.EDIT_MODE_PROP, true, false); }