Handle (de)serialization in WorkspaceCenter

This commit is contained in:
Nathan Sobo
2017-04-06 17:07:20 -06:00
committed by Max Brunsfeld
parent f808411c96
commit 52d8cbfb0e
2 changed files with 12 additions and 4 deletions

View File

@@ -21,6 +21,14 @@ module.exports = class WorkspaceCenter {
this.paneContainer.destroy()
}
serialize () {
return this.paneContainer.serialize()
}
deserialize (state, deserializerManager) {
this.paneContainer.deserialize(state, deserializerManager)
}
activate () {
this.getActivePane().activate()
}

View File

@@ -188,10 +188,10 @@ module.exports = class Workspace extends Model {
serialize () {
return {
deserializer: 'Workspace',
paneContainer: this.paneContainer.serialize(),
packagesWithActiveGrammars: this.getPackageNamesWithActiveGrammars(),
destroyedItemURIs: this.destroyedItemURIs.slice(),
docks: {
paneContainers: {
center: this.center.serialize(),
left: this.docks.left.serialize(),
right: this.docks.right.serialize(),
bottom: this.docks.bottom.serialize()
@@ -211,9 +211,9 @@ module.exports = class Workspace extends Model {
if (state.destroyedItemURIs != null) {
this.destroyedItemURIs = state.destroyedItemURIs
}
this.paneContainer.deserialize(state.paneContainer, deserializerManager)
this.center.deserialize(state.paneContainer || state.paneContainers.center, deserializerManager)
for (let location in this.docks) {
const serialized = state.docks && state.docks[location]
const serialized = state.paneContainers && state.paneContainers[location]
if (serialized) {
this.docks[location].deserialize(serialized, deserializerManager)
}