     'click #undo-button': 'onUndo'
     'click #redo-button': 'onRedo'
     'click #patches-tab': -> @patchesView.load()
-    'click #components-tab': -> @componentsTab.refreshLevelThangsTreema @level.get('thangs')
+    'click #components-tab': -> @subviews.editor_level_components_tab_view.refreshLevelThangsTreema @level.get('thangs')
     'click #level-patch-button': 'startPatchingLevel'
     'click #level-watch-button': 'toggleWatchLevel'
     'click #pop-level-i18n-button': -> @level.populateI18N()

    super options
    @supermodel.shouldSaveBackups = (model) ->
      model.constructor.className in ['Level', 'LevelComponent', 'LevelSystem', 'ThangType']
    @subViews = {}
    @levelLoader = new LevelLoader supermodel: @supermodel, levelID: @levelID, headless: true, editorMode: true
    @level = @levelLoader.level
    @files = new DocumentFiles(@levelLoader.level)

    return unless @supermodel.finished()
    @$el.find('a[data-toggle="tab"]').on 'shown.bs.tab', (e) =>
      Backbone.Mediator.publish 'level:view-switched', e
    @insertSubView new ThangsTabView world: @world, supermodel: @supermodel, level: @level
    @insertSubView new SettingsTabView supermodel: @supermodel
    @insertSubView new ScriptsTabView world: @world, supermodel: @supermodel, files: @files
    @insertSubView new ComponentsTabView supermodel: @supermodel
    @insertSubView new SystemsTabView supermodel: @supermodel
    @insertSubView new ComponentDocsView supermodel: @supermodel

    Backbone.Mediator.publish 'level-loaded', level: @level
    @showReadOnly() if me.get('anonymous')
    @patchesView = @insertSubView(new PatchesView(@level), @$el.find('.patches-view'))
