mirror of
https://github.com/atom/atom.git
synced 2026-02-14 00:25:08 -05:00
37 lines
837 B
CoffeeScript
37 lines
837 B
CoffeeScript
AtomPackage = require 'atom-package'
|
|
_ = require 'underscore'
|
|
|
|
module.exports =
|
|
class DeferredAtomPackage extends AtomPackage
|
|
|
|
constructor: ->
|
|
super
|
|
|
|
@autoloadStylesheets = false
|
|
|
|
activate: (@rootView, @state) ->
|
|
@instance = null
|
|
onLoadEvent = (e) => @onLoadEvent(e, @getInstance())
|
|
if _.isArray(@loadEvents)
|
|
for event in @loadEvents
|
|
@rootView.command(event, onLoadEvent)
|
|
else
|
|
for event, selector of @loadEvents
|
|
@rootView.command(event, selector, onLoadEvent)
|
|
this
|
|
|
|
deactivate: -> @instance?.deactivate?()
|
|
|
|
serialize: ->
|
|
if @instance
|
|
@instance.serialize?()
|
|
else
|
|
@state
|
|
|
|
getInstance: ->
|
|
unless @instance
|
|
@loadStylesheets()
|
|
InstanceClass = require @instanceClass
|
|
@instance = InstanceClass.activate(@rootView, @state)
|
|
@instance
|