JComponent () { if (myComponent == null) { myText = new JTextArea(); final JBScrollPane log = new JBScrollPane(myText); final AnAction clear = new AnAction(IdeBundle.messagePointer("action.ActionTracer.Anonymous.text.Clear"), IdeBundle.messagePointer("action.ActionTracer.Anonymous.description.clear.log"), AllIcons.General.Reset) { @Override public void actionPerformed(@NotNull AnActionEvent e) { myText.setText(null); } }; myComponent = new JPanel(new BorderLayout()); final DefaultActionGroup group = new DefaultActionGroup(); group.add(clear); myComponent.add(ActionManager.getInstance().createActionToolbar("ActionTracer", group, true).getComponent(), BorderLayout.NORTH); myComponent.add(log); myListenerDisposable = Disposer.newDisposable(); ApplicationManager.getApplication().getMessageBus().connect(myListenerDisposable).subscribe(AnActionListener.TOPIC, this); } return myComponent; }