Reset Workspace in AtomEnvironment

This commit is contained in:
Antonio Scandurra
2015-10-12 10:39:35 +02:00
parent 612664fd4d
commit 56e13bba69
5 changed files with 57 additions and 41 deletions

View File

@@ -29,22 +29,18 @@ class Workspace extends Model
{
@packageManager, @config, @project, @grammarRegistry, @notificationManager,
@clipboard, @viewRegistry, @grammarRegistry, @setRepresentedFilename,
@setDocumentEdited, @assert, @confirm, deserializerManager
@setDocumentEdited, @assert, @confirm, @deserializerManager
} = params
@emitter = new Emitter
@openers = []
@destroyedItemURIs = []
@paneContainer = new PaneContainer({@config, @confirm, @notificationManager, deserializerManager})
@paneContainer = new PaneContainer({@config, @confirm, @notificationManager, @deserializerManager})
@paneContainer.onDidDestroyPaneItem(@didDestroyPaneItem)
@directorySearchers = []
@defaultDirectorySearcher = new DefaultDirectorySearcher()
@packageManager.serviceHub.consume(
'atom.directory-searcher',
'^0.1.0',
(provider) => @directorySearchers.unshift(provider))
@consumeServices(@packageManager)
@panelContainers =
top: new PanelContainer({location: 'top'})
@@ -56,6 +52,38 @@ class Workspace extends Model
@subscribeToActiveItem()
@subscribeToFontSize()
reset: (@packageManager) ->
@emitter.dispose()
@emitter = new Emitter
@paneContainer.destroy()
panelContainer.destroy() for panelContainer in @panelContainers
@paneContainer = new PaneContainer({@config, @confirm, @notificationManager, @deserializerManager})
@paneContainer.onDidDestroyPaneItem(@didDestroyPaneItem)
@panelContainers =
top: new PanelContainer({location: 'top'})
left: new PanelContainer({location: 'left'})
right: new PanelContainer({location: 'right'})
bottom: new PanelContainer({location: 'bottom'})
modal: new PanelContainer({location: 'modal'})
@originalFontSize = null
@openers = []
@destroyedItemURIs = []
@consumeServices(@packageManager)
@subscribeToActiveItem()
@subscribeToFontSize()
consumeServices: ({serviceHub}) ->
@directorySearchers = []
serviceHub.consume(
'atom.directory-searcher',
'^0.1.0',
(provider) => @directorySearchers.unshift(provider))
# Called by the Serializable mixin during serialization.
serialize: ->
deserializer: 'Workspace'