void (Project project, XBreakpointManager breakpointManager, @NotNull XBreakpointBase breakpoint, @Nullable XDebuggerEditorsProvider debuggerEditorsProvider) { init(project, breakpointManager, breakpoint); if (debuggerEditorsProvider != null) { ActionListener listener = new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { onCheckboxChanged(); } }; myLogExpressionComboBox = new XDebuggerExpressionComboBox(project, debuggerEditorsProvider, LOG_EXPRESSION_HISTORY_ID, null, true, false); myLanguageChooserPanel.add(myLogExpressionComboBox.getLanguageChooser(), BorderLayout.CENTER); myLogExpressionPanel.setBorder(JBUI.Borders.emptyLeft(UIUtil.getCheckBoxTextHorizontalOffset(myLogExpressionCheckBox))); myLogExpressionPanel.add(myLogExpressionComboBox.getComponent(), BorderLayout.CENTER); myLogExpressionComboBox.setEnabled(false); myLogExpressionCheckBox.addActionListener(listener); DebuggerUIUtil.focusEditorOnCheck(myLogExpressionCheckBox, myLogExpressionComboBox.getEditorComponent()); } else { myExpressionPanel.getParent().remove(myExpressionPanel); } boolean isLineBreakpoint = breakpoint instanceof XLineBreakpoint; myTemporaryCheckBox.setVisible(isLineBreakpoint); if (isLineBreakpoint) { myTemporaryCheckBox.addActionListener(e -> ((XLineBreakpoint<?>)myBreakpoint).setTemporary(myTemporaryCheckBox.isSelected())); } }