public CategoryAxisAdapter(
      String label,
      boolean visible,
      ChartCategoryAxis chartCategoryAxis,
      ChartAxis chartBaseAxis,
      GridChartView view) {
    if (!visible) {
      setVisible(false);
      return;
    }
    if (chartCategoryAxis == null) {
      setCategoryLabelPositions(CategoryLabelPositions.STANDARD);
    } else {
      setCategoryLabelPositions(
          PropertiesConverter.toCategroryLabelPosition(chartCategoryAxis.getPosition()));
      Double categoryMargin = chartCategoryAxis.getCategoryMargin();
      if (categoryMargin != null) setCategoryMargin(categoryMargin);
      Double upperMargin = chartCategoryAxis.getUpperMargin();
      if (upperMargin != null) setUpperMargin(upperMargin);
      Double lowerMargin = chartCategoryAxis.getLowerMargin();
      if (lowerMargin != null) setLowerMargin(lowerMargin);
    }

    FakeAxisStyle fakeStyle = new FakeAxisStyle(chartCategoryAxis, chartBaseAxis, view);
    AxisUtil.setupAxisPresentation(label, this, fakeStyle);
  }