public void saveProperties() {
    for (XBreakpointPropertiesSubPanel<B> panel : mySubPanels) {
      panel.saveProperties();
    }

    if (myConditionComboBox != null) {
      final String text = myConditionComboBox.getText();
      final String condition = StringUtil.isEmptyOrSpaces(text) ? null : text;
      myBreakpoint.setCondition(condition);
      if (condition != null) {
        myConditionComboBox.saveTextInHistory();
      }
    }

    for (XBreakpointCustomPropertiesPanel<B> customPanel : myCustomPanels) {
      customPanel.saveTo(myBreakpoint);
    }
    if (!myCustomPanels.isEmpty()) {
      ((XBreakpointBase) myBreakpoint).fireBreakpointChanged();
    }
    myBreakpoint.setEnabled(myEnabledCheckbox.isSelected());
  }