private void initDelegateIfNecessary() {
    if (myDelegate != null && myDelegate.canUse()) {
      return;
    }
    if (++mySymbolsDrawingIndex < SYMBOLS.size()) {
      TextDrawingCallback callback = myEditor.getTextDrawingCallback();
      ColorProvider colorHolder = ColorProvider.byColorScheme(myEditor, EditorColors.SOFT_WRAP_SIGN_COLOR);
      myDelegate = new TextBasedSoftWrapPainter(SYMBOLS.get(mySymbolsDrawingIndex), myEditor, callback, colorHolder);
      initDelegateIfNecessary();
      return;
    }
    myDelegate = new ArrowSoftWrapPainter(myEditor);
  }
private void initDelegateIfNecessary()