@Override public void actionPerformed(AnActionEvent actionEvent) { if (!canEnableAction(actionEvent)) { return; } project = actionEvent.getData(PlatformDataKeys.PROJECT); editor = actionEvent.getData(PlatformDataKeys.EDITOR); if (project == null || editor == null) { return; } document = editor.getDocument(); finder = new ParentNamespaceFinder(document, project); finder.addResultsReadyListener( new ChangeListener() { @Override public void stateChanged(ChangeEvent changeEvent) { if (changeEvent.getSource().equals("ParentNamespaceFound")) { // TODO: show not found. showDialog(); } } }); finder.findParentClass(); }