private void createRootWindowProperties(GradientTheme theme) {
    rootProperties.getTabWindowProperties().getTabbedPanelProperties().addSuperObject(theme.getTabbedPanelProperties());
    rootProperties.getTabWindowProperties().getTabProperties().getTitledTabProperties().addSuperObject(
        theme.getTitledTabProperties());

    rootProperties.getTabWindowProperties().getCloseButtonProperties().setVisible(false);

    if (!shadowEnabled)
      rootProperties.getWindowAreaProperties().setInsets(new Insets(6, 6, 6, 6));

    rootProperties.getWindowAreaShapedPanelProperties().setComponentPainter(new GradientComponentPainter(
        UIManagerColorProvider.DESKTOP_BACKGROUND,
        new ColorMultiplier(UIManagerColorProvider.DESKTOP_BACKGROUND, 0.9f),
        new ColorMultiplier(UIManagerColorProvider.DESKTOP_BACKGROUND, 0.9f),
        new ColorMultiplier(UIManagerColorProvider.DESKTOP_BACKGROUND, 0.8f)));

    rootProperties.getWindowAreaProperties().setBorder(new LineBorder(Color.BLACK));

    if (tabAreaBackgroundColor != null)
      rootProperties.getComponentProperties().setBackgroundColor(tabAreaBackgroundColor);

    if (!shadowEnabled)
      rootProperties.getSplitWindowProperties().setDividerSize(6);

    TitledTabProperties tabProperties = rootProperties.getTabWindowProperties().getTabProperties()
        .getTitledTabProperties();

    tabProperties.getNormalProperties().setIconVisible(false);
    tabProperties.getHighlightedProperties().setIconVisible(true);

    if (!highlightedBold)
      tabProperties.getHighlightedProperties().
          getComponentProperties().getMap().
          createRelativeRef(ComponentProperties.FONT,
                            tabProperties.getNormalProperties().getComponentProperties().getMap(),
                            ComponentProperties.FONT);

    if (focusHighlighterEnabled) {
      tabProperties.getHighlightedProperties().getComponentProperties()
          .setBorder(new CompoundBorder(opaqueTabArea ?
                                        (Border) new TabAreaLineBorder(false, false, true, true) :
                                        new TabAreaLineBorder(borderColor),
                                        theme.getTabAreaComponentsGradientBorder()));

      rootProperties.getTabWindowProperties().getTabProperties().getFocusedProperties().getComponentProperties()
          .setBorder(new CompoundBorder(opaqueTabArea ?
                                        (Border) new TabAreaLineBorder(false, false, true, true) :
                                        new TabAreaLineBorder(borderColor),
                                        theme.getHighlightedTabGradientBorder()));
    }

    rootProperties.getTabWindowProperties().getTabbedPanelProperties().getTabAreaComponentsProperties()
        .getComponentProperties().setInsets(opaqueTabArea ? new Insets(0, 3, 0, 3) : new Insets(1, 3, 1, 3));


    rootProperties.getTabWindowProperties().getTabProperties().getHighlightedButtonProperties()
        .getCloseButtonProperties()
        .setVisible(false);

    rootProperties.getTabWindowProperties().getTabProperties().getHighlightedButtonProperties()
        .getMinimizeButtonProperties()
        .setVisible(true);

    rootProperties.getTabWindowProperties().getTabProperties().getHighlightedButtonProperties()
        .getRestoreButtonProperties()
        .setVisible(true);
  }