       # Successfully saved
       @_modified = false
       newDirFs = null
+      @dispatchEvent({type: "save"})
       return  # Last PromiseValue
     ).finally(=>
       # Revert properties if failed


  ###*
  @method
    Build sketch
  @param {boolean} [force=false]
    Force build all files

    The instance of sketch
  ###
  @open: (dirFs) ->
    return dirFs.readFile(SKETCH_CONFIG, SKETCH_ENCODING).then((data) =>
      obj = @_migrateAtOpen(JSON.parse(data))
      return Sketch.parseJSON(obj)
    ).then((sketch) =>
